本人读了希塞软件工程网(www.51cmm.csai.cn)上的一篇文章《迭代实践》,深有同感!
以下有很大部分是引用《迭代实践》上的文字,小部分是个人体会。
《迭代实践》
迭代源自一种求解方程或方程组得算术方法,是一种通过求近似根的序列收敛,最终得到较为精确的过程。其过程是不断重复,但每次的初值不同。软件开发中的迭代原理与此相似。依靠在不同增量上的多次重复,达到完成开发任务的目的。
迭代是一种通过“小步快走”的高斌率开发模式,通过细化开发任务,将整个任务分解成为更小的环节,形成一系列递增的软件版本。使得软件开发可以以一种较快的速度进行,并且这种推动作用在团队开发中会变得更加明显。这种更小的环节也可称为软件工序。
在迭代化的方法中,整个项目的开发目标划分成为一些更易于完成和达到的阶段性小目标,这些小目标都有一个定义明确的阶段性评估标准。迭代就是为了完成一定的阶段性目标而所充实的一系列活动,在每个迭代开始前都要根据项目当前的阶段和多要达到的阶段类型的开发活动,迭代完成之后需要对迭代完成的结果进行评估,并以此为依据来制定下一次迭代的目标。
因此,灵活的迭代方法别许多开发模式应用。比如在快速原型法中,以需求-〉原型为基本迭代单元,不断积累形成被用户认可的系统原型;在RUP中一需求->分析->设计->测试为基本单元的迭代,通过每次迭代实现一个小规模的发布版本,大大降低开发中的潜在风险;在螺旋模型中,通过对所有任务由简到繁的周期性迭代,实现快速增量版本的开发。