02第2章 软件生命周期及开发模型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、软件生命周期
软件也有一个孕育、诞生、成长、成熟、衰亡的生存过 程。称其为计算机软件的生命周期。 软件生命周期可划分为若干个阶段。问题定义、可行性研
究、需求分析、概要设计、详细设计、编码和单元测试、综
合测试、系统运行和维护。
2、软件生命周期各阶段的任务
根据软件生命周期的不同划分方法,就会形成不同的软件
2、原型模型
原型可以分为3类:
抛弃式原型 进化式原型 增量式模型
2、原型模型
快速原型模型是首先快速建立一个能反映用户需求的、可以 在计算机上运行的原型系统,并让用户在计算机上运行、认识该 系统。目的: 检查设计人员对该系统的理解、设计有何不足; 让用户理解、认识计算机的工作原理; 获得用户的真正需求。
1、瀑布模型
3.质量保证的观点
为了保证质量,瀑布型软件开发在各个阶段坚持了两个重要的做法: 每一阶段都要完成规定的文档。没有完成文档,就没有完成该阶 段的任务。
每一阶段都要对完成的文档进行复审,以便尽早发现问题,消除
隐患。
1、瀑布模型
瀑布模型的优缺点:
优点:必须采用规范化方法(如结构化技术);
适应性维护、完善性维护、预防性维护。
2.2 传统的软件过程模型
1
瀑布模型
主 要 内 容
2
原型模型
3
螺旋模型
传统的软件过程模型
从软件项目需求定义直至软件使用后废弃为止,跨越整个生存周 期的系统开发、运作和维护所实施的全部过程、活动和任务的结 构框架; 即把软件生命周期中各项开发活动的流程用一个合理的框架—开 发模型来规范描述;
2、构件复用模型
构件复用模型主要包含以下几个阶段的任务。 (1)需求框架描述。 (2)构件复用分析。 (3)需求修改与细化。(4)系统设计。
(5)构件开发。
(6)系统集成。
构件复用模型最明显的优势是减少了需要开发的软件 数量,缩短了软件交付周期,提高了软件的质量,降低了 开发风险。它的成功主要依赖于有可以使用的、可复用的 构件,以及集成这些构件的系统框架。
分解增量构件时,大小应适中。遵守的约束条件是:当把新的 构件集成到现有软件中时,所形成的产品必须是可测试的。 增量模型是分批次地一个个向用户交付产品(增量模块)。而瀑布
模型、快速原型模型都是一次向用户交付满足需求的软件产品。
增量模型的优缺点:
便于用户逐步使用、学习、掌握软件系统;
软件的体系结构必须是开放的,才利于增量扩充;
有多种软件过程模型。例如:瀑布模型、快速原型模型、增量模
型、螺旋模型、喷泉模型等。它们各有特色,但一般都包含“定 义(或计划)”、“开发”和“维护”3类活动。定义活动主要 弄清软件“做什么”;开发活动集中解决让软件“怎么做”;维
护活动则聚集于软件的“修改”,即“What-How-Change”。
1、软件统一开发过程
初始阶段 细化阶段
构造阶段
交互阶段
2、构件复用模型
对象技术将事物实体封装成包含数据和数据处理方法 的对象,并抽象为类。经过适当的设计和实现的类也可称 为构件。由于构件具有一定的通用性,可以在不同的软件
系统中被复用。在基于构件复用的软件开发中,软件由构
件装配而成,这就如同用标准零件装配汽车一样。构件复 用技术,它能带来更好的复用效果,并且具有工程特性, 更能适应软件按工业流程生产的需要。
利于软件的维护。
2、原型模型
该增量模型一旦确定了用户需求之后,就建立构件1的规格说 明,之后建立构件2的规格说明且同时进行构件1的设计,等等,
如此可以加快工程进度,但同时也带来了更大的风险。
3、螺旋模型
螺旋模型将瀑布模型与原型模型结合起来,并且加入两种模型均 忽略了的风险分析,弥补了两者的不足。 螺旋模型沿着螺线旋转,如图所示,在笛卡尔坐标的四个象限上 分别表达了四个方面的活动,即:
问 题 定 义 :在问题定义阶段,软件开发人员应该清楚:“要解决什么 问题”; 可行性研究:知道要解决的问题,在这个阶段应该清楚“用什么办法解
决这个问题”,保证在技术上、实效上、法律上是行得通的;
需 求 分 析 :确定软件的功能和性能。用户要清楚开发出的软件系统能 够做什么;软件开发人员也应该清楚用户的具体要求是什么; 总 体 设 计 :设计软件的总体结构,将一个大系统按照功能设计成小模 块,每个模块完成一个相对独立的 小功能。
2.4 敏捷软件开发过程模型
“敏捷”可用于任何软件过程,实现要点是将软件过程 设计为:允许项目团队调整并合理安排任务,理解敏捷开发 方法的易变性并制订计划,精简并维持最基本的工作产品,
强调增量交付策略,快速向客户提供适应产品类型和运行环
境的可运行的软件。
本章小结
软件生命周期是软件从孕育、诞生、成长、成熟 直到衰亡的生存过程。软件的生存周期划分为3个 阶段,包括软件定义、软件开发、运行与维护三个 阶段,各个阶段又可分解围一系列有序的开发活动 集。 目前常见的模型有:瀑布模型、快速原型模型、 增量模型、螺旋模型等。它们各有特色,开发人员 可根据项目的不同特点,选用不同的开发模型。
件开发的的基本方法和主要过程,熟悉怎样在实际的软件
项目开发中灵活运用这些思想和方法。
第2章 软件生命周期及开发模型
2.1
软件过程概述
教 学 内 容
2.2 2.3 2.4
传统的软件过程模型
面向对象的软件过程模型
敏捷软件开发过程模型
2.1 软件过程概述
1
软件生命周期
主 要 内 容
2
软件生命周期各阶段的任务
2.4 敏捷软件开发过程模型
2001年2月,17位方法学家发起并成立了敏捷软件开发 联盟。他们所倡导的敏捷不是一个过程,而是一类过程的 统称,它们有一个共性,就是符合敏捷价值观,遵循敏捷 的原则。敏捷的价值观如下: • 个体和交互胜过过程和工具; • 可以工作的软件胜过面面俱到的文档; • 客户合作胜过合同谈判; • 响应变化胜过遵循计划。
2、原型模型
快速原型模型(Rapid Prototype Model)
快速原型模型的第一步是建造一个快速原型,实现客户 或未来的用户与系统的交互,用户或客户对原型进行评价, 进一步细化待开发软件的需求。通过逐步调整原型使其满 足客户的要求,开发人员可以确定客户的真正需求是什么; 第二步则在第一步的基础上开发客户满意的软件产品; 显然,快速原型方法可以克服瀑布模型的缺点,减少由 于软件需求不明确带来的开发风险,具有显著的效果。
第2章 软件生命周期及开发模型
【学习目标】掌握软件的生命周期的概念,明确学习软件
过程模型的意义,掌握各种过程模型的特点与适用范围,
掌握面向对象软件过程模型的内容与过程,了解敏捷开发
软件过程模型的内容与过程。 【教学方法】案例教学法
第2章 软件生命周期及开发模型
【教学重点】软件生命周期,软件过程。
【教学难点】正确理解软件开发模型和生命周期,熟悉软
1、瀑布模型
瀑布模型软件开发具有以下几个特征:
1.阶段间的顺序性和依赖性
顺序性:只有等前一阶段的工作完成以后,后一阶段的工
作 才能开始;前一阶段的输出文档,就是后 一阶段的输入文 档。 依赖性: 只有前一阶段有正确的输出时,后一阶段才可能有 正 确的结果。
1、瀑布模型
2.推迟实现的观点
瀑布模型在编码以前安排了分析阶段和设计阶段,并且明确 宣布,这两个阶段都只考虑目标系统的逻辑模型,不涉及软件的 物理实现。把逻辑设计与物理设计清楚地划分开来,尽可能推迟 程序的物理实现,这是瀑布型软件开发的一条重要的指导思想。
2、软件生命周期各阶段的任务
详细设计:这个阶段还不是编写程序,是对每个模块设计具 体的算 法和数据结构,可以包括具体细节,类似于工程设计中的施工图纸。 详细设计有时也称模块设计。 编码及单元测试:这个阶段的主要任务是根据详细设计的结果,用 一种程序设计语言,编写正确的源程序,并且对每段程序进行严格测 试。要求源程序容易理解、容易维护。
必须有文档支持;
文档驱动模型必须经过验证;
缺点:开发过程中,用户难以了解产品的使用方法,因用户 起初
不了解软件,可能导致最终开发的产品不能真正 满足用户的需要。
2、原型模型
为了克服瀑布模型的问题,可以在需求阶段或设计阶段平行 地进行几次快速建立原型的工作。原型开发后,可以获得更为清 晰的需求反馈信息,既可以消除风险或减少不确定性,又可以采 用平行瀑布模型方式。在瀑布模型的各阶段间转换时,可以适当 并行扩展各阶段的开发工作。
RUP的突出特点是由用例驱动,以构架为中心,采用迭代 和增量的开发策略。
1、软件统一开发过程
用例描述了用户对系统功能的需求,用例驱动的目的 是为了使开发过程中的每个阶段都可以回溯到用户的需求。 以系统架构为中心是指必须关注体系结构模型的开发,保
证开发的系统能平滑(“无缝”)演进。每次迭代的核心
工作流程是指迭代计划、迭代评价和一些具体的迭代活动, 迭代的核心工作流程包括需求、分析、设计、实现、测试 等活动。每个阶段又分成若干次迭代,并终结于良好定义 的里程碑。
2、软件生命周期各阶段的任务
综合测试:通过测试使软件系统达到用户的要求。最基本的集成测 试和确认测试。集成测试是在把模块连接成系统的过程中,每连接若 干个模块都进行必要的测试。确认测试是根据用户使用说明书,在用
户的参与下对软件系统进行测试。
软件维护:软件投入运行后,通常有四类维护活动:改正性维护、
1
软件统一开发过程
主 要 内 容
2
构件复用模型
1、软件统一开发过程
统一开发过程(Rational Unified Process,RUP)是基于 面向对象统一建模语言(UML)的一种面向对象的软件过 程模型。RUP是一个通用的过程框架,可以用于各种不同
类型的软件系统、各种不同的应用领域和不同规模的项目。
几种模型的比较
模型 瀑布模型 原型模型 增量模型 螺旋模型 优点 文档驱动 关注满足客户需求 开发早期反馈及时,易于维 护。 风险驱动 缺点 系统可能不满足客户的需求
可能导致系统设计差、效率低, 难于维护。
需要开放式体系结构,可能会 设计差效率低。 风险分析人员需要有经验且经 过充分训练。
2.3 面向对象的软件过程模型
2、原型模型
增量模型在开发软件过程中,是将软件产品作为一系列的增量 构 件来设计、编码、集成和测试; 每个构件由多个互相作用的模块构成,且能够完成特定的功Baidu Nhomakorabea; 采用增量模型开发,首先建立的增量构件是实现软件系统最基 本、最核心的功能构件,而后再根据用户要求逐步扩充、完善 系统。
2、原型模型
生命周期模型。国家标准GB8566—1988《计算机软件开发规 范》将软件生命周期划分为几个阶段:可行性研究、项目计划、 需求分析、总体设计、详细设计、编码实现(包括单元测试、 集成测试、确认测试)、系统运行和维护。这几个阶段又可以
归纳为3个阶段,即软件定义阶段,软件开发阶段和软件运行
维护阶段。
2、软件生命周期各阶段的任务
1、瀑布模型
瀑布模型(也称线性顺序模型或软件生命周期模型),是 W.Royce在1970年提出的。瀑布模型遵循软件生命周期的划分, 明确规定各个阶段的任务,各个阶段的工作自上而下、顺序展
开,如同瀑布流水,逐级下落。
把软件生命周期划分为计划时期(或定义时期)、开发时期
和运行时期。这三个时期又分别细分为若干个阶段。
(1) 制定计划──确定软件目标,选定实施方案,弄清项目开发
的限制条件; (2) 风险分析──分析所选方案,考虑如何识别和消除风险; (3) 实施工程──实施软件开发; (4) 客户评估──评价开发工作,提出修正建议。
3、螺旋模型
螺旋模型的优点: 有助于软件的重用和提高软件质量; 减少过多的因测试所浪费资金的风险; 维护过程只是模型中的另一个周期; 防止人员变动、资金不能一次到位所引起软件开发的流产; 适用于内部开发大型软件项目。