软件开发方式与迭代
1. 瀑布式开发
试图在编程之前详细定义所有或大部分需求。瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。严格遵循预先计划的需求分析、设计、编码、集成、测试、维护的步骤顺序进行。并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
优点
i. 所有需求提前规定,适合充分理解的项目。
ii. 适用于没有经验的开发团队。
iii. 当前一阶段完成后,只需要去关注后续阶段。
iv. 可在迭代模型中应用瀑布模型。缺点
i. 在开始阶段定义完整且正确的需求很困难。
ii. 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。
iii. 瀑布模型的突出缺点是不适应用户需求的变化。
2. 螺旋式开发
螺旋模型基本做法是在“瀑布模型”的每一个开发阶段前引入一个非常严格的风险识别、风险分析和风险控制,它把软件项目分解成一个个小项目。每个小项目都标识一个或多个主要风险,直到所有的主要风险因素都被确定。