The Beginning of Software Development Methods


During the 1950s and 1960s, some programmers used abstraction and information hiding inadvertently in their programs. The important thing is that by 1975, both were better known. Moreover, engineers used the initial software development method, or, in this case, life cycle, while working in a form of obscurity. Winston Royce wrote about this method in 1970, in an article entitled Managing the Development of Large Systems: Concepts and Techniques [Royce70]. What he describes in that article looks like the documentation life cycle, because each milestone is based on releasing some document. It is now called the Waterfall Life Cycle, because it looks like Figure 8.3.

click to expand
Figure 8.3: The Waterfall Life Cycle.

Note that the Waterfall model contains the terms specifying , designing , coding , and testing , as we will meet them again. It also flows from top to bottom; hence, the waterfall metaphor. As a natural waterfall does not flow uphill , this kind of waterfall implies that we are done with an activity before we proceed. This means that we are done specifying before designing begins. Those who expected that requirements changes ended soon after being specified were terribly wrong. They experienced the waterfall as shown in Figure 8.4.

click to expand
Figure 8.4: How the Waterfall Software Life Cycle often looks.

Soon, the waterfall was modified by feedback loop, thus Figure 8.5.

click to expand
Figure 8.5: The Waterfall Software Life Cycle with feedback.

This feedback loop enables engineers to react to change. If sufficient changes happen to the requirements, then the design can be changed. If coding reveals a design change, then it can be propagated backwards . This proved to be too cumbersome or ineffective , due to changes performed in things that were already considered done. Therefore, another change to the waterfall became prevalent , the use of prototypes (see Figure 8.6).

click to expand
Figure 8.6: Prototypes in the Waterfall Software Life Cycle.

Discussion

Describe in detail the differences between the last three models. What do these differences imply with respect to software developers?




Human Aspects of Software Engineering
Human Aspects of Software Engineering (Charles River Media Computer Engineering)
ISBN: 1584503130
EAN: 2147483647
Year: 2004
Pages: 242

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net