软件开发模型介绍(二)

1.螺旋模型

螺旋模型兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控,引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止。该模型很大程度上是一种风险驱动的方法体系,因为在每次迭代前,都必须先进行风险评估,适合大型的昂贵的系统级的软件应用。

图中的四个象限代表了四个活动:

1)制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;

2)风险分析:分析评估所选方案,考虑如何识别和消除风险;

3)实施工程:实施软件开发和验证;

4)客户评估:评价开发工作,提出修正建议,制定下一步计划;


螺旋模型的特点:

1)通过创建原型,使软件开发在每次迭代时有明确的方向;

2)通过风险分析,最大程度地降低软件彻底失败造成损失的可能性;

3)在每个迭代阶段植入软件测试,使每个阶段的质量得到保证;

4)每个迭代阶段都累计开发成本,使支出成本容易掌握;

5)过分依赖风险分析经验与技术,一旦风险分析过程中出现偏差将造成重大损失;

6)由于只适用大型软件,过大的风险管理支出会影响客户的最终收益;

2.快速应用开发模型(RAD)

快速应用开发模型是一个增量型的软件开发过程模型,强调极短的开发周期,该模型是瀑布模型的一个“高速”变种,通过大量使用可复用构件,采用基于构件的建造方法。其流程从业务建模开始,随后是数据建模、过程建模、应用生成、测试及反复。

工作过程如图所示:


1)业务建模

确定驱动业务过程运作的信息,要生成的信息、如何生成、信息流的去向及其处理等,可以辅之以数据流图;

2)数据建模

为支持业务过程的数据流查找数据对象集合、定义数据对象属性,并与其他数据对象的关系构成数据模型,可以辅之E-R图;

3)过程建模

使数据对象在信息流中完成各业务功能,创建过程以描述数据对象的增加、修改、删除、查找,即细化数据流图中的处理框;

4)应用程序生成

写出处理程序,重用已有构件或创建新的可重用构件,利用环境提供的工具自动生成以构造出整个的应用系统。

5)测试与交付

对新创建的构件进行测试。对于大量重用的构件,一般只做总体测试;

3.演化模型

使用迭代开发的方法,根据用户的基本需求,通过快速分析构造出该软件的一个初始运行版本,然后根据用户使用该版本的过程中提出的意见和建议对该版本进行改进,获得新版本,重复这一过程,最终获得令用户满意的软件产品。

软件开发人员根据用户的需求,先开发出核心系统,当该核心系统运行后,用户试用,并突出精简系统,增强系统的需求,开发人员根据用户的反馈,实施开发的迭代过程。每一次迭代过程均由需求、设计、编码、测试、集成等阶段组成,该模型可以看作是重复执行的多个“瀑布模型”。

演变模型特点:

1)任何功能经过开发就能进入测试以验证是否符合产品要求;

2)在早期获得项目进程数据,对后续的开发循环作出切实的估算,便于风险管理;

3)开发过程中的经验教训能应用于本产品的下一个循环过程,大大提高质量与效率;

4)用户可以在新的一批功能开发测试后,立即参加验证,提供非常有价值的反馈;

猜你喜欢

转载自blog.csdn.net/zai_xia/article/details/80715251