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

1. 瀑布模型 Waterfall Model

  • 预测型生命周期、完全计划驱动型生命周期

image.png

  • 发表人:温斯特·罗伊斯,1970
  • 历史:20世纪初,应用于软件行业。但是21世纪后后来慢慢普及下降
  • 步骤:
    • 计划(Planning)
    • 需求(Requirements):了解产品所需功能、用途、用户需求
    • 设计(Design):确定完成项目所需软件和硬件,随后将它们转化为物理设计
    • 编码(Coding):根据项目要求和设计规范编写实际代码
    • 测试(Test):确保产品符合客户期望
    • 维护(Maintenance):通过客户确定产品设计的不足和错误,进而修正
  • 特点

    • 上一项开发活动接受其成果作为本次活动输入
    • 利用这一输入,实施本次活动应完成的工作内容
    • 给出本次活动的工作成果,作为输出传给下一项开发活动
    • 对本次活动的实施工作成果进行评审。若其工作成果得到确认,则继续进行下一项开发活动;否则返回前一项,甚至更前项的活动

      2. 迭代模型

  • 传统的生命周期中,阶段是以其中的主要活动命名的:需求分析设计编码测试。迭代模型中,每个阶段都执行一次传统的完整的串行过程串,执行一次过程串就是一次迭代

  • RUP(Rational Unified Process)软件统一过程是一种“过程方法”,它就是迭代模型的一种。
  • RUP 可以用二维坐标来描述。横轴表示时间,是项目的生命周期,体现开发过程的动态结构,主要包括:周期(Cycle)阶段(Phase)迭代(Iteration)里程碑(Milestone);纵轴表示自然的逻辑活动,体现开发过程的静态结构,主要包括活动Activity、产物Artifact、工作者Worker和工作流Workflow

image.png

  • 分解为 4 个顺序的阶段,形成了一个周期:
    • 初始阶段(Inception)
    • 细化阶段(Elaboration)
    • 构建阶段(Construction)
    • 交付阶段(Transition)
  • 核心工作包:
    • 商业建模
    • 需求获取
    • 分析与设计
    • 实现
    • 测试
    • 部署
  • 每个阶段结束于一个主要的里程碑 (Major Milestone) 。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足
  • 每个阶段,从上到下迭代,亦即从核心过程工作流”商业建模”“需求调研”“分析与设计"……执行到“部署“,再从核心支持工作流“配置与变更管理”“项目管理”执行到“环境“完成一次迭代。

    3. V型模型

    V模型的价值:它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段开发各阶段对应关系
  1. 需求分析
  2. 概要设计
  3. 详细设计
  4. 编码
  5. 单元测试
  6. 集成测试
  7. 系统测试
  8. 验收测试

image.png


单元测试

  • 的主要目的是针对编码过程中可能存在的各种错误,例如用户输入验证过程中的边界值的错误。

    集成测试

  • 主要目的是针对详细设计中可能存在的问题,尤其是检查各单元其他程序部分之间的接口上可能存在的错误

    系统测试

  • 主要针对概要设计,检查系统作为一个整体是否有效地得到运行,例如在产品设置中是否能达到预期的高性能

    验收测试

  • 通常由业务专家或用户进行,以确认产品能真正符合用户业务上的需要

image.png


4. 螺旋模型 Spiral Mode

  • 一个演化软件过程模型,。
  • 线性瀑布型迭代原型相结合
  • 使得软件的增量版本的快速开发成为可能。在螺旋模型中,软件开发是一系列的增量发布。在早期的迭代中,发布的增量可能是一个纸上的模型或原型;在以后的迭代中,被开发系统的更加完善的版本逐步产生
  • 螺旋模型4 个阶段:
    • 制定计划
    • 风险分析
    • 实施工程
    • 客户评估
  • 螺旋模型强调了风险分析,特别适用于庞大而复杂的、高风险的系统

image.png