4种软件生命周期模型的特点和选择条件

  • 瀑布模型
    1. 模型的本意

    瀑布模型的本意是:软件生存周期是由立项、需求分析、策划、概要设计、详细设计、编程、测试、发布、维护等阶段所组成的,把每个阶段当做瀑布中的一个台阶(阶梯),把软件生存过程比喻成瀑布中的流水,软件生存过程在这些台阶中由上向下地奔流。瀑布模型规定了各项关键软件工程活动,自上而下、相互衔接、逐级下落,如同瀑布的固定次序。当发现某阶段的上游存在缺陷时,可以通过追溯,予以消除或改进,但要付出很大代价,因为水要在瀑布台阶上倒过来向上流动,需要消耗很多能源或动力。

    瀑布模型认为:项目经理或软件管理人员,只要控制好每级台阶的高度和宽度,在每个台阶处设立里程碑或基线,并组织好对基线的评审与审计,就可以控制好项目的开发成本、进度和质量。

    1. 模型的特点

    瀑布模型的特点是: (1)里程碑或基线驱动,或者说文档驱动。 (2)过程逆转性很差或者说不可逆转,因为根据上流的错误会在下流进行发散性传播的原理,所以逆转将会延误工期,增加成本,造成重大损失。

    1. 选择模型的条件

    (1)在开发时间内需求没有或很少变化。

    (2)分析设计人员对应用领域很熟悉。

    (3)低风险项目(对目标、环境很熟悉)。

    (4)用户使用环境很稳定。

    (5)用户除提出需求以外,很少参与开发工作。

    1. 模型的缺点

    瀑布模型的缺点是:传统的项目组织方法是按顺序完成每个工作流程,即瀑布式生存周期。瀑布只能—个个台阶地往下流,不可能倒着往上流,这就是它致命的缺点。瀑布式生存周期通常会导致在项目后期,如实施阶段(当第一次构建产品并开始测试时)出现“问题堆积”,在整个分析、设计和实现阶段隐藏下来的问题,会在这个时候逐步暴露出来。更可怕的是,错误的传递会采取发散扩大的方式,比如,在需求阶段中的一个错误或遗漏,在编程阶段就可能引发几十个错误或遗漏。因为项目有较长的开发周期,其进度会被严重拖延,最终导致成本和质量的失控。

  • 增量模型
    1. 模型的本意

    增量模型的本意是:要开发一个大的软件系统,先开发其中的一个核心模块(或子系统),然后再开发其他模块(或子系统),这样一个个模块(或子系统)地增加上去,就像搭积木一样,直至整个系统开发完毕为止。当然,在每增加一个模块前,先要对该模块进行模块测试。通过后再将此模块加入到系统中,然后还要进行系统集成测试(联调)。系统集成测试成功后,再增加新的模块。这样多次循环,直到系统搭建完毕为止。由此可见,这样的软件系统本身应该是模块化的,每个模块应该是高内聚(模块内 部的数据与信息关系紧密)、低耦合(模块之间的数据与信息联系松散)、信息隐蔽(模块包装后信息很少外露)的,这样的模块当然是可组装的、可拆卸的。

    1. 模型的特点

    (1)任务或功能模块驱动,可以分阶段提交产品。

    (2)有多个任务单,这些多个任务单的集合,构成项目的一个总《任务书》,或总《用户需求 告》/《需求规格说明书》。

    1. 选择模型的条件

    (1)在整个项目开发过程中,需求都可能发生变化,客户接受分阶段交付。

    (2)分析设计人员对应用领域不熟悉,难以一步到位。

    (3)中等或高风险项目(工期过紧且可分阶段提交的系统或目标、 环境不熟悉)。

    (4)用户可参与到整个软件开发过程中。

    (5)使用面向对象语言或第4代语言。

    (6)软件公司自己有较好的类库、构件库。

    1. 模型的缺点

    若软件系统的组装和拆卸性不强,或开发人员全局把握水平不高(没有数据库设计专家进行系统集成),或者客户不同意分阶段提交产品,或者开发人员过剩,都不宜采用这种模型。

  • 迭代模型
    1. 模型的本意
    1. 模型的特点

    迭代或迭代循环驱动,每一次迭代或迭代循环,均要走完初始、精化、构建、移交4个阶段。根据软件开发的实际情况,建议以下类型的项目,可以考虑使用迭代式生存周期:

    (1)生存周期模型是以迭代为主要特征的。

    (2)项目组的管理人员和核心成员应对软件工程的核心过程:系统建模、需求分析、系统设计、系统实现、项目管理、配置管理、测试等比较熟悉。

    (3)面向对象技术比较适合采用迭代的开发方式来进行,采用面向对象技术的项目组,建议使用迭代式生存周期。

    (4)本生存周期模型是以软件构架为中心的开发方式,项目组的核心设计人员,应具备一定程度的软件架构的知识,并熟练掌握软件架构设计技能。

    (5)项目组全体成员应熟悉UML,并能利用建模工具(如Rose等)进行分析、策划、设计、测试等。

    (6)本生存周期模型是以风险管理为驱动的开发方式,项目组的管理人员应具备风险管理的知识和技能。

    (7)拥有实施软件产品开发、组装的软件组织。

    1. 选择模型的条件

    (1)在项目开发早期需求可能有所变化。

    (2)分析设计人员对应用领域很熟悉。

    (3)高风险项目。

    (4)用户可不同程度地参与整个项目的开发过程。

    (5)使用面向对象的语言或UML语言。

    (6)使用CASE工具,如Rose。

    (7)具有高素质的项目管理者和软件研发团队。

    1. 模型的缺点

    迭代模型是采取循环的工作方式,每次循环均使工作产品更靠近目标产品一次,这就要求项目组成员具有很高的水平井掌握先进的开发工具。反之,就会存在较大的技术风险和技能风险。

  • 原型模型
    1. 模型的本意

    在初步需求分析之后,马上向客户展示一个软件产品原型,对客户进行培训,让客户试用,在试用中收集客户意见,根据客户意见立刻修改原型,之后再让客户试用,反复循环几次,直到客户确认为止。

    1. 模型的特点

    开发者必须先有一个原型,至少要有一个原型的核心。原型模型与迭代模型相同点是:反复循环几次,直到客户确认为止。不同点是:原型模型事先有一个展示性的产品原型,而 迭代模型可能没有。

    1. 选择模型的条件

    (1)已有产品或产品的原型,只需客户化的工程项目。

    (2)简单而熟悉的行业或领域。

    (3)有快速原型开发工具。

    (4)进行产品移植或升级。

    1. 模型的缺点

    因为事先有一个展示性的产品原型,所以在一定程度大,不利于开发人员的创新。

    摘自:《实用软件工程》

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2018年2月4日
    下一篇 2018年2月5日

    相关推荐