项目不论大小繁简, 都呈现下列通用的生命周期结构。
- 启动项目
- 组织与准备
- 执行项目工作
- 结束项目
二 典型的生命周期模型
1 瀑布模型
它的特点:需求明确, 从上一项开发活动接受该项活动的工作对象作为输入。
2螺旋模型
螺旋模型是一个演化软件过程模型, 将原型实现的迭代特征与线性顺序(瀑布)模型中控制的和系统化的方面结合起来,使得软件的增量版本的快速开发成为可能。
在螺旋模型中, 软件开发是一系列的增量发布。 在不断的迭代中,更加完善的版本逐步产生。
螺旋模型强了风险分析, 特别适用于庞大而复杂的、高风险的系统。
3 迭代模型
传统的软件开发工作大部分强调一个序列化过程, 其中阶段包括: 需求分析、设计、编码、测试。 一个活动需要在另一个开始之前完成。
在迭代式的过程中, 每个阶段都包括不同比例的所有活动。 也就是说所有阶段 都在进行中。
4 V模型
它的特点:体现的主要思想是开发和测试同等重要, 左侧代表的是开发活动,右侧代表的是测试活动。
它针对每个开发阶段, 都有一个测试级别与之相对应。
与瀑布模型不同的是, 有多个测试级别与开发阶段对应。
它适用于需求明确和需求变更不频繁的情形。
5 原型化模型
原型化第一步就是创建一个快速原型, 能够满足项目干系人与未来的用户可以与原型进行交互, 再通过与相关干系人进行充分的讨论和分析, 最终弄清楚当前系统的需求,在原型的基础上开发出用户满意的产品。
原型化模型是极具意义的项目实践。
原型应当具备的特点如下:
(1) 实际可行,
(2) 具有最终系统的基本特征,
(3)构造方便、快速、造价低。
6 敏捷开发模型
敏捷开发是一种以人为核心、迭代、循序渐进的开发方法,强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法, 也更注重软件开发中人的作用。