1
 软件工程
1.4.3.3 2.3.3 增量过程模型

2.3.3 增量过程模型

1.增量模型

增量模型融合了线性顺序模型的基本成分和原型模型的迭代特征。这种模型采用随着日程时间的进展而交错的线性序列。每一个线性序列产生软件的一个可发布的“增量”。当使用增量模型时,第一个增量往往是核心的产品,也就是说第一个增量实现了基本的需求,但很多补充的特征还没有发布。客户对每一个增量的使用和评估,都作为下一个增量发布的新特征和功能。在每一个增量发布后不断重复这个过程,直到产生了最终完善的产品为止。增量模型强调每一个增量均发布一个可操作的产品。采用增量模型的软件过程如图2-5所示。

增量模型像原型模型一样具有迭代的特征。但与原型模型不一样,增量模型强调每一个增量均发布一个可操作产品。早期的增量是最终产品的“可拆卸”版本,但它们确实给用户提供了服务的功能,并且给用户提供了评估的平台。

img9

图2-5 增量模型

增量开发是很有用的,尤其是当配备的人员不能在为该项目设定的市场期限之前实现一个完全的版本时,早期的增量可以由较少的人员实现。如果核心产品很受欢迎,那么可以增加新的人手实现下一个增量。此外,增量能够有计划地管理技术风险,例如,系统的一个重要部分需要使用正在开发的并且发布时间尚未确定的新硬件,有可能计划在早期的增量中避免使用该硬件,这样就可以首先发布部分功能给用户,以免过分地拖延系统的问世时间。

2.RAD模型

RAD(快速应用开发)模型是一个增量型的软件开发过程模型,其具有极短的开发周期。该模型是瀑布模型的一个“高速”变种,通过大量使用可复用构件,采用基于构件的建造方法赢得了快速开发。如果正确地理解了需求,而且约束了项目的范围,利用这种模型可以很快地创建功能完善的信息系统。其流程从业务建模开始,随后是数据建模、过程建模、应用生成、测试及反复,其实现过程如图2-6所示。

1)业务建模

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

2)数据建模

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

3)过程建模

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

4)应用生成

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

img10

图2-6 RAD模型

5)测试及反复

RAD过程强调复用,许多程序构件已经是测试过的,这样减少了测试时间,但必须测试新构件,而且必须测试到所有接口。

与瀑布模型相比,RAD模型不采用传统的第3代程序设计语言来创建软件,而是采用基于构件的开发方法复用已有的程序结构(如果可能),或使用可复用构件,或创建可复用的构件(如果需要)。在所有情况下,构件均使用自动化工具辅助软件创造。很显然,加在一个RAD模型项目上的时间约束需要“一个可伸缩的范围”。如果一个业务能够被模块化使得其中每个主要功能均可以在不到3个月的时间内完成,则它是RAD模型的一个候选者。每一个主要功能可由一个单独的RAD组来实现,最后集成起来形成一个整体。RAD模型的不足之处在于以下几个方面。

(1)并非所有应用都适合RAD模型。RAD模型对模块化要求比较高,如果有一个功能不能被模块化,那么建造RAD模型所需的构件就会有问题。如果高性能是一个指标且该指标必须通过调整接口使其适应系统构件才能获得,那么RAD模型也有可能不能奏效。

(2)开发人员和客户必须在很短的时间内完成一系列的需求分析,任何一方配合不当都会导致RAD模型失败。

(3)RAD模型只能用于信息系统开发,不适合技术风险很高的情况。当一个新应用要采用很多新技术或当新软件要求与已有的计算机程序的高交互性操作时,这种情况就会发生。