Software Development Life Cycle:
Software Development Life Cycle-SDLC is a process that is used by the software industry for designing, developing and testing high-quality software. The main objective of the SDLS is to produce software products of high quality so that the expectations of the customers can be fulfilled. The SDLS also aims to produce software that is developed within the specified cost and time (Morris, 2019). SDLC is also known as the Software Development Process or a framework that defines the tasks which are performed at each step in the development process of the software. An international standard for the software life cycle process that is used by the software development is ISO/IEC 12207. The main aim of these standards is to define all the tasks which are necessary for maintaining and developing software.
SDLC-Software Development Life Cycle Models
There are various software development life cycle models that also referred to as the Software Development Process Models. Series of steps are performed by each process model for ensuring the success in the processes of the software development.
Following are the most popular as well as most important SDLC models that are used in the software industry:
- Spiral Model
- Iterative model
- Waterfall model
- Agile SDLC Model
The first process model that was introduced is the Waterfall Model which is also known as Linear-Sequential Life Cycle Model. The main feature of this model is that it can be used easily and can be understood by anyone in a significant manner. In the waterfall model, each phase is required to be completed before the next phase of the model and these should not be overlapping in the phases of the waterfall model. This model helps in illustrating the software development process in linear as well as sequential flow. Following are the main phases of the waterfall model:
- Requirement Analysis
- Systems Design
In the Iterative model, the iterative process initializes with the simple implementation of the small set of software requirements. The iterative process, then iteratively improves the evolving versions until the entire system is implemented and prepared to be deployed (guru99, 2017). An iterative process model does not make an attempt to initialize with a proper and complete specification of the requirements, instead, the development begins by implementing the part of the software after proper specification which is then reviewed for identifying further requirements. The main idea behind the iterative process model is to develop a system through iterations or repeated cycles-iterative in smaller portions at a time-incremental. Following diagram represents the iterative as well as an incremental model:
SDLC Spiral Model
The model which combines the architecture, as well as prototyping by stages, is known as Spiral Model. This model is considered as the combination of the Waterfall SDLC and Iterative models. The main benefit of using the spiral model is that the scalability provided by this model helps in making changes and adding new functionalities even at relatively late stages. The following diagram depicts the four stages of spiral model:
V-shaped SDLC model
V-shaped SDLC model refers to the expansion of the waterfall model and this model is based on the associated test stage for each development stage. In this model, each stage starts only after the previous phase and due to this reason, this model is considered as a very strict model. Another name of this model is Validation and Verification model in which each stage has the current process control that helps to ensure that the conversion to the next stage is possible (Rajkumar, 2016).
Agile SDLC model
After each development iterations in the agile method, the customer is able to view the results of the final software product which is one of the main benefits of the agile SDLC model. But the main disadvantage of this model is that with the unavailability of the defined requirements, it becomes difficult to estimate the development and resource cost. The corrections of the functional requirements in this model are implemented into the development process for providing competitiveness. With all the corrections as well as changes in this model, there is a possibility that the expected time to complete the software project will exceed. This model cannot be used for long as well as ongoing projects and once an application is in the phase of testing, then it is not easy to go back and alter the functionality of any phase (Existek, 2017).
- Existek (2017). SDLC Models Explained: Agile, Waterfall, V-Shaped, Iterative, Spiral. [online] Existek.com. Available at: https://existek.com/blog/sdlc-models/ [Accessed 12 Jan. 2019].
- guru99 (2017). SDLC (Software Development Life Cycle) Tutorial: What is, Phases, Model. [online] Guru99.com. Available at: https://www.guru99.com/software-development-life-cycle-tutorial.html [Accessed 12 Jan. 2019].
- Morris, A. (2019). 6 basic SDLC methodologies: Which one is best? | Robert Half. [online] Roberthalf.com.au. Available at: https://www.roberthalf.com.au/blog/employers/6-basic-sdlc-methodologies-which-one-best [Accessed 12 Jan. 2019].
- Rajkumar (2016). V Model in Software Development Life Cycle. [online] Software Testing Material. Available at: https://www.softwaretestingmaterial.com/v-model-in-sdlc/ [Accessed 12 Jan. 2019].