Software Development Life Cycle
It is a procedure to develop the software. It is a process of creating or altering systems and the models and methodologies that people use to develop these systems. Any SDLC should result in a high quality system that meets or exceeds customer expectations, reaches completion within time and cost estimates, works effectively and efficiently and is inexpensive to maintain and cost effective to enhance. Different procedures / models are available to develop software.
The software life cycle has to follow the sequence. The original waterfall model consisted of the following seven stages:
1. Requirement Phase
2. Specification Phase
3. Design Phase
4. Implementation and Testing Phase
5. Integration and Testing Phase
6. Maintenance Phase
7. New Requirements Phase
Stage 1: Requirement Phase
Whether you design a small program to add two numbers or you are into developing a software system for the automation of an entire airline company, this is the first stage which can never be overridden. Unless you know what you are going to design, you cannot approach the problem. Here, the specifications of the output or the final product is studied and marked. If the software that is going to be designed should not contain certain features, for reasons like security, then it is also mentioned in this stage.
Stage 2: Specification Phase
With all the requirements and constraints in hand, a final view of how the product should exactly be, is decided. The exact way in which the software should function is mentioned in this stage.
Stage 3: Design Phase
Well, here the actual work begins. Every type of resource which will be required for the smooth designing of the software is mentioned here in this phase. What type of database will be required, what type of data should be supported, etc. are some of the important aspects that are decided in this phase. The algorithm of the process in which the software needs to be designed is made in this phase. This algorithm forms the backbone for the actual coding part in the next phase.
Stage 4: Implementation and Testing Phase
Now starts the coding part. Here, the software is designed as per the algorithm. Hence it becomes very important that the algorithm should be properly designed. The software designed as per the algorithm needs to go through constant software testing and error correction processes to find out if there are any flaw or errors. The output of this stage should be a well-designed software which is at par with the algorithm designed.
Stage 5: Integration and Testing Phase
Here the various codes designed by different programmers are integrated together and is tested if the software works as per the specifications provided. The setup of the final software which needs to be installed at the clients system is also designed and tested so that the client does not face any problem during the installation of the software. The product is then handed over to the client.
Stage 6: Maintenance Phase
The work of software development does not end with the handing of the software to the client. The software designers may have to constantly provide support to the client to resolve any of the issues which may arise. There may be some flaws which get detected during the actual implementation of the project. During the maintenance phase, support and debugging is provided for all such problems.
Stage 7: New Requirements Phase
Changing times may require that the product requirements be changed. The client company may be expanding into other fields and it may want new features to be added over to the existing software. Hence, it is very important that the updated requirements be taken from the client. This requires the entire product life cycle to start all over again.
Now, I hope that the small explanation given above must have helped you in understanding the waterfall model. With this knowledge in hand, let us try to understand the advantages and disadvantages of waterfall model. Read more on waterfall model in software engineering.