
Software Development Life Cycle models that can be followed during the lifecycle process. Each of these models has its own set of typical steps that are unique to it and which ensure that the software development lifecycle is carried out successfully.

List of SDLC Models
- Waterfall Model
- Prototype Model
- Spiral Model
- Incremental Model
- Agile methodologies and Concept
- Scrum Model
- V Model
- Rapid Application Development (RAD) Model
- Fish Model
Waterfall Model
The waterfall model is a linear, sequential model that segregates the development cycle of the software into different phases. Each phase is designed to accomplish a specific activity. Another interesting feature of this model is that each phase is executed sequentially and can start only after the previous phase has executed completely.
This model is mostly used when the application to be developed is not very complex and the requirements are clear and not prone to change frequently.
Advantages | Disadvantages |
Documentation is required to be done at every phase of the software’s development cycle | Developers and testers use up a lot of time in documentation activities. |
Changes in the software is made during the development process | Changes or error requested/detected in the completed software is difficult to implement |
Suitable for smaller projects | Not suitable for complex projects |
Simple and easy to use | Less flexibility to adjust to changing requirements and scope |
The shortcomings of the traditional waterfall model created a demand for new methods of developing systems which ensures faster results entails less up-front information, and offers greater flexibility. In response, various new iterative Development approaches came to fore- where projects can be subdivided into small parts.
To overcome the limitations of the traditional waterfall model, there was a demand for models that offer greater flexibility. Various iterative development models came to the fore and addressed the shortcomings with newer approaches where projects can be subdivided into small parts.
Prototype Model
The Prototype model is a cyclic version of the linear model. In this model, after the requirements of a system are determined and the design is finalized, the prototype is developed. After the prototype is created, it is rolled out to the customer for evaluation. The customer tests the package, and the product is refined and changes are incorporated till it meets the customer’s exact expectation. After a finite number of iterations, the final software package is given to the customer.
There are two prototyping approaches that are used in the software development lifecycle.
A. Evolutionary Prototyping
In this model, the prototype of the system is developed in parts or increments. This method enables the system to be quickly modified in response to the customer’s feedback. Here, development usually starts with those requirements which are best understood.
B. Throwaway Prototyping
In throwaway prototyping, a small part of the system is developed and rolled out for customer evaluation. The customer feedback is then incorporated into the main system and the prototype is discarded or thrown away. Here, development starts with those requirements which are poorly understood.
Advantages | Disadvantages |
The possibility of developing a system that closely focuses on end-users’ needs and expectations is high. | Here, system documentation usually takes a backseat, since the prime focus is on developing a prototype. |
It is easier to trace problems early in the life cycle. | There is an absence of end phase reviews. |
Here there is always an opportunity to stop development on an unworkable system. | There is a risk that incomplete prototypes are regarded as complete systems. |
The model is flexible as it can modify the system early in its development eliminating rework later in the lifecycle. | The nature of the model is rapid and iterative therefore it becomes difficult to manage the system. |
Spiral Model
This model is a combination of the iterative model and the waterfall model with an emphasis on risk analysis. The spiral model comprises four phases-Planning, Risk Analysis, Engineering and Evaluation. In the development lifecycle, the system passes through each of these phases in iterations (called spirals) repeatedly. The first prototype of the new system is developed from the preliminary design. Successive prototypes are evolved by testing the preceding ones. Incremental releases of the system are made to the customer with refinement at each spiral or iteration.
The Spiral Model is widely used in the software industry as it is in sync with the natural development process of any product, i.e. learning with maturity which involves minimum risk for the customer as well as the development firms.
This model is suitable for large projects. The minimum risk associated with the approach makes it a popular choice in the software industry.
Advantages | Disadvantages |
The model accommodates the changing requirements of customers. | Due to its iterative nature, management of the different phases in the model is difficult. |
The development is divided into smaller increments. Therefore the parts of the process that are risky can be developed earlier in the life cycle. This helps in better risk management. | If a risk is not discovered early, there is always the possibility of it occurring later. |
It is a suitable approach for large and complex projects. | It is not recommended for smaller projects. |
Incremental Model
The incremental life cycle model is similar to the spiral model and is also an evolutionary model. It is ideal for complex projects having large business components and interfaces with third party business applications.
The incremental model divides the product into iterations which are developed and tested in parallel. Each iteration has its own requirements, design, implementation and testing phase. A working version of the software is produced during the first iteration. Subsequent iterations are created on the basis of the initial software produced during the first iteration.
Advantages | Disadvantages |
It is ideal for large and complex projects having several components. | The process is time-consuming. |
It facilitates modifications in the user requirements. | The amount of user interaction in this model is huge. |
It is a flexible model and less costly in terms of change in scope and requirements. | No visible end to the finished product. |
Agile methodologies and Concept
The Agile concept is built on the premise that every project is unique and needs to be handled differently. It believes that the existing methods need to be tailored to suit each project requirement. This methodology is gaining wide popularity due to its adaptability and flexibility.
The methodology has an incremental and iterative approach to the software development process. The end user has various opportunities to see the product and validate it for changes in scope and requirements. Using this concept, smaller projects can be developed very easily, although the iterative approach can impact the development times of larger projects.
Scrum Model
The Scrum model empowers the development team and advocates working in small teams ideally with seven to nine members. This model is an agile development method that emphasizes on how to manage tasks within a team-based development environment.
The Scrum model consists of three roles:
- Scrum Master
The Scrum Master is responsible for setting up the team, the sprint meetings and removing obstacles in the process.
- Product Owner
The Product Owner creates the product backlog, prioritizes the backlog and is responsible for the delivery of the functionality in each iteration.
- Scrum Team
The Team manages and organizes the development work to complete the sprint or cycle.
A. Daily Scrum Meet
In Scrum, the development team holds a daily scrum meeting of 15 minutes to discuss the plan of work for the next 24 hours. To avoid confusion, the meetings are held at the same time and at the same place and kept to the relevant points of discussion. These meetings help in optimizing the team performance while maximizing team collaboration.
B. Online Story Board and Kanban Board
One of the important features of the Scrum methodology is the Scrum board. It is used to track the system development workflow and progress from the start to the end. It enables the development team to manage their work effectively. The board can be drawn on the wall or a whiteboard.Online Scrum boards are also becoming popular especially if the development team is spread across different locations. Kanban tool is an example of an online Scrum board.
C. Sprint/Burndown Chart
The Scrum Master estimates the work remaining in the sprint every day and records the details in a chart. This is called the Burndown chart.
V Model
The V model is an extension of the Waterfall model. In this model, at the end of each development phase there is a testing cycle. Testing is done in parallel in each phase in this model. Every phase of the testing in this model corresponds to some activity in the software development phase.
In the V model diagram, the left side represents the SDLC, the right side represents the STLC or the Software Testing Life Cycle.
Advantages | Disadvantages |
It works well with small projects where the requirements are clearly understood. | The model doesn’t provide a clear path for problems found during testing phases. |
It is simple and easy to use with higher chances of success over the Waterfall model due to the testing cycles. | Little flexibility and an expensive approach. |
Rapid Application Development (RAD) Model
Rapid application development (RAD) is an object-oriented approach to systems development that includes a method of development as well as software tools. It follows the linear sequential software development process model that emphasizes an extremely short development cycle. RAD and prototyping are conceptually very close.
An important feature of this model is to reuse the existing program components (wherever possible) or create reusable components (when necessary). In most instances, automated tools are used to facilitate construction of the software.
Advantages | Disadvantages |
It aims at shortening the time in design and implementation phases. | It is not suitable for large projects. |
It is capable of dealing with the rapidly changing requirements. | Knowledge of RAD tools is a must to use this methodology. |
Fish Model
The Fish model is similar to the V model. In this model validation and verification are done in parallel by multiple verification teams. This is however an expensive and time-consuming approach.