瀑布模型、螺旋模型、敏捷开发

瀑布模型

自上而下完成,软件开发进行到下一阶段之前彻底完成上一个阶段。
遵循以下顺序:

  1. 需求分析和规范
  2. 架构设计
  3. 实现和综合
  4. 验证
  5. 操作和维护
    瀑布模型、螺旋模型、敏捷开发
    瀑布模型适合开发需求特别明确的任务,缺点是一旦需求发生变化,瀑布模型就会陷入困境。

螺旋模型

螺旋模型是瀑布模型加上原型发展而来,主要思路是遍历下面四个阶段,每次产生都新模型都是从之前到版本提炼出来。

  1. 第一阶段:确定本次迭代的目标和约束
  2. 第二阶段:评估各种备选方案并确认,化解风险
  3. 第三阶段:开发和验证本次迭代原型
  4. 第四阶段:计划下一次迭代
    瀑布模型、螺旋模型、敏捷开发

敏捷开发

螺旋和瀑布仍然不是最好的软件开发方法,2001年2月的敏捷宣言算得上软件工程的”改革里程碑”,核心价值观:

  1. 个体和互动高于流程和工具
  2. 工作的软件高于详尽的文档
  3. 客户合作高于合作谈判
  4. 相应变化高于遵循计划

敏捷开发在与客户合作的过程中,再项目原型里不断为客户增加新的功能,直到客户满意为止,允许客户在项目开发时改变他们想要的功能。敏捷开发的生命周期比较短,在不断和客户沟通的过程中迭代。

谬论:敏捷生命周期对软件开发来说是最好的。
敏捷很适合开发某些类型的软件,特别是saas应用,但并非对所有的软件来说都是最好的。例如,敏捷不适用于事关安全性的应用。