实用软件工程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.3 增量模型

增量模型(Incremental Model)是遵循递增方式来进行软件开发的。软件产品被作为一组增量构件(模块),每次需求分析、设计、实现、集成、测试和交付一块构件,直到所有构件全部实现为止。这一过程就像小孩子搭积木盖房子一样,如图2-2所示。

图2-2 增量模型示意图

1.模型的本意

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

2.模型的特点

增量模型的特点是:

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

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

3.选择模型的条件

不是任何软件都适合采用增量模型,软件项目或产品选择增量模型,必须满足下列条件:

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

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

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

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

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

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

尽管上述条件比较苛刻,但是,软件企业在开发大型项目(如大型MIS)时,一般采用增量模型。因为大型项目一般由多个子系统构成,开发者可以根据轻重缓急,先进行全局需求分析和概要设计,把握好全局数据库的集成设计,然后再一个接一个地实现各个子系统。

4.模型的优点

增量模型的优点是:

(1)由于将一个大系统分解为多个小系统,就等于将一个大风险分解为多个小风险,从而降低了开发难度。

(2)人员分配灵活,刚开始不用投入大量人力资源。如果核心模块产品很受欢迎,则可增加人力实现下一个增量。当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。即可先发布部分模块给客户,对客户起到镇静剂的作用。

5.模型的缺点

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