软件生命周期模型:

  • 软件需求工程

  • 软件设计

    • 软件体系结构设计
    • 软件详细设计
    • 人机交互设计


  • 软件实现/构造



  • 软件测试



  • 软件交付



  • 软件维护


软件过程模型:

  • 对软件生命周期模型的进一步详细说明,对各个阶段的任务对象做进一步说明
  • 同一软件生命周期模型中可能存在不同的软件过程模型(软件生命周期模型只是界定了软件开发不同阶段之间的顺序)

构件修复模型:

含义:
  • 开发人员根据个人的分析和理解直接构造软件的第一个版本,交付给用户
  • 不断修复用户在使用过程中发现的缺陷,直到修复所有缺陷
  • 进入维护阶段
缺点:
  • 随着复杂度提升,开发活动会无法有效进行
  • 没有分析需求的真实性
  • 质量低
  • 可维护性低
适用场景:
  • 软件规模小
  • 软件质量要求低
  • 软件后期的维护要求也低

瀑布模型:

含义:
  • 按软件生命周期模型将软件开发组织成绣球开发,软件设计,软件实现,软件测试,软件交付,软件维护等活动,并规定了它们自上而下,相互衔接的开发活动次序(前一个环节的结果作为下一个环节的输入)
  • 允许出现反复和迭代,严格的线性不是瀑布模型的主要特点
缺点:
  • 对文档期望过高
  • 对开发活动是线性假设
  • 客户参与度不够
  • 里程碑粒度过粗
适用范围:
  • 复杂度适中
  • 需求非常成熟
  • 所需技术非常成熟

增量迭代模型:

含义:
  • 在项目的早期界定项目的目标和范围
  • 将后续开发活动组织为多个迭代,并行的瀑布式开发活动
优点:
  • 并行缩短了开发时间
  • 渐进交互加强了用户反馈,风险降低
  • 适用性好
缺点:
  • 需要完整清晰的项目前景和范围
  • 迭代的构件不能破坏已经构造好的系统,需要软件系统是一个开放式的体系结构
适用范围:
  • 成熟稳定领域的大规模软件系统开发

演化模型(需求驱动):

含义:
  • 早期明确系统的核心需求,建立并交付核心系统
  • 根据用户反馈并行迭代的组织瀑布式开发活动进行精化,增强系统
优点:
  • 适用性好
  • 并行开发缩短了开发时间
  • 渐进交互加强了用户反馈,风险降低
缺点:
  • 项目范围等计划无法在早期确定
  • 后期容易蜕变为构件修复模型
适用范围:
  • 不成熟不稳定领域的大规模软件系统开发

原型模型:

含义:
  • 在真正的产品构造前,向用户提供不完整的系统原型用于解决需求不确定问题

    • 抛弃式原型:原型不会出现在产品中
    • 演化式原型:原型会成为产品的一部分


  • 采用逐步求精的思想安排后续的开发活动


优点:
  • 渐进交互加强了用户反馈
  • 适用于新颖领域
缺点:
  • 开发成本高
  • 舍不得原型,导致低质量
适用范围:
  • 存在大量不确定性的新颖领域

螺旋模型:

含义:
  • 按照风险解决的方式来组织软件开发活动
优点:
  • 降低风险
缺点:
  • 开发成本高
  • 舍不得丢弃原型,导致产品质量低
  • 模型过于复杂,不利于管理
适用范围:
  • 高风险的大规模软件系统

RUP(统一过程的软件生命周期——4个阶段):

阶段:
  • 初始阶段:定义项目前景和范围
  • 细化阶段:设计软件体系结构,构建核心体系结构原型
  • 构造阶段:软件详细设计与实现
  • 交付阶段:产品交付给用户
注:

RUP可以是风险驱动,也可以是需求驱动。

优点:
  • 大小项目皆可
  • 有软件工程工具支持
  • 合理有效
缺点:
  • 没有考虑软件维护问题
  • RUP的裁剪配置工作较难
最后修改:2023 年 10 月 07 日
无需 money,加油,你一定会变得更好!