Waterfall Methodology

The waterfall method attempts to structure development as a single sequence of non-overlapping heterogenous phases, the output of each being the input to the next. Typical phases are: analysis, design, code, test, deployment

A dangerous misunderstanding of Waterfall and other methodologies can be found here:

http://www.ncycles.com/e_whi_Methodologies.htm

Strengths cited are:

Weaknesses cited are:


In the most strict interpretation WaterFall, it does no good to "inspect the design during build". The DesignPhase is over, there is no going back. If, during build, the design is found to be flawed, well, then what?

 Actually, I have always understood the waterfall flow to be like this:

.-----------------------------+------------------+---------------------+----------------------------. | | | | | | | not ok? | not ok? | not ok? | | +--------------+ +----+---+ +--------+-------+ +-------+------+ +-------------+ | `-> | Requirements | --> | Design | --> | Implementation | --> | Verification | --> | Maintenance |-' +--------------+ +--------+ +----------------+ +--------------+ +-------------+

The idea is, if written programmatically:

10 R = REQUIREMENTS 20 D = DESIGN(R) 30 IF NOT OK(D) THEN GOTO 10 40 I = IMPLEMENTATION(D) 50 IF NOT OK(I) THEN GOTO 10 'Notice the target! 60 V = VERIFY(I) 70 IF NOT OK(V) THEN GOTO 10 'This would drive me batty... 80 M = MAINTAIN(D, I, V) 90 GOTO 10

Should this page be moved to, or combined with WaterFall, or WaterfallMethod, or WaterfallModel? Probably ought to be deleted once we've agreed whether the link has any value!

[Why deleted? Rebuttals have good value.]

Good rebuttals have good value. Saying "No" doesn't qualify as a good rebuttal.


The waterfall method structures development as a single sequence of non-overlapping heterogenous phases, the output of each being the input to the next. Typical phases are: analysis, design, code, test, deployment

The word 'phase' is a misnomer since every one of these overlaps with nearly every other at every stage of the software lifecycle. Coding almost always involves analysis, designing and testing.


CategoryApplicationDevelopment


EditText of this page (last edited February 16, 2009) or FindPage with title or text search