欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    软件工程1.ppt

    • 资源ID:2604007       资源大小:464.01KB        全文页数:44页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件工程1.ppt

    软件工程,陈惠明,第1章 绪论,1.1软件危机 1.1.1软件的定义 1.1.2软件的特征 1.1.3软件危机 1.2软件工程学的范畴 1.2.1软件开发方法学 1.2.2软件工具 1.2.3软件工程环境 12.4软件工程管理,1.1软件和软件危机,1.1.1软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括程序正常执行所需的数据,以及有关描述程序操作和使用的文档。 其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。 软件=程序+数据+文档,1.1.2 软件的特征,1.软件开发不同于硬件设计 软件设计更依赖于设计人员的业务素质、智力以及人员组织、合作和管理,而硬件设计与人的关系较小; 硬件设计成本占整个产品成本的一小部分;软件设计成本占整个产品成本的大部分 2.软件生成不同于硬件制造 硬件制造过程复杂,期间可能引入质量问题;软件的制造只是简单的复制过程; 3.软件维护不同于硬件维护 硬件运行初期有较高的故障率,修复故障后故障率下降到一个较低和稳定的水平,随着时间的推移故障率会再次升高,这是因为硬件将受到磨损的损害,达到一定程度就报废; 软件是逻辑产品,不会磨损和老化,但使用过程的维护却比硬件复杂。,1.1.3 软件危机,软件危机产生的原因 软件维护费用急剧上升,直接威胁计算机应用的扩大; (纠错性维护 完善性维护 适应性维护) 软件生产技术进步缓慢是加剧软件危机的重要方面; (缺乏正确的方法论指导软件开发),我国软件文档规范,计算机软件开发规范 计算机软件需求说明编制指南 计算机测试文件编制规范 计算机软件配置管理计划规范,1.2 软件工程学范畴,“软件工程”1968年北大西洋公约组织在联邦德国提出。 软件工程:把软件当成一种工业产品,采用工程化的原理与方法对软件进行计划、开发和维护。,软件工程学,软件工程学,软件开发技术,软件工程管理,软件开发方法学,软件工具,软件工程环境,软件管理学,软件经济学,软件度量学,1.2.1 软件开发方法学,早期:软件开发无章可循,属于个人活动,60年代:结构化程序设计,80年代:面向对象程序设计,1.2.2 软件工具,编译程序 编辑程序 连接程序 操作系统,1.2.3 软件工程环境,方法与工具相结合,加上配套的软硬件支持就形成了环境。,1.2.4 软件工程管理,软件工程管理的目的是为了按照进度及预算完成软件计划,实现预期的经济和社会效益。包括:成本估算、进度安排、人员组织和质量保证等多方面的内容,还涉及管理学、度量学和经济学多个学科。,1.3软件工程的发展,1.3.1 3种编程范型: 1.过程式编程范型 2.面向对象编程范型 3.基于构件技术的编程范型,1.3.2 3代软件工程,1.从编程范型到软件开发过程 2.软件工程的分代 传统软件工程以结构化程序设计为基础 结构化分析结构化设计面向过程编程软件测试 面向对象软件工程以面向对象程序设计为基础 面向对象分析与对象抽取对象详细设计面向对象的编码与测试 基于构件的软件工程以软件复用为目标、领域工程为基础 领域分析与测试计划制定领域设计建立可复用构件按“构件集成模型”查找和集成构件,1.4 软件工程的应用,1.4.1 在各种规模软件开发中的应用 1.4.2 软件工程的成就与发展展望,第2章 软件生存周期与软件过程,2.1 软件生存周期 2.2传统软件工程 2.3软件演化模型 2.4形式化方法模型 2.5统一过程和敏捷过程 2.6软件可行性研究,2.1 软件生存周期,需求分析,软件分析,软件设计(总体设计和详细设计),编码(测试),软件测试,运行维护,2.2 传统软件过程,2.2.1瀑布模型 1.阶段间的顺序性和依赖性 2.推迟实现的观点 3.保证质量的观点 4.存在问题:只有开发人员能够做出准确的需求分析,才能够得到预期的结果,用户需求,需求分析,需求规格说明书,软件分析与总体设计,软件结构图,详细设计,模块说明,编码,系统测试,确认测试,综合测试,单元测试,程序清单,瀑布模型的阶段与文档,2.2.2 快速原型模型,首先建立一个能够反映用户主要需求的原型,让用户实际看一下未来系统的概貌,以便判断哪些功能是符合需要的,哪些方面还需要改进。然后将原型反复改进,直至建立完全符合用户要求的新系统。,需求,原型开发,原型评价,最终系统设计,最终系统实现,快速原型法的过程模型,2.3 软件演化模型,2.3.1增量模型 2.3.2螺旋模型 计划 风险分析 建立原型 用户评审 2.3.3构件集成模型,增量模型,增量1:,需求,设计,实现和集成,交付客户,增量2:,需求,设计,实现和集成,交付客户,增量3:,需求,设计,实现和集成,交付客户,增量n:,需求,设计,实现和集成,交付客户,2.4 形式化模型,2.4.1转换模型 2.4.2净室模型,2.5 统一过程和敏捷过程,2.5.1统一过程 描述了软件开发中各个环节应该做什么、怎么做、什么时候做以及为什么做,描述了一组以某种顺序完成的活动。其结果是一组有关系统的文档,例如模型和其它一些描述,以及最初问题的解决方案等。 2.5.2敏捷过程 是一种以人为核心、以迭代方式循序渐进进行开发的方法,其软件开发的过程称为敏捷过程。在这一过程中软件项目被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。,需求,分析,设计,实现,测试,初始,细化,构造,迁移,迭代1,迭代2,迭代n-1,迭代n,统一过程,1.初始阶段 对需求有一个大概的了解,确定系统中大多数角色和用例,但此时的用例是简要的 划分主要子系统,给出系统的体系结构概貌 分析项目执行的风险 考虑时间、经费、技术、项目规模和效益等因素 制定开发计划,统一过程,2.细化阶段 进行需求分析 进行技术风险分析 进行技能风险分析 进行政策风险分析 进行高层分析和设计,并作出结构性决策 产生简要体系结构,包括用例列表、领域概念模型和技术平台等 为构造阶段制定计划,统一过程,3.构造阶段 识别出剩余用例 4.迁移阶段 完成最后的软件产品和验收测试,并完成用户文档的编制和用户培训工作。,敏捷过程,1.敏捷开发的原则 个人和交互胜过过程和工具 可以运行的软件胜过面面俱到的文档 客户合作胜过合同谈判 响应变化胜过遵循计划,敏捷过程,2.敏捷过程开发应遵循的12条原则 通过尽早地、不断地提交有价值的软件使客户满意 即使到了开发后期,也欢迎改变需求。敏捷过程利用变化为客户提供竞争优势 以几个星期到几个月为周期,尽快不断地提交可运行的软件 在整个项目开发期间,业务人员和开发人员必须天天在一起工作 以积极向上的员工为中心,建立项目组,给他们提供所需的环境和支持,并对他们的工作予以充分的信任 在团队内部,最有效、效率高的传递信息的方法,就是面对面的交流 测试项目进展的首要依据是可运行的软件 敏捷过程提倡可持续的开发、责任人、开发者和用户应该为能够保持一个长期的、恒定的开发速度而努力,敏捷过程,2.敏捷开发应遵循的12条原则 时刻关注技术上的精益求精和好的设计,以增强敏捷能力 简单是最根本的 最好的架构、需求和设计出于自组织的团队 每隔一定时间,团队要反省如何才能更有效地工作,然后相应地调整自己的行为,2.5.3极限编程,1.价值观 交流、简单、反馈和勇气 即:加强交流;从简单做起;寻求反馈;勇于实事求是A 2.过程 采用循环迭代的开发方法,将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈及其他一系列的方法,使开发人员和客户都可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时调整开发过程。,极限编程,极限编程的12个核心实践 完整团队 计划对策(发布计划和迭代计划) 测试(先编测试后写代码) 简单设计 结对编程 小软件版本 设计改进 持续集成,极限编程,极限编程的12个核心实践 代码集体共有 编码标准(统一的编码标准,包括命名、注释、格式等) 系统比喻 可持续的速度,2.6 软件的可行性研究,2.6.1 可行性研究的内容和步骤 1.研究的内容 A.经济可行性 B.技术可行性 C.运行可行性 D.法律可行性 2.研究的步骤 A.对当前系统进行调查和研究 B.导出新系统的解决方案 C.提出推荐的方案 D.编写可行性论证报告,可行性研究,2.6.2软件风险分析 1.风险识别 以下是常见的风险子类与需要检查的内容 A.产品规模风险 B.商业影响风险 C.与客户相关的风险 D.过程风险 E.技术风险 F.开发环境风险 G.人员结构和经验风险 2.风险预测 A.建立风险可能性尺度 B.估计对产品和项目的影响 3.风险的驾驭和监控 A.与在职人员协商,了解其可能流动的原因 B.在项目开始前,把缓解这些流动的相关工作列入风险驾驭计划 C.项目开始时,做好人员流动的准备,并采取措施确保一旦人员离开时,项目仍能继续 D.制定文档标准并建立一种机制,保证文档都能及时生产 E.对所有工作都进行仔细审查,使更多的人能够按计划进度完成自己的工作 F.对每个关键性技术岗位注意培养后备人员,2.6.3项目实施计划,1.项目实施计划 2.质量保证计划 3.软件测试计划 4.文档编制计划 5.用户培训计划 6.综合支持计划 7.软件分发计划,第3章 结构化分析与设计,3.1概述 3.1.1结构化分析设计的由来 SA structure Analysis SDstructure Design,2 SA和SD的流程,结构化分析(工具:DFD 、PSPEC) 分析模型(分层 DFD图)+SRS 结构化设计(工具:SC图) 初始化模型 最终设计模型,3.基本任务和指导思想,(1)结构化分析 建立分析模型 编写需求规格说明书 主要指导思想抽象和分解 (2)结构化设计 软件设计=总体设计+详细设计 SC图需分两步完成 软件设计指导思想分解和细化,3.1.2 SA模型的组成与描述,例 3.1 教材销售系统 (1)通过对现实环境的调研,获取当前系统的具体模型 (2)分析需求,建立系统分析模型,提炼出当前系统的逻辑模型 (3)整理综合需求,编写系统需求规格说明书 (4)验证需求,完善补充对目标系统的描述,

    注意事项

    本文(软件工程1.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开