Software developments that are carried out without any process or regulations often result in an end product with decreased quality and functionality. Such projects might also tend to become delayed or over the budget. With the increasing number of projects unable to maintain schedules and requirements, SDLC or software development lifecycle has become an integral part of software development process. Read on to understand in details about SDLC process and the various different models under it.
SDLC or Software Development Lifecycle is a model or structure that is adhered to during the development of software. It is also known as software lifecycle or software development process. There are many different models that can be applied during the development phase depending on the tasks and activities involved. ISO 12207 is one such international standard that is used for describing the method of selecting, implementing and monitoring the software life cycle.
Activities in Software Development
The process of Software Development consists of 5 major activities as given below.
1. Requirement Gathering
2. Design
3. Implementation
4. Verification and
5. Maintenance
Planning or Requirement Gathering is the first phase in a software development project where the specifications or requirements of a product are gathered. This phase also includes analyzing the scope the product development and documenting it. The scope document makes it clear as to what would be the end functionality of the software and what would be the out of scope activities. This phase thus aims at establishing a clear and well defined requirement and scope planning section.
Design & Implementation phase is the actual part of the development cycle where the software or the end product is developed. The software is developed based on the aspects of the previous gathered information. Some models also involve creation of a prototype before the actual implementation as a means of reduced deviations from the specifications.
Verification phase, as the name suggests, verifies the developed code and ensures that the defects are minimal and that the software confirms to the client requirements.
Deployment and Maintenance stage of the software development phase follows the verification or testing phase and involves the software being placed in the production environment and launched. Also at times, frequent monitoring and testing is done to ensure proper working for an initial period of time. Maintenance of the product is the last phase where the software goes into a change mode for adding extra functionalities, if required.
Software Development Life Cycle (SDLC) Models
There are many models of software development that have been developed over the years and each has its own defined purpose and disadvantage. It is therefore necessary to completely understand the available models and use the one that best suits the project needs.
1. Waterfall Model – The model is a step-by-step sequential execution of each phase of the software life cycle. Like the flow of water from a waterfall, the product development flows through each and every phase with reviews conducted at the end of each phase. The model does not encourage revisiting any of the previously completed phases and is hence considered as an inflexible model by many.
2. Rapid Prototype Model – This model includes creation of a prototype of the end product so that the requirements are confirmed before start of the development. The model does not contain excessive pre-planning sessions and is a fast and easy model for change requirements.
3. Iterative and Incremental development Model – This model involves in creating a small portion of the complete project to understand requirements of an unclear customer and to understand problems and assumptions in the initial stage.
4. Spiral Model – This model is a combination of the waterfall and the rapid prototype model and is more focussed on the aspects of risk management. The main activities of the Spiral model include plan formulation for identifying the software targets and restrictions, risk analysis and software implementation. This model is complicated in terms of risk analysis and hence not very much adopted in cases of large scale development.
5. Agile Model – The basis of this form of development rests on the iterative model. The difference between the two is that agile model uses feedback mechanism for controlling the defects from the initial portion created while iterative model uses planning for control.