昨天已过,今天好好过,明天怎样过?天知道了

【转载】软件生命周期和过程模型

上一篇 / 下一篇  2008-09-11 11:47:03 / 个人分类:开发模型

解决软件危机的途径

软件生命周期和过程模型 - 遗忘掉的眼泪 - 遗忘的角落

软件生命周期的各个阶段工作

软件生命周期和过程模型 - 遗忘掉的眼泪 - 遗忘的角落

软件过程是为了获得高质量软件产品所需要完成的一系列任务的框架,规定了各项任务的工作步骤

通常用软件生命周期模型来简洁的描述软件过程,生命周期模型规定了生命周期的划分的阶段以及各个阶段的执行顺序,因此也成为过程模型。

瀑布模型:(本质是文档驱动的)

软件生命周期和过程模型 - 遗忘掉的眼泪 - 遗忘的角落

瀑布模型的优点:

1. 强调开发的阶段性,各阶段具有顺序性和依赖性

2. 强调早期调研和需求分析,推迟编码实现的观点

3. 质量保证的观点,每个阶段的文档都应在评审之后作为下一阶段的输入

4. 强调测试的重要性

瀑布模型的缺点:

1. 文档驱动,用户无法及时了解产品的情况

2. 依赖早期调研和需求分析,不能适应需求变化

3. 流程单一,开发过程中的成功经验无法用于本产品

4. 测试在后期引入,没有对需求分析,概要设计,详细设计文档进行检验,无法全面的保证质量

5. 组织庞大,人员闲置

瀑布模型的适用范围:需求稳定的产品

增量模型

软件生命周期和过程模型 - 遗忘掉的眼泪 - 遗忘的角落

增量和迭代的概念  例:某软件分为ABCD四个模块

增量:把软件按模块划分,依功能的重要程度定义它的开发顺序

AB——〉CD——〉ABCD

迭代:把软件(全部模块)的基本功能实现之后再进一步完善

ABCD的基本功能——〉ABCD的全部功能

增量模型的优点:

1. 可以尽早的让用户接触到产品

2. 逐步增加功能给与用户逐渐适应产品的时间

3. 可并行开发构件,加快开发的进度

增量模型的缺点:

1. 要求开发人员足够的技术能力来协调软件整体与构件之间的矛盾

并行开发构件有可能遇到不能集成的风险

 

螺旋模型(风险驱动)

螺旋模型沿着螺线旋转,如下图所示,在笛卡尔坐标的四个象限上分别表达了四个方面的活动,即:  ·制定计划──确定软件目标,选定实施方案,弄清项目开发的限制条件;  ·风险分析──分析所选方案,考虑如何识别和消除风险;   ·实施工程──实施软件开发  ·客户评估──评价开发工作,提出修正建议。

沿螺线自内向外,每旋转一圈便开发出更为完善的一个新的软件版本。例如,在第一圈,确定了初步的目标、方案和限制条件以后,转入右上象限,对风险进行识别和分析。如果风险分析表明,需求有不确定性,那么在右下的工程象限内,所建的原型会帮助开发人员和客户,考虑其它开发模型,并对需求做进一步修正。客户对工程成果做出评价之后,给出修正建议。在此基础上需再次计划,并进行风险分析。在每一圈螺线上,风险分析的终点做出是否继续下去的判断。假如风险过大,开发者和用户无法承受,项目有可能终止。多数情况下沿螺线的活动会继续下去,自内向外,逐步延伸,最终得到所期望的系统。

软件生命周期和过程模型 - 遗忘掉的眼泪 - 遗忘的角落

螺旋模型的优点:

1. 强调风险

2. 强调阶段质量

3. 提供纠错的机会

螺旋模型的缺点:

1. 每个阶段都要提出被选方案,进行风险分析,研发周期长,效率低

2. 必须要转业的风险分析人员的参与

螺旋模型的适用范围:内部开发的大型项目

 

RUP流程(以架构为中心迭代流程)

RUP流程的优点:

1. 任何功能开发后就进入测试过程,及早进行验证

2. 早期风险识别,采取预防措施

RUP流程的缺点:

1. 需求必须在开始之前完全弄清楚,否怎有可能在架构上出现错误

2. 必须有严格的过程管理,以免使过程退化为原始的试-〉错-〉改模式

如果不加控制的让用户过早接触没有测试完全,版本不稳定的产品可能对用户和开发团队都带来负面的影响

软件生命周期和过程模型 - 遗忘掉的眼泪 - 遗忘的角落



TAG: unix

 

评分:0

我来说两句

Open Toolbar