项目生命期确定了将项目开始和结束连接起来的阶段。

项目生命周期阶段 重点

  1. 概念/启动阶段:确立项目需求和目标
  2. 开发/计划阶段:检验需求并开发项目计划
  3. 执行/实施阶段:将计划付诸实施
  4. 结束/收尾阶段:最终产品交付与验收

软件产品生存期 vs 项目生存期

  • 产品生存期:从产品调研到淘汰的全过程(调研→批准→需求→设计→开发→测试→交付→批量生产→维护→升级→淘汰)
  • 项目生存期:从项目批准到交付的全过程(批准→需求→设计→开发→测试→交付)

软件项目生存期模型特征

  • 描述开发的主要阶段
  • 定义每一阶段要完成的主要过程和活动
  • 规范每一阶段输入和输出

项目生存期模型对比 重点

模型核心思想主要优点主要局限适合场景
瀑布模型按计划、需求、设计、编码、测试、维护顺序线性推进阶段清晰,文档完整,便于计划和管理变更成本高,用户较晚看到产品,难以及时发现需求偏差需求明确、方案明确、有类似项目经验的短期项目
V 模型将开发阶段与测试阶段一一对应,强调验证和确认测试活动更早规划,质量控制关系清晰仍然偏线性,对需求变化适应能力弱质量要求高、需求较稳定、需要明确测试对应关系的项目
螺旋模型以风险分析为核心,通过多轮循环逐步推进风险控制能力强,用户可较早看到产品,适合复杂项目管理复杂,对风险识别和评估能力要求高风险是主要制约因素、需求不明确、采用新技术、规模大的项目
原型模型快速构造原型,通过用户反馈不断修改完善有助于澄清需求,降低需求误解,用户参与度高原型可能被误当作最终系统,后期结构和质量可能受影响需求模糊、用户难以一次性说明需求的项目
增量模型先交付系统的一部分,再逐步增加功能和性能可较早交付可用系统,降低一次性投入风险,便于分批验证需要良好的总体架构设计,增量划分不当会导致集成困难需求大部分明确但可能变化、需要逐步投放市场的项目
敏捷模型迭代和增量结合,频繁交付并持续响应变化适应需求变化,交付周期短,客户反馈及时对团队协作和客户参与要求高,弱文档可能影响长期维护需求变更频繁、需要快速交付价值的项目
混合模型结合预测型和敏捷型方法,按项目部分选择不同方式兼顾计划控制与变化响应,适应性强方法组合复杂,需要明确哪些部分采用预测型或敏捷型同一项目中既有稳定需求又有不确定需求的场景

生存期选择 重点

类型特点适合场景
预测型提前大量计划,一次性执行需求明确、方案明确、短期项目
迭代型允许反馈改进和修改工作需求不明确
增量型向客户提供已完成的可用交付功能逐步增加
敏捷型既有迭代又有增量,频繁交付需求变更频繁

预测模型

瀑布模型

  • 计划→需求分析→设计→编码→测试→维护
  • 适合:需求明确、方案明确、有类似项目经验的短期项目

V 模型

  • 强调测试与开发的对应关系

迭代模型

螺旋模型

  • 四个象限:制定计划、风险分析、实施工程、客户评估
  • 通过风险管理驱动,用户可以更早看到产品
  • 适合:风险是主要制约因素、需求不明确、采用新技术、规模大

原型模型

  • 快速构造原型,不断修改完善

增量模型

  • 首先构建系统一部分,逐步增加功能和性能
  • 特点:循序渐进避免一次性投入过大风险、更快开发出可操作的系统
  • 适合:需求大部分明确但可能变化、对市场把握不准

敏捷模型 重点

敏捷是一种迭代、循序渐进的开发方法,应对迅速变化的需求。

敏捷宣言 4 价值观

  1. 个体和交互胜过过程和工具
  2. 工作软件胜过面面俱到的文档
  3. 客户合作胜过合同谈判
  4. 响应变化胜过遵循计划

Scrum 模型

  • 1990 年代初由 Ken Schwaber 提出
  • 迭代开发,2-4 周为一个 Sprint
  • 会议:迭代计划会、每日站会、迭代评审会、迭代回顾会

XP(极限编程)

  • 由 Kent Beck 提出
  • 强调结对编程、TDD、持续集成等实践

DevOps

DevOps 是 Development 和 Operations 的组合,促进开发、技术运营和质量保障部门之间的沟通、协作与整合。

混合模型

结合预测型和敏捷型的特点,适应不同项目需求。