Introduction
Software development life cycle (SDLC) is a series of phases that provide a common understanding of the software building process. How the software will be realized and developed from the business understanding and requirements elicitation phase to convert these business ideas and requirements into functions and features until its usage and operation to achieve the business needs. The good software engineer should have enough knowledge on how to choose the SDLC model based on the project context and the business requirements.
Therefore, it may be required to choose the right SDLC model according to the specific concerns and requirements of the project to ensure its success. I wrote another article on how to choose the right SDLC, you can follow this link for more information. Moreover, to learn more about Software Testing life cycles and SDLC phases you follow the links highlighted here.
In this article, we will explore the different types of SDLC models and the advantages and disadvantages of each one and when to use them.
You can think of SDLC models as tools that you can use to better deliver your software project. Therefore, knowing and understanding each model and when to use it, the advantages and disadvantages of each one are important to know which one is suitable for the project context.

Types of Software developing life cycles (SDLC)
- Waterfall Model
- V-Shaped Model
- Evolutionary Prototyping Model
- Spiral Method (SDM)
- Iterative and Incremental Method
- Agile development
Waterfall Model
Description
The Waterfall Model is a linear sequential flow. In which progress is seen as flowing steadily downwards (like a waterfall) through the phases of software implementation. This means that any phase in the development process begins only if the previous phase is complete. The waterfall approach does not define the process to go back to the previous phase to handle changes in requirement. The waterfall approach is the earliest approach and most widely known that was used for software development.

The usage
Projects which not focus on changing the requirements, for example, projects initiated from a request for proposals (RFPs), the customer has a very clear documented requirements
Advantages and Disadvantages
Advantages | Disadvantages |
|
|
V-Shaped Model
Description
It is an extension of the waterfall model, Instead of moving down in a linear way, the process steps are bent upwards after the implementation and coding phase, to form the typical V shape. The major difference between the V-shaped model and waterfall model is the early test planning in the V-shaped model.
The usage
- Software requirements clearly defined and known
- Software development technologies and tools are well-known
Advantages and Disadvantages
Advantages | Disadvantages |
|
|
Prototyping Model
Description
It refers to the activity of creating prototypes of software applications, for example, incomplete versions of the software program being developed. It is an activity that can occur in software development and It used to visualize some component of the software to limit the gap of misunderstanding the customer requirements by the development team. This also will reduce the iterations may occur in the waterfall approach and hard to be implemented due to the inflexibility of the waterfall approach. So, when the final prototype is developed, the requirement is considered to be frozen.
It has some types, such as:
- Throwaway prototyping: Prototypes that are eventually discarded rather than becoming a part of the finally delivered software

- Evolutionary prototyping: prototypes that evolve into the final system through an iterative incorporation of user feedback.

- Incremental prototyping: The final product is built as separate prototypes. In the end, the separate prototypes are merged in an overall design.

- Extreme prototyping: used in web applications mainly. Basically, it breaks down web development into three phases, each one based on the preceding one. The first phase is a static prototype that consists mainly of HTML pages. In the second phase, the screens are programmed and fully functional using a simulated services layer. In the third phase, the services are implemented
The usage
- This process can be used with any software developing life cycle model. While this shall be chosen when you are developing a system has user interactions. So, if the system does not have user interactions, such as a system does some calculations shall not have prototypes.
Advantages and Disadvantages
Advantages | Disadvantages |
|
|
Spiral Model (SDM)
Description
It is combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. This model of development combines the features of the prototyping model and the waterfall model. The spiral model is favored for large, expensive, and complicated projects. This model uses many of the same phases as the waterfall model, in essentially the same order, separated by planning, risk assessment, and the building of prototypes and simulations.

The usage
It is used in the large applications and systems which built-in small phases or segments.
Advantages and Disadvantages
Advantages | Disadvantages |
|
|
Iterative and Incremental Model
Description
It is developed to overcome the weaknesses of the waterfall model. It starts with an initial planning and ends with deployment with the cyclic interactions in between. The basic idea behind this method is to develop a system through repeated cycles (iterative) and in smaller portions at a time (incremental), allowing software developers to take advantage of what was learned during the development of earlier parts or versions of the system. It can consist of mini waterfalls or mini V-Shaped model

The usage
It is used in shrink-wrap application and large system which built-in small phases or segments. Also, can be used in a system has separated components, for example, ERP system. Which we can start with the budget module as a first iteration and then we can start with the inventory module and so forth.

Advantages and Disadvantages
Advantages | Disadvantages |
|
|
Agile Model
Description
It is based on iterative and incremental development, where requirements and solutions evolve through collaboration between cross-functional teams.

Scrum Agile Model
The usage
It can be used with any type of the project, but it needs more engagement from the customer and to be interactive. Also, we can use it when the customer needs to have some functional requirement ready in less than three weeks and the requirements are not clear enough. This will enable more valuable and workable piece for software early which also increase the customer satisfaction.
Advantages and Disadvantages
Advantages | Disadvantages |
|
|
Here is a consolidated presentation to illustrate most of the popular software development models.

Help to do more!
The content you read is available for free. If you’ve liked any of the articles at this site, please take a second to help us write more and more articles based on real experiences and maintain them for you and others. Your support will make it possible for us.
$10.00
Also published on Medium.

A very well written article and a great source of information about Software Development Life Cycle.
very interesting , good job and thanks for sharing such a good information.
Good to see such a nice post
Great information shared. Thanks
Hey, nice blog. I wonder if someone can help me to choose the best SDLC model in these cases:
1. A system to control anti-lock barking in a car
2. A virtual reality system to support software maintenance
3. A mobile app monitor to blood pressure & heartbeat of a comma patient
exam?
Hi. My project is about developing car sticker management system (web application) for university for security purpose. I carried out this project by my own without a team. After user register the vehicle, administrator need to check the information then give approval or disapproval to that particular user and update the status of user’s application. Time given for development just 3 to 4 months. Could you please suggest me which SE model is suitable for my project?
Agile methodology will be great for this
MA SHA ALLAH .good effort
Thank you ☺️
Thanks for sharing the post. It was really helpful.
there is an error in css when i hover your picture/profile then it doesn’t gives the best output. kindly fix that.
Thank you pointing that out, please try now
how can I choose the model for Ranking system?
Can you elaborate more Jalla?
What is Usability Engineering?
Hi Rey, I would ask you to read this article and it will help you https://melsatar.blog/2019/08/15/user-centric-design-principles/
Hi,
I have gone through your complete article. It’s very informative and nice writing.
Which model will be suitable for a business process management system?
It’s not a team work and it’s my final year project.
Please answer! Thank you!
Tell me your thoughts, what is the closest one you find it suitable for your needs
A Susu Collecting Agency has been using manual records since its inception. It just started using Ms-Excel some few months ago but the regulating board has directed the agency to migrate to full automated system. You have been contacted to analyze and design the automated system. Using the software and design tools that we have discussed, you are to prepare the various artifacts and documentations which a programmer to implement.
please help me out Mohamed.
Hi Pokah, please write your thoughts and I will help you validate it. It is important that you think about it first.
Tell me your thoughts, what is the closest one you find it suitable for your needs
I am creating an application which is useful for two way communication between normal person and a deaf or dumb person, like a normal person will record the signs of disable person through camera and application will convert it into audio or text form, and a disable person will record voice of a normal person and app will convert it into signs, in video or images form.
so can you please suggest me which SE model is suitable for my project.
Hi there, I believe agile model will be very suitable
Something is related to software you may be like it because here are some different tips of software development in digital world.
Thank you for providing such nice piece of article. I’m glad to leave a comment. Expect more articles in the future
The best and clear, thanks
Thank you Shah
what is the difference between the paradigms and models
i need a book where i can cover all the topics
thanks
You can read this book, it is a great reference for software engineering practices https://www.amazon.com/Software-Engineering-Sommerville-Ian-2015-08-20/dp/B01N5JMQ7L/ref=asap_bc?ie=UTF8
can you explain the difference between models and methodologies?
Hi Horiya, methodology can be considered as the approach to achieve specific objectives or goals, for example, the steps, tools, techniques, process and life cycle itself.
The model is a theoretical and simplified abstraction of things, for example, car model, data model, application model. So, you can see the development process overall as a model with different types. each one has a methodology of specific steps, practices, tools, to achieve this model goal.
I hope this clarifies a little bit the difference.
Thank you for this clarification.
So, you are saying that the overall structure of the development process can be taken as a model and each model of SDLC has its own specifications like steps and techniques and these specifications are called methodologies? and I have another question…
Are waterfall, agile, lean, and iterative models, methodologies or are they both?
Hi again, they are mixed because the model has a common known steps but the development methodology can use waterfall as a model but the steps in use at the project context may be different some how, not exactly typically a waterfall. Please contact me by email if you need any further clarification.
whats the difference between a methodology and a model? Agile is a methodology or a model?
Hi Kelvin, sorry for late reply. I’m busy these days. Methodology can be considered as the approach to achieve specific objectives or goals, for example, the steps, tools, techniques, process and life cycle itself.
The model is a theoretical and simplified abstraction of things, for example, car model, data model, application model. So, you can see the development process overall as a model with different types. each one has a methodology of specific steps, practices, tools, to achieve this model goal.
I hope this clarifies a little bit the difference.
It is a nice blog. Thanks to give such a valuable knowledge.
Thank you
thank you