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.
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.
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 | Disadvantages |
Easy to explain to the users.Structures approach.Stages and activities are well defined.Helps to plan and schedule the project.Verification at each stage ensures early detection of errors/misunderstanding.Each phase has specific deliverables. | Assumes that the requirements of a system can be frozen.Very difficult to go back to any stage after it finished.A little flexibility and adjusting scope is difficult and expensive.Costly and required more time, in addition to the detailed plan. |
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.
Advantages | Disadvantages |
Simple and easy to useEach phase has specific deliverables.Higher chance of success over the waterfall model due to the development of test plans early on during the life cycle.Works well for where requirements are easily understood.Verification and validation of the product in the early stages of product development. | Very inflexible, like the waterfall model.Adjusting scope is difficult and expensive.The software is developed during the implementation phase, so no early prototypes of the software are produced.The model doesn’t provide a clear path for problems found during testing phases.Costly and required more time, in addition to a detailed plan |
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:
Advantages | Disadvantages |
Reduced time and costs, but this can be a disadvantage if the developer loses time in developing the prototypes.Improved and increased user involvement. | Insufficient analysis. User confusion of prototype and finished system.Developer misunderstanding of user objectives.Excessive development time of the prototype.It is costly to implement the prototypes |
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.
It is used in the large applications and systems which built-in small phases or segments.
Advantages | Disadvantages |
Estimates (i.e. budget, schedule, etc.) become more realistic as work progressed because important issues are discovered earlier.Early involvement of developers.Manages risks and develops the system into phases. | High cost and time to reach the final product.Needs special skills to evaluate the risks and assumptions.Highly customized limiting re-usability |
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
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 | Disadvantages |
Produces business value early in the development lifecycle.Better use of scarce resources through proper increment definition.Can accommodate some change requests between increments.More focused on customer value than the linear approaches.We can detect project issues and changes earlier. | Requires heavy documentation.Follows a defined set of processes.Defines increments based on function and feature dependencies.Requires more customer involvement than the linear approaches.Partitioning the functions and features might be problematic.Integration between the iterations can be an issue if it is not considered during the development and project planning. |
It is based on iterative and incremental development, where requirements and solutions evolve through collaboration between cross-functional teams.
Scrum Agile Model
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 | Disadvantages |
Decrease the time required to avail some system features.Face to face communication and continuous inputs from customer representative leaves no space for guesswork.The end result is the high-quality software in the least possible time duration and satisfied customer. | Scalability.The ability and collaboration of the customer to express user needs.Documentation is done at later stages.Reduce the usability of components.Needs special skills for the team. |
Here is a consolidated presentation to illustrate most of the popular software development models.
Quality Work
Unlimited Revisions
Affordable Pricing
24/7 Support
Fast Delivery