Iterative和Waterfall Development Process

Iterative和Waterfall Development Process

UML Distlled的第二章的阅读笔记

UML是一组统一的建模工具。建模是Development Process的一个不可缺少的组成部分。Development Process是计算机科学中的管理学科。

RUP(Rational Unified Process)是一个非常流行的Development Process Framework。

两类Development Process: Iterative和Waterfall

Waterfall以软件开发的工作为基础来划分,依次分为需求分析设计编码测试。一个1年长的项目可能分为2个月的需求分析,跟着4个月的设计周期,3个月的编码周期和3个月的测试周期。

Iterative以软件的功能为基础来划分。一个1年长的项目可能分成4个循环,每个循环持续3个月,每个循环实现四分之一的功能。每个循环都要经过需求分析,设计,编码和测试四个步骤。在开始新的循环之前要保证上一循环的质量,绝对不能把测试推迟到最后

当然,这只是对两类Development Process的简单划分,在实践中,有不少现象模糊两者之间的区别。

Waterfall的分析和设计很可能在编码的周期里还需要修改,甚至返回重新设计。编码可能在分析结束之前就开始了。但是Waterfall的一个目的就是为了尽可能地减少这些活动。

采用Iterative方式,在真正的循环开始之前,可能会有一个实验阶段。以分析开发这一软件的可行性和经济性。在实验阶段还需要做一定的需求分析,但是并不深入到如Waterfall的需求分析和真正循环里的需求分析那样的细度,这里做的需求分析的目的是为了能够划分各个循环的功能,至少是第一个循环的功能。

两类Development Process也存在混合使用的可能,比如分析和高级的设计采用Waterfall的方式,编码和测试采用Iterative的方式。采用这种方式,可能先用4个月做分析和设计,跟着3个2个月长的周期循环。

采用Iterative Development方式的时候,当无法在一个Iteration里实现指定的功能的时候,应该将一部分功能推迟到下个Iteration,而不是推迟Iteration的时间,更加不应该减少测试的时间。这就需要一种给功能定等级的方法,等级高的功能应该优先实现。

采用Iterative Development经常要面对的一个问题是扔掉代码。后期循环的分析和设计,可能会影响前面循环中编写的代码,这时你可以选择修改或者重新写,有意思的是,在软件开发领域,重新写的效率比修改代码要高。现在有很多工具帮助人们提高重新写的效率,自动破坏测试(Automated Regression Test),重构(Refactoring), 持续集成(Continuous Integration).

转载请保留 http://www.blogjava.net/xilaile/archive/2007/04/21/112452.html


你可能感兴趣的:(Iterative和Waterfall Development Process)