- 论坛徽章:
- 0
|
统一软件开发过程
五、统一开发过程是迭代式的和增量的
开发一个商业软件产品是一项可能持续几个月、一年甚至更长时间的工作。因此,将此种工作分解成若关更小的部分或若干小项目是切合实际的 。
每个小项目是指能导致一个增量的一次迭代。迭代指的是工作流中的步骤,而增量指的是产品的成长。为了更加高效,迭代必须受到控制;也就是说,必须对它们进行选择并有计划地去实现它们。这就是为什么它们是小项目的原因 。
开发人员根据两个因素来选择在一次迭代中要实现什么。首先,迭代与一组用例相关,这些用例共同扩展了到目前为止所开发的产品的可用性。其次,迭代涉及最为重要的风险。后续迭代是建立在先前的迭代完成后的开发成果之上的。它是一个小项目,因此,从用例开始,它还是必须经过下列开发工作:分析、设计、实现和测试,这样,就以可执行代码的形式在迭代中实现了用例。当然,一项增量并不一定就是添加性的。特别是在生命期的早期阶段,开发人员可能会用一个更为详尽或者复杂的设计来取代那种较为简单的设计。在后期,增量通常都是添加性的 。
在每次迭代中,开发人员识认并详细定义相关用例,利用已选定的基本架构作为指导来建立一个设计,以组件形式来实现该设计,并验证这些组件满足了用例。如果一次迭代达到了它的目标(通常如此),那么开发过程就进入下一次迭代的开发了。当一次迭代没有满足它的目标时,开发人员必须重新审查先前的决定,试行一个新方法 。
为了在开发过程中实现经济效益最大化,项目组必将试图选择为达到项目目标所需要的迭代。它应当以逻辑顺序排列相关迭代。一个成功的项目所经历的过程通常都只与开发人员当初所计划的有细微的偏差。当然,考虑到出现不可预见的问题需要额外的迭代或者改变迭代的顺序的影响,开发过程可能需要更多的时间和精力。使不可预见的问题减小到最低限度,也是风险控制的一个目标之一 。
一个受控制的迭代过程的好处有很多 :
受控制的迭代降低了在一个增量上的开支风险。如果开发人员需要重复该迭代,整个开发团队损失的只是一个开发有误的迭代的花费而已,而不是整个产品的价值。
受控制的迭代降低了产品无法按照既定进度表进入市场的风险。通过在开发早期就确定风险,人们就会在开发早期花时间来解决它们,而在这时,人们通常都不会像他们在开发后期那样匆匆忙忙。在“传统”方法中,困难的问题往往是在系统测试阶段才发现的,而解决这些问题所需求的时间通常又比开发进度中剩下的时间要多,因此,产品的延迟发布几乎是必然的 。
受控制的迭代加快了整个开发工作的进度,这是因为开发人员很清楚焦点所在,而不是在一个漫长而不断变化的进度安排下工作,因此, 他们的工作会更有效率。
受控制的迭代承认了通常都被忽略的一个事实:用户的需要和相应的需求并不能在一开始就作出完全的界定。它们通常都是在后续迭代中不断被细化的。此种作业模式使得适应需求的变化更为容易。
这些概念即用例驱动的、以基本架构中心的、迭代式和增量性的开发是同等重要的。基本架构提供了指导迭代中的工作的结构,而用例则确定了开发目标并推动每次迭代工作。缺乏这三个概念中的任何一个,都将严重降低“统一过程”的价值。这就好像一个三脚凳一样,一旦缺了任何一条腿,凳子都会翻倒。
以上我们已经介绍了三个主要概念,现在让我们来看看整个过程、它的生命期、成果、工作流程、阶段和迭代。 |
|