你应该只在想取得成功的项目上实施迭代开发。
——马丁·福勒(Martin Fowler)
·说明本书内容和章节安排的动机。
·定义迭代和敏捷过程。
·定义统一过程中的基本概念。
简介
迭代开发是OOA/D成为最佳实践的核心,也是本书所介绍的OOA/D的核心。敏捷实践(如敏捷建模)是有效地应用UML的关键。UP是相对流行的、示范性的迭代方法。本章将对这些主题进行介绍。
相对于顺序或“瀑布”(waterfall)生命周期,迭代和进化式开发(iterative and evolutionary development)对部分系统及早地引入了编程和测试,并重复这一循环。这种方式通常会在还没有详细定义所有需求的情况下假设开发开始,同时使用反馈来明确和改进演化中的规格说明。
在迭代开发中,我们依赖于短时快速的开发步骤、反馈和改写来不断明确需求和设计。相比之下,瀑布模型提倡在编程之前就预先完成需求和设计步骤。一直以来,成功/失败的研究表明,瀑布模型和软件项目高失败率具有极大关系,对它的推广源于信念和风闻,而不是具有统计意义的证据。研究证实,迭代方法与较高的成功率、生产率和低缺陷率具有关系。