迭代开发是大多数现代方法中的关键实践。在生命周期方法中,开发被组织成一系列固定的短期(如三个星期)小项目,称为迭代。每次迭代都产生经过测试、集成的可执行的局部系统。每次迭代都具有各自的需求分析、设计、实现和测试。
迭代是软件开发过程中普遍存在的一种内在属性,它不是面向对象方法所独有的。研究资料表明,过程模型都朝着迭代的方向发展,只是这种迭代过程在面向对象开发中更常见。在实际的项目开发过程中,用户的需求很少一成不变,因此迭代便成为目前提高用户满意度、提高软件质量、按时交付产品的一种有效途径。可以说,现代的软件过程就是一个迭代的过程,软件产品的生产是迭代进行的。
迭代的生命周期是通过对经过多次迭代的系统进行持续扩展和精化,并以循环反馈和调整为核心驱动力,使之最终成为适当的系统。随着时间的推移和迭代的递进,系统增量式地发展完善。因此,这一方法又被称为迭代和增量式开发。由于反馈和调整使规格说明和设计不断进化,故这种方法又被称为迭代和进化式开发,如图6-1所示。
(www.xing528.com)
图6-1 迭代和进化式开发
成功的迭代可以通过对上一次迭代的扩展和优化得到一个更强大的产品。每次迭代都产生一个可执行的、经过测试的、综合的软件版本。因为迭代是一个很短的过程(几周时间),所以技术人员能对软件开发持有信心,同时也能及时得到用户对于迭代的反馈意见。
每次迭代所要完成的任务就是软件生命周期中的一个开发阶段,这类似于应用一个小型的瀑布模型。而每次迭代所生成的部分可执行系统又类似于快速原型法中向用户提供的获取反馈的原型。那么,是否能够将这种迭代开发理解为多次瀑布模型加上原型法的综合应用呢?我们先来比较一下迭代开发和这两种常见的开发方法——瀑布模型和快速原型法的不同。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。