Examine the case for the waterfall life cycle. Does the waterfall life cycle still play a useful role in modern system development, and if so, at which stages?
The waterfall life cycle model in software engineering was originally designed in 1970 by Winston.W.Royce. The waterfall life cycle model plays a linear act of moving forward of framework activities that is often inconsistent in some field of the software world. In situations where requirements are well defined and stable, it is applicable to play a vital role. The waterfall model is easy to understand and reinforces the notion of “define before design” and “design before code”. The model looks for the complete requirements at the beginning of the process which is unrealistic. The waterfall model is one of the traditional or classic models used in the software development field which is very easy to use and simple to understand. The name waterfall is suggested due to the similarity of the model with the cascade of waterfalls. In the waterfall life cycle, the whole process is separated into independent phases. All the phases are cascade to one another so that the output of the present phase would be the input for the next phase. All the methods and processes attempted in the model are more visible. The highlight of the waterfall model is that, there are different phases in the model life cycle and the existing phase must be finished before the next phase starts. The five phases of the waterfall model are bulleted below in sequence: 1) Requirements Definition
2) System and Software Design
3) Implementation and Unit testing
4) Integration and System testing
5) Operation and Maintenance
Requirement Definition: All the requirements that are expected by the end user from the system are collected in this phase. The aim of this phase is to estimate the time and cost needed for the development of the system. The possible risks are analyzed and studied then a document is prepared which will carry the listed requirement for the next phase. System and Software Design: The phase emphasizes on how should the end product looks like before writing a single line of code. A system design is prepared in this phase after studying the requirement specifications from the previous phase that helps to create a design document which serve as an input for the next phase. Implementation and Unit testing: The actual coding begins in this phase after receiving the design document from the previous phase. The system is implemented into a small program known as a unit and these units are tested for functionality which is referred as unit testing. Integration and System testing: The units are integrated into a complete system in this phase. The complete system is tested as a whole to check if the units are coordinate with each other and the whole system is behaving as per user specifications or not. Finally, the software is delivered to the end user after successfully testing it. Operation and Maintenance: After delivering the software with a successful testing, many problems remain in the system which arises time to time when it is practically used by the user. These problems are rectified and solved in the maintenance phase.
Figure: Waterfall Model (Royce, 1970)
In which stage the waterfall model plays a useful role?
There is a mild state of dissociation of work and command in the waterfall model. For this it improves its qualities by ensuring minimal wastage of time and effort before starting the actual coding which reduces the risk of schedule, slippage or customer expectation and this way it become easier to catch and correct the faults at the design stage then at the testing stage. Finally, the first two phases terminated in the production of...
References: Bennett, S. et al. (2010) Meeting the Challenges. In: Hoyle, C. et al. (eds.) Object-Oriented Systems Analysis and Design. 4th ed. Berkshire: McGraw-Hill Education, pp. 71-77.
Waterfall model explained (2011) [Online]. Available from: http://www.buzzle.com/editorials/1-5-2005-63768.asp. [Accessed 6/1/13].
Self-Assessments for OOP Introduction (2006) Spiral model [Online image]. Available from: http://elm.eeng.dcu.ie/~ee553/ee402notes/html/ch01s05.html.
Royce (1970) Waterfall model [Online image]. Available from:
http://www.robabdul.com/Data-Management-System-Software-Development-Cycle.asp. [Accessed 5/12/12].
Aggarwal and Singh (2007) Software life cycle model. 3rd ed. India: New age international publisher.
Kuchta, J. (2010). Software Life Cycle, available from: http://lib.bioinfo.pl/files/courses/pdfcache/lecture_229.pdf. [Accessed 6/1/13].
Learnaccessvba. (2006). Waterfall Development Methodology, available from: http://www.learnaccessvba.com/application_development/waterfall_method.htm [Accessed 6/1/13].
Sommerville, I.: (2004) Software Engineering, 7th ed. Pearson Eductation Ltd., London
Please join StudyMode to read the full document