----摘录一下学习(原创权属别人)---------
1、 引言
有很多种不同的生命周期模型用于软件的开发。软件开发的生命周期是以对软件的需求定义为起点,以对软件的正式验收作为终点。
它并不是独立存在的,而是一个完整产品生命周期实实在在的一部分。在产品生命周期之中,软件的开发会不断改正其自身的错误并且时常针对软件的需求而进行调整。软件产品最简单的形式只不过是一个程序软件,但实际上确没有那么简单,由于软件产品是由开发出的不同软件部分所构成的一个完整的系统,这将会使产品变的非常复杂。
有许多不同的软件开发生命周期模型,但是它们都有一个共同的特点,那就是在生命周期中的某一时刻,软件都会被测试。这篇文章概述了一些常用的软件生命周期模型,并重点强调了在各个模型中的测试工作。
2、 顺序生命周期模型
软件开发生命周期模型以需求定义为开端,以对需求的正式验收作为终结。传统意义上,被用于软件开发生命周期的模型应该是顺序的并且开发过程的各个阶段都经过完善的定义。通常用V型生命周期模型和瀑布生命周期模型来表示这种顺序的开发过程。而事实上,这两种生命周期模型有许多不同的形态,将不同的阶段引入生命周期模型,并在不同阶段之间设立边界。以下介绍的生命周期模型的各个阶段是经过许多最有经验的开发者经过反复实践而得来的。
图1、V型生命周期模型
图2、瀑布生命周期模型
* 需求分析阶段
这个阶段主要是收集并分析用户的需求,并且根据软件需求建立完整而明确的需求说明书。
* 概要设计阶段
在这个阶段,针对用户需求的软件结构将会被设计,并确定软件内部各个部件的相关联系。
* 详细设计阶段
软件各个部件的执行功能将被详细说明。
* 遍码与单元测试阶段
在本阶段,将对软件的各个部件进行编码,并且进行单元测试以确定各个部分确实执行了详细设计阶段所制定的目标。
* 软件集成阶段
这个阶段被测试过的各个部件被逐渐集成起来测试直到构成了一个完整的软件。
* 系统集成阶段
这个阶段将软件程序集成起来,构成产品并进行测试。
* 验收测试阶段
这个阶段将进行测试以验证软件确实完整的执行了用户的需求。
3、 渐进开发生命周期模型
顺序模型(V型和瀑布生命周期模型)只是代表着一种理想化的软件开发模型。但实际上出于种种原因,例如需求的多变性和为应付过长的开发时间而开发零时系统的需要,还有其它的生命周期模型将会被采用。
现在,让我们以渐进开发的迭代生命周期为例,来看一下其它的生命周期模型。软件开发所具有的一个问题就是用户急需软件产品,但是开发者却要花费很长的时间去完整地进行开发。那么取一个折中的解决方法就是节省一些时间,但在功能上打一点折扣——开发出一个功能有所缩减的试用版给用户,作为完整版发布前的一个跳板。也可以将这个跳板作为软件减少软件开发风险的一种方式。
在软件开发中,通常将这种方法称为渐进开发或是执行阶段。与之相对应的生命周期模型被称为渐进开发生命周期模型。在渐进开发的生命周期之中,每一个独立的阶段都将遵从V型和瀑布型生命周期模型。
图3、渐进开发生命周期
每一个软件的发布都会经过验收测试以证明软件的各个部分所构成的整体确实实现了需求。但是每个阶段的测试和集成将会耗费大量的时间和精力。由于过多的开发周期会增加成本,耗费时间,所以应该经过认真估算,尽早地规划好到底应该使用多少个周期来进行软件的开发。
在早期开发出来的产品没有任何的实用价值,只是作为下一步开发的一个原型。这些原型仅仅是用来满足、核对用户关键需求所走的一个捷径。可是如果其中缩减了文档的书写和对软件的测试,那么就有必要将这些将这个原型抛弃并从下一个阶段开始重新设计。因为一个缺乏质量的原形不可能给下一步的开发打下一个好基础。
4、 迭代生命周期模型
迭代生命周期模型并不是一开始就完全适应需求,而是先根据说明先开发软件的部分些可执行部件。而是先开发一些具有部分功能的部件,这些部件要求能够通过审查以确定更进一步的需求。不断重复这个过程,为此模型的每一个周期遍写出更新版本的软件。
一个迭代周期模型由下图的四个连续部分组成不断重复组成。
图4、迭代生命周期模型
----------自已的理解:如果在最前加入"立项" 及在最后加一个"结项",是否也是一个完整的项目开发与实施周期呢.-----