Software Development Life Cycle Model (SDLC)
Definition - What does Software Development Life Cycle Model (SDLC) mean?
A software development life cycle (SDLC) model is a conceptual framework describing all activities in a software development project from planning to maintenance. This process is associated with several models, each including a variety of tasks and activities.
Software development is a cumbersome activity requiring proper identification of requirements, their implementation, and software deployment. However, the activities do not end there. After the distribution of the software, proper maintenance has to be provided in a timely manner.
This term is also known as software development process model.
Techopedia explains Software Development Life Cycle Model (SDLC)
The major software development activities include:
- Requirement extraction: The client has a vague idea of what is required. After a thorough analysis of the requirements and planning steps to reach the target, the abstract client idea is put into practice by a group of software engineers.
- Software description: Describes that the software is the next step in the process.
- Abstract system representation: Is created to confirm that it meets the requirements of the product and interfaces with other software products together with the underlying hardware.
- Client requirements: Implemented through the code programmed by software engineers.
- Code testing: The code is tested to make sure it is free of bugs and adheres to the client requirements.
- Documentation of the internal design: For future product maintenance and enhancement.
- Maintenance: It is performed to change the system architecture according to future needs. This may require the addition of code or alteration of the existing code.
The above development process is streamlined by a series of models. The development team selects the best suitable model. The different models are:
- Waterfall model: Developers state the requirements, analyze them, determine a solution and frame a software architecture, interface representation, and algorithmic details. Then they develop the code, test the code, deploy the software, and maintain it. While the waterfall method is easy to understand and sets requirement stability, it might give a false impression of not providing much customer participation. The main problem with this model is that the requirement to correct errors should be known upfront and at an early stage. Otherwise, the whole process may continue in a wrong direction, which could negatively impact the cost of production.
- V Shaped model: Is a variation of the waterfall model. It emphasizes verification and validation of the product. All deliverables are testable and progress is tracked by milestones. Testing is implemented in parallel to the development phase.
- Prototype model: A prototype is developed in the requirement phase and evaluated by end users. Based on user feedback, developers alter the prototype to satisfy user requirements. While this model finalizes the requirements easily, its use in the production environment might result in quality issues, thereby making the process of correction continue forever.
- Spiral model: Makes use of both waterfall and prototype models. It adds 4th generation programming languages, rapid application development prototyping and risk analysis to the waterfall model. The system requirements are designed and a preliminary system design is created. An initial prototype is designed and tested. Based on the evaluation of test results, a second prototype is created. Subsequent prototypes are constructed to ensure customer satisfaction. The system is created based on the final prototype. The final system is evaluated and tested. Though this model reduces risk to a large extent, it may not meet the budget and is applied differently for each application.
- Iterative and incremental SDLC model: Specifies and implements a part of the software, which is then reviewed and further requirements added and implemented in groups. Every release delivers an operational product presenting the customers with important functionalities first, lowering initial delivery costs. The risk of changing requirements is greatly reduced and customers are allowed to respond to each build. In spite of its strengths, this model requires good planning and early definition of the complete and fully functional system. It also requires well-defined module interfaces.
- Agile development model: Is used for time-critical applications in organizations employing disciplined methods. It speeds up the life cycle phases and has reduced scope.
- Magic box model: Is a Web application development model. It is the fastest way to finish the project with the least bugs as it provides the chance to alter the code and database structures.