2.10 本章小结
除了上述7种软件生命周期模型之外,另外还有演化模型(Evolutionary Model)和渐增模型(Incremental Model)。软件生命周期模型虽然多种多样,但是在本质上可以归纳为两大类型,即瀑布类型和迭代类型。属于前一类型的有瀑布模型、增量模型和喷泉模型等。属于后一类型的有迭代模型、原型模型、螺旋模型、渐增模型、演化模型和XP模型等。现在的问题是:研究软件生命周期模型对软件企业有什么作用呢?回答是:
第一,作为软件管理人员、项目经理、软件工程师和软件蓝领,对软件开发模型和软件生命周期,要有一个完整、清晰的概念,在进入IT企业参与软件开发或软件管理时,首先要明确当前的项目或产品开发到底采用什么软件生命周期模型,由此确定当前的软件开发状态,合理安排项目组成员的工作。只有这样,才能迅速适应IT企业文化,并很快进入软件开发或软件管理的角色。
第二,作为软件过程改进人员(CMMI工作人员),要明确过程改进就是优化软件开发过程,为此必须按照软件开发的常用模型,细化到模型中的各个阶段,把具体的改进措施落实到每一个阶段中。同时,结合CMMI软件过程模型,把能力成熟度等级的概念,应用于软件开发的每一个阶段,从而进一步加强软件的过程管理。这就是说,要将软件生命周期模型的研究与过程改进模型CMMI的研究紧密结合起来,将CMMI的精神实质落实到软件生命周期模型中去。
本章介绍了7 个软件生命周期模型:瀑布模型、增量模型、迭代模型、原型模型、螺旋模型、喷泉模型和XP模型。其中最常用的是瀑布模型和原型模型,其次是增量模型,最难掌握的是迭代模型。因为这7 个模型各有所长,所以它们有各自的生存空间。因为它们各有所短,所以才会产生相互竞争。只有通过竞争,才能推动软件生命周期模型研究的发展。7个模型的比较如表2-4所示。
表2-4 软件开发模型比较表

一般而言,软件企业选取软件生命周期模型的方法是:软件企业在创业时期,由于没有项目或产品的积累,所以常常会选取瀑布模型和增量模型。一旦越过创业时期,由于积累了一些项目或产品,就会选取原型模型。至于迭代模型,只有当他们掌握了UML及其工具Rational Rose之后,才会加以考虑。
作为本章的结尾,现在介绍软件组织定制“软件生命周期模型裁剪指南”的重要概念。在一个成熟的IT企业或软件组织内部,根据上述通用模型的普遍性原则,结合本单位的开发经验和行业特点的具体实际,还需要定制适合本单位的“软件生命周期模型裁剪指南”,有针对性地对选定模型中定义的生命周期进行恰当的裁剪,使它完全适合于本单位的需求。所谓裁剪,就是对原模型中定义的内容进行增加、修改、删除,去掉对本单位不适用的部分,增加对本单位适用的内容,同时进一步细化,从而构成完全适合本单位的“软件生命周期模型裁剪指南”。该“指南”在软件组织内部,专供高层经理和项目经理在软件策划中选取模型时使用。由此可见,实事求是地为软件项目定制软件生命周期模型,是最有效的模型选取方法。