The linear software processes come from manufacturing goods. In the past, software was expensive. Virtually all linear software development models suffer from several key disadvantages:
- limited (or none) client interaction
- limited (or none) client feedback
- limited (or none) adaptability to changing requirements
In this article, I will explore the 3 fundamental processes:
- Waterfall
- V-Model
- Sawtooth
Waterfall
The waterfall model is probably one of the most popular and well. It was proposed by Winston Royce in 1970. Indeed, its rise to popularity is somewhat puzzling because even Royce himself recommended more iterative, but I suppose there is something to be said very clear and obvious progression. The phases of the software engineering cycle are well defined: analysis, design, implementation and testing.
It is rare to completely finish one phase before moving the next. Instead, when 70%-80% of the phase is finished, there is an attempt to begin the next phase
V-Model
V Model is a variation of the waterfall but it places a lot more emphasis on the verification. Rather than using the feedback from the client, it places the emphasis on tests:
- requirements are accompanied by acceptance testing
- specification by system testing
- architectural (high level) by integration testing
- detailed design by unit tests
- coding
Sawtooth
The third and final model is the so-called "sawtooth". Unlike the previous two, this one attempts to get some feedback from the client during the development.
The model is still sequential. Starts with system requirements and produces the analysis. A prototype is then constructed to gain some feedback. The prototype construction is followed by the design which again produces a prototype of the solution. Finally, the full implementation and testing occur followed by the acceptance of the product.