第1章 软件工程学概述-2.ppt_第1页
第1章 软件工程学概述-2.ppt_第2页
第1章 软件工程学概述-2.ppt_第3页
第1章 软件工程学概述-2.ppt_第4页
第1章 软件工程学概述-2.ppt_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第1章 软件工程学概述-2,李建义,1.4 软件过程模型,一、瀑布模型 1瀑布模型规定了各项软件工程活动,包括:制定开发计划,进行需求分析和说明,软件设计,程序编码,测试及运行维护,并规定它们按固定顺序自上而下、相互衔接。,一、瀑布模型,一、瀑布模型,2特征: (1)阶段间具有顺序性和依赖性 第一:必须等前一个阶段的工作完成之后,才能开始后一阶段的工作。 第二:前一阶段的输出文档就是后一阶段的输入文档,所以,只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。 (2)推迟实现的观点 事实证明越早进行编码最终完成开发工作所需要的时间反而越长。对于瀑布模型来讲,在编码阶段之前还有分析和设

2、计过程,将逻辑设计与物理设计区分,尽可能推迟程序的物理实现。 (3)质量保证的观点 第一:每个阶段都必须完成规定的文档,没有合格的文档就没有完成该阶段的任务。 第二:每个阶段结束前都要对所完成的文档进行评审,便尽早发现问题,改正错误。,一、瀑布模型,3缺点: (1)缺乏灵活性。无法解决对软件需求不明确或不准确的问题,开发出来的软件不能满足用户需求,最终的结果就是返工。 (2)瀑布模型是由文档驱动的。文档是静态的,用它很难全面正确地描述动态的软件需求。 4.适用场合:用户需求明确,二、快速原型模型,1快速原型是快速建立起来的可以在计算机上运行的程序(原型),它所能完成的功能往往是最终产品完成的功

3、能的一个子集。,快速原型,二、快速原型模型,2优点: 能满足用户的需求。用户参与开发原型的过程及原型的运行和评价,在这过程中让用户及时提出自已的新要求,开发者对立即进行修改,直到用户满意为止。 3根据建立原型的目的的不同,通常分为以下三种类型的原型: (1)渐增式原型。,听取用户意见 需求分析,快速构 造原型,用户运行 测试原型,修改 原型,实现最终原型,满意,二、快速原型模型,(2)用于验证软件需求的原型。往往用后就丢弃。 (3)用于验证设计方案的原型。将原型作为新设计思想的实现工具,开发软件部分原型。,三、增量模型,1增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测

4、试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。 增量开发:按一定的时间间隔开发部分软件 增量提交:软件分多个部分逐步提交给用户使用,三、增量模型,图1.6 风险更大的增量模型 一旦确定用户需求后,分构件进行需求规格说明编写、设计、编码等工作。,三、增量模型,2优点: (1)能在较短的时间内向用户提交可完成部分工作的产品。 (2)逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。 3缺点:要求软件体系结构必须是开放式的。否则会造成整个软件无法集成。,四、螺旋模型,在瀑布模型和原型模型的基础上加入风险分析。,图1.7 简化 的

5、 螺旋 模型,四、螺旋模型,四、螺旋模型,优点: 有利于软件重用,提高软件质量 减少了过多测试或测试不足带来的风险 适用场合: 用于内部开发的大规模软件项目,五、喷泉模型,1是典型的面向对象软件开发模型,是一种以用户需求为动力,以对象作为驱动的模型,适合面向对象的开发方法,着重强调不同阶段之间的重叠,不需要或不应该严格区分不同的开发阶段。 2喷泉模型将软件开发过程划分为系统分析、系统设计、对象设计与实现、测试和系统组装集成五个阶段。,四、喷泉模型,六、统一过程,1指使用统一建模语言UML,采取用例驱动和架构优先的策略。采用迭代增量建造方法。 2RUP把软件开发过程划分为多个循环,每个循环生成产

6、品的一个新版本。每个循环都由初始阶段、细化阶段、构造阶段和提交阶段四个阶段组成。每个阶段是一个小的瀑布模型,要经过分析、设计、编码、集成和测试等阶段。 结论:结构化方法可使用瀑布模型、增量模型和螺旋模型进行开发;面向对象方法学可采用快速原型、喷泉模型和统一过程进行开发。,七、敏捷过程与极限编程,1.敏捷过程价值观 (1)个体和交互胜过过程和工具 团对成员的合作、沟通以及交互能力要比单纯的软件编程能力更重要 (2)可以工作的软件胜过面面俱到的文档 (3)客户合作胜过合同谈判 能指导开发团队和客户合作的的合同才是最好的合同 (4)响应变化胜过遵循计划 应该有足够的能力及时响应变化,七、敏捷过程与极

7、限编程,2.极限编程 极限:把好的开发实践运用到极致 应用:需求模糊且经常改变的场合 3.极限编程的有效实践 客户作为开发团队的成员 使用用户素材 短交付周期 验收测试 结对编程 测试先行:先编测试用例、再编程 代码集体所有,七、敏捷过程与极限编程,3.极限编程的有效实践 持续集成:在一天之内多次集成 可持续的开发速度:不加班 开放的工作空间:便于交流讨论 及时调整计划 简单的设计 重构:不改变功能的前提下调整和优化系统内部结构 使用隐喻:系统全局视图,八、微软过程模型,微软软件生命周期阶段 划分和主要里程碑,微软过程的生命周期模型,本章小结,了解: 1软件工程发展史 2软件工程学的内容 理解: 1软件危机的主要表现; 2各种模型的工作过程; 掌握: 1软件生存周期过程的阶段划分原则和每一阶段的任务划分; 2软件、软件危机和软件工程的概念; 3软件工程基本原理 4软件工程三要素,作业,补充作业: (1)软件工程学习网站 软件工程专家网: 中国UML: 中国工程研究中心: UML软件工程组织: 测试时代: 测试管理中心:,开放软件测试研究: 硅谷动力: (2)CASE工具 建模工具 Rational rose:,Together: CASE studio: microsoft visio: .china 软件测试

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论