信息系统项目典型生命周期模型

  1. 瀑布模型:典型模型,需求十分明确,有丰富的案例经验
  2. 螺旋模型:强调了风险分析,特别适用于庞大而复杂的、高风险的系统。
  3. 迭代模型:每一次的迭代都会产生一个可以发布的产品,这个产品是最终产品的一个子集。
  4. V模型:注重测试
  5. 原型法:前期需求不明确
  6. 敏捷开发模型:以人为核心、迭代、循序渐进的开发方法

    1、瀑布模型

    瀑布模型是一个经典的软件生命周期模型,一般将软件开发分为:可行性分析(计划)、需求分析、软件设计(概要设计、详细设计)、编码(含单元测试)、测试、运行维护等几个阶段,如图2-12所示。
    image.png

2、 螺旋模型

螺旋模型是一个演化软件过程模型,兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控,使得软件的增量版本的快速开发成为可能,螺旋模型最大的特点在于引入了其他模型不具备的风险分析。在螺旋模型中,软件开发是一系列的增量发布。在早期的迭代中,发布的增量可能是一个纸上的模型或原型;在以后的迭代中,被开发系统的更加完善的版本逐步产生。

image.png
四个象限分别标志每个周期所划分的四阶段:制订计划、风险分析、实施工程和客户评估。螺旋模型强调了风险分析,特别适用于庞大而复杂的、高风险的系统。

3、迭代模型

迭代式开发模型,如图2-14所示,水平方向为时间维,从组织管理的角度描述整个软件开发生命周期,分四个阶段:初始、细化、构造、移交,可进一步描述为周期(Cycle)、阶段(Phase)、迭代(Iteration);核心工作流从技术角度描述迭代模型的静态组成部分,包括:业务建模、需求获取、分析与设计、实现、测试、部署。
各阶段的主要任务如下:
1)初始阶段:系统地阐述项目的范围,选择可行的系统构架,计划和准备业务案例。
2)细化阶段:细化构想,细化过程和基础设施,细化构架并选择构件。
3)构造阶段:资源管理、控制和过程最优化,完成构件的开发并依评价标准进行测试,依构想的验收标准评估产品的发布。
4)移交阶段:同步并使并发的构造增量集成到一致的实施基线中,与实施有关的工程活动(商业包装和生产、人员培训等),根据完整的构想和需求集的验收标准评估实施基线。
image.png

4、 V模型

V模型看起来就是一个对称的结构,它的重要意义在于,非常明确的表明了测试过程中存在的不同的级别,并且非常清晰的描述了这些测试阶段和开发阶段的对应关系。
1)单元测试:验证软件单元是否按照单元规格说明(详细设计说明)正确执行,即保证每个最小的单元能够正常运行。
2)集成测试:检查多个单元是否按照系统概要设计描述的方式协同工作。
3)系统测试:验证整个系统是否满足需求规格说明。
4)验收测试:从用户的角度检査系统是否满足合同中定义的需求或者用户需求。
image.png
V模型的特点:
1)V模型体现的主要思想是开发和测试同等重要,左侧代表的是开发活动,而右侧代表的是测试活动。
2)V模型针对每个开发阶段,都有一个测试级别与之相对应。
3)测试依旧是开发生命周期中的阶段,与瀑布模型不同的是,有多个测试级别与开发阶段对应。
4)V模型适用于需求明确和需求变更不频繁的情形。

5、原型化模型

原型法认为在很难一下子全面准确地提出用户需求的情况下,首先不要求一定要对系统做全面、详细的调查、分析,而是本着开发人员对用户需求的初步理解,先快速开发一个原型系统,然后通过反复修改来实现用户的最终系统需求。
原型应当具备的特点如下:1)实际可行2)具有最终系统的基本特征3)构造方便、快速,造价低。
适于用户需求开始时定义不清、管理决策方法结构化程度不高的系统开发。
可以将原型分类如下:
1)抛弃型原型(Throw-It-Away Prototype),此类原型在系统真正实现以后就放弃不用了。
2)进化型原型(Evolutionary Prototype),此类原型的构造从目标系统的一个或几个基本需求出发,通过修改和追加功能的过程逐渐丰富,演化成最终系统。

6、敏捷开发模型

敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。更强调程序员团队与业务专家之间的紧密协作面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中人的作用。Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。Scrum中的主要角色包括同项目经理类似的Scrum主管角色负责维护过程和任务,产品负责人代表利益所有者,开发团队包括了所有开发人员。