信息系统项目生命周期模型
本文介绍信息系统项目中几种典型的生命周期模型,包括瀑布模型、螺旋模型、迭代模型、V 模型、原型化模型、敏捷开发模型等。
瀑布模型
瀑布模型(Waterfall model)是一个经典的软件生命周期模型,一般将软件开发分为:可行性分析(计划)、需求分析、软件设计(概要设计、详细设计)、编码(含单元测试)、测试、运行维护等六个阶段。
螺旋模型
螺旋模型(Spiral model)是一种演进式的软件过程模型,它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适用于大型复杂的系统。螺旋模型结合了原型开发方法的系统性和瀑布模型的可控性特点,使得软件增量版本的快速开发成为可能。
螺旋模型有两个显著特点,一是采用循环的方式逐步加深系统定义和实现的深度,降低风险;二是确定一系列里程碑,确保项目开发过程中的相关利益者都支持可行的和令人满意的系统解决方案,以确保项目朝着正确的方向前进。
螺旋模型的四个象限分别表示 每个周期所划分的四阶段:制定计划、风险分析、实施工程和客户评估。螺旋模型强调了风险分析,特别适用于庞大而复杂的、高风险的系统。
迭代模型
迭代模型(Iterative model)的生命周期分为四个阶段:初始、细化、构造、移交。可进一步描述为周期(Cycle)、阶段(Phase)、迭代(Iteration)。核心工作流从技术角度描述迭代模型的静态组成部分,包括:业务建模、需求获取、分析与设计、实现、测试、部署。
V 模型
V 模型(V model)是一个对称的结构,如下图所示,非常明确地表明了测试过程中存在的不同级别,并且非常清晰地描述了这些测试阶段和开发阶段的对应关系。
- 单元测试:一般由开发人员来执行,首先设定最小的测试单元,然后通过设计相应的测试用例来验证各个单元功能的正确性。
- 集成测试:主要关注点是系统能够成功编译,实现了主要的业务功能,系统各个模块之间数据能够正常通信等。
- 系统测试:验证整个系统是否满足需求规格说明。
- 验收测试:从用户的角度检查系统是否满足合同中定义的需求或用户需求。
V 模型具备如下特点:
- 核心思想是开发和测试同等重要,左侧代表开发活动,右侧代表测试活动。
- 针对每个开发阶段都有一个测试级别与之对应。
- 测试依旧是开发生命周期中的阶段,与瀑布模型不同的是,有多个测试级别与开发阶段对应。
- 适用于需求明确和需求变更不频繁的情形。
原型化模型
原型化模型(Prototype model)认为在很难立即全面准确地提出用户需求的情况下,先不要求对系统做全面、详细的调查分析,而是本着开发人员对用户需求的初步理解,快速开发一个原型系统,然后通过反复修改来实现用户最终的系统需求。
原型具备如下特点:
- 实际可行。
- 具有最终系统的基本特征。
- 构造方便、快速,造价低。
敏捷开发模型
敏捷开发模型(Agile model)以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。换言之,就是把一个大项目分为多个相互联系但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
敏捷开发的原则如下:
- 快速迭代。
- 让测试人员和开发人员参与需求讨论。
- 编写可测试的需求文档。
- 多沟通、尽量减少文档。
- 做好产品原型。
- 及早考虑测试。