第四节 软件生存周期模型
第四节 软件生存周期模型
软件生存周期模型是一个包含软件产品开发、运行、维护中有关过程、活动、任务的框架、覆盖了从该系统的需求定义到系统的使用终止
瀑布模型
增量模型
演化模型
螺旋模型
喷泉模型
一、瀑布模型
将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。适合需求明确、固定的项目
广泛应用的原因:支持结构化软件开发、控制软件开发的复杂性、促进软件开发工程化等方面起着很大作用
主要贡献:
(1)在系统怎样做之前存在需求阶段,对系统做什么进行规约
(2)在系统构造之前存在设计阶段,规划系统结构
(3)每一阶段结束评审,允许获取方和用户参与
(4)前一步作为下一步被认可、文档化的基线
主要问题:
(1)要求客户能够给出完整清晰的需求,并要求开发人员理解
(2)需求不稳定,使设计和编码、测试都可能延期
(3)开始阶段,很难评估真正的进度状态,项目结束前无法演示系统的能力
(4)早期、过分强调基线和里程碑处的文档
二、增量模型
指需求可以分组,形成一个个的增量,并形成一个结构。即该模型有一个前提,需求可结构化、在此条件下,对每一增量实施瀑布式开发
“技术驱动”的软件产品开发,常被工业界所采用
优点:
第一个可交付版本需时间和成本较少;减少开发增量的风险
减少用户需求的变更
增量投资,项目开始仅对一个、二个增量投资
缺点:
初始增量可能会造成后来增量的不稳定
一些增量就可能需要重新开发
增大管理成本,超出组织能力
三、演化模型
适用:事先不能完整定义需求的软件
1、开发一个核心系统并投入运行,以便用户能够有效提出反馈
2、软件开发人员根据用户反馈,实施开发的迭代过程
3、迭代:有需求、设计、编码、测试、集成组成
三、演化模型
特征:第二个构造增量使用了第一个构造来精华需求。可以减少软件开发活动的盲目性
不足:即使很好的了解需求或设计,也很容易弱化需求分析阶段的工作、
四、螺旋模型
适用:项目的开发风险很大或客户不能确定系统需求
- 在瀑布模型和演化模型的基础上,加入两者忽略的风险分析
- 沿着螺旋线,经历定制计划,风险分析,实施工程,客户评估这4个方面的活动
- 自内向外每旋转一圈便产生一个更为完善的新版本
特征:
(1)开发迭代的过程中实际上只有一个迭代过程真正开发了可交付的软件
(2)增大了决策和降低风险的空间,即增大了增量模型的管理范围
(3)如项目风险很大,或者客户不能确定需求,这是螺旋模型就是一个很好的生存周期模型
五、喷泉模型
喷泉模型体现了:迭代、无间隙
说明了软件模型需要多次重复,活动之间没有明显的间隙。如在分析和设计之间没有明显的间隙。
适用面向对象技术的软件开发
例题:在软件生存周期模型中,不适应变化需求的软件开发模型是(D)
A、演化模型 B、螺旋模型 C、增量模型 D、瀑布模型
例题:在软件生存周期模型中,体现了软件创建所固有的迭代和无间隙特征的是(D)
A、瀑布模型 B、增量模型 C、演化模型 D、喷泉模型
例题:以下哪个软件生存周期模型是一种风险驱动的模型(C)
A、瀑布模型 B、增量模型 C、螺旋模型 D、喷泉模型
讲解归纳与举例
例题:瀑布模型规定了各开发阶段的活动:系统需求、软件需求、(需求分析)、设计、(编码)、测试和运行、
例题:螺旋模型是由(瀑布)模型和演化模型结合而建立的一种软件开发模型
例题:简述瀑布模型及存在的问题
参考答案:
瀑布模型:将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水、最终得到软件产品。适合需求明确,固定的项目
存在问题:
(1)要求客户能够给出完整清晰的需求、并要求开发人员理解
(2)需求不稳定、使设计和编码、测试都可能延期
(3)开始阶段,很难评估真正的进度状态,项目结束前无法演示
(4)早期,过分强调基线和里程碑处的文档
例题:简述增量模型的优缺点
优点:
第一个可交付版本需时间和成本较少;减少开发增量的风险
减少用户需求的变更
增量投资,项目开始仅对一个、二个增量投资
缺点:
初始增量可能会造成后来增量的不稳定
一些增量就可能需要重新开发
增大管理成本,超出组织能力