SDLC

Software Development Life Cycle Models and Methodologies

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. A 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.

tools
Tools

Types of Software developing life cycles (SDLC)

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.

Waterfall Model
Waterfall Model

The usage

For projects which not focus on changing the requirements, for example, projects initiated from a request for proposals (RFPs), the customer has very clear documented requirements

Advantages and Disadvantages

AdvantagesDisadvantages
  • 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/misunderstandings.
  • 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 is finished.

  • A little flexibility and adjusting the scope are difficult and expensive.
  • Costly and required more time, in addition to the detailed plan.
Advantages/Disadvantages table

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 the waterfall model is the early test planning in the V-shaped model.

V-Shaped
V-Shaped Model

The usage

  • Software requirements clearly defined and known
  • Software development technologies and tools are well-known

Advantages and Disadvantages

AdvantagesDisadvantages
  • Simple and easy to use
  • Each 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 the 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 the testing phases.
  • Costly and required more time, in addition to a detailed plan
Advantages/Disadvantages table

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 components of the software to limit the gap of misunderstanding the customer requirements by the development team. This also will reduce the iterations that may occur in the waterfall approach and are 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
Throwaway prototyping
Throwaway prototyping
  • Evolutionary prototyping: prototypes that evolve into the final system through an iterative incorporation of user feedback.
Evolutionary prototyping
Evolutionary prototyping
  • Incremental prototyping: The final product is built as separate prototypes. In the end, the separate prototypes are merged in an overall design.
Incremental Model
Incremental prototyping
  • 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

AdvantagesDisadvantages
  • 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
Advantages/Disadvantages table

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.

spiral model
Spiral Model

The usage

It is used in large applications and systems which built-in small phases or segments.

Advantages and Disadvantages

AdvantagesDisadvantages
  • 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
Advantages/Disadvantages table

Iterative and Incremental Model

Description

It is developed to overcome the weaknesses of the waterfall model. It starts with 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 models.

incremental-sdlc

The usage

It is used in shrink-wrap applications and large systems which built-in small phases or segments. Also, can be used in a system that has separated components, for example, an 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.

Mini V-Model
Iterative and Incremental Model

Advantages and Disadvantages

AdvantagesDisadvantages
  • 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.
Advantages/Disadvantages table

Agile Model

Description

It is based on iterative and incremental development, where requirements and solutions evolve through collaboration between cross-functional teams.

agile-SDLC
Scrum Agile Model

The usage

It can be used with any type of 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 requirements ready in less than three weeks and the requirements are not clear enough. This will enable more valuable and workable pieces for software early which also increases customer satisfaction.

Advantages and Disadvantages

AdvantagesDisadvantages
  • Decrease the time required to avail some system features.
  • Face-to-face communication and continuous inputs from customer representatives leave no space for guesswork. The end result is high-quality software in the least possible time duration and satisfied customers
  • 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.
Advantages/Disadvantages table

Here is a consolidated presentation to illustrate most of the popular software development models.

[cite]

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.

Summary
Software Development Life Cycle Models and Methodologies
Article Name
Software Development Life Cycle Models and Methodologies
Description
Software development life cycle (SDLC) is a series of phases that provide a common understanding of the software building process.
Author
Publisher Name
Publisher Logo

395 responses to “Software Development Life Cycle Models and Methodologies”

  1. Noon Avatar
    Noon

    a lot thanks to you sir
    which type for an application mobile I should use
    for example for hospitals finder location App and there is no registration in App
    thank u

    1. Mohamed Sami Avatar

      I think with mobile apps Agile model will be the most suitable choice

  2. Obaid Ullah Avatar
    Obaid Ullah

    Hello sir which type of DLC
    model is best for ATM (Automated Teller Machine)

    1. Obaid Ullah Avatar
      Obaid Ullah

      hello sir which type of SDLC model is best for ATM (Automated Teller Machine)

    2. Mohamed Sami Avatar

      I think depends on the features and functions will be implemented, if it is the simplest teller machine, then you can use waterfall or V model.

  3. شبير البلوشي Avatar

    Thank you so much. it’s simple and clear information. in my case i have a big project which has been divided into modules. for this i think the iterative and incremental model will be the best choice. as right now i’m focusing on just one module in the project once it has been implemented and published then i will go to the second. so shall i proceed with iterative and incremental model? or you have any other suggestion in this scenario?

    1. Mohamed Sami Avatar

      Yes, continue with the iterative model, it suits your case

  4. Rawan Avatar
    Rawan

    Hi Mohammed,
    Can you please tell me which SDLC model is the best suited for “smart door lock using RFID card “ project ? And why?

    1. Mohamed Sami Avatar

      Hi Rawan,
      I think V-Model for testing and because you cannot implement that in an iterative way and deliver an uncompleted product.

      1. Rawan Avatar
        Rawan

        What about Incremental Model way ?

        1. Mohamed Sami Avatar

          I think it is better to provide more information to decide, you can contact me directly through contact me form

  5. Balbir kumar Avatar

    Thanks for the information. I really enjoyed reading this.As a professional software developer service, I must say that it really helps people who start their own career as a developer and advise you to read an article on

    1. Mohamed Sami Avatar

      Thank you

      1. Sridhar Avatar
        Sridhar

        Sir could you please let us know which model could you suggest for like Airlines and Army and Navy satellite ..

        1. Mohamed Sami Avatar

          I think something like that may be Spiral and V-Model

  6. Minahil Fatima Avatar
    Minahil Fatima

    Hi Sir,
    Can you please tell me which SDLC model is best suited for Augmented reality based project Such as ‘TRY-ON System’….

    1. Mohamed Sami Avatar

      I think innovative projects will need agile methodology or iterative, what do you think?

      1. Minahil Fatima Avatar
        Minahil Fatima

        I was thinking about Iterative one,but i was not sure….

        1. Mohamed Sami Avatar

          Why? If you have more information we can discuss the alternatives

          1. Minahil Fatima Avatar
            Minahil Fatima

            I don’t have much information…
            After reading the stuff you share i thought about iterative but i was not sure that’s why i put a question up Sir…

            1. Mohamed Sami Avatar

              You can this article as well, It will enhance your understanding for the selection process of SDLC https://melsatar.blog/2012/03/21/choosing-the-right-software-development-life-cycle-model/

              1. Minahil Fatima Avatar
                Minahil Fatima

                Well.. Thanks Sir..

  7. divya Thakur Avatar

    Thanks for sharing such a knowledge about the types of Software developing life cycles that is Waterfall Model, V-Shaped Model, Evolutionary Prototyping Model, Spiral Method (SDM), Iterative and Incremental Method, Agile development that really helpful to understand the life cycle model and methodologies of the software development.

    FineSoft Technologies

    1. Mohamed Sami Avatar

      Thank you Divya for your comment, but it is better without advertisement for your company 🙂

    2. Ahalya Avatar
      Ahalya

      hi,Can you suggest me which is the best model out of all the Software developing life cycles?

      1. Mohamed Sami Avatar

        I think you can read this article, it will answer your question https://melsatar.blog/2017/05/05/the-best-sdlc-model/

      2. Ahalya Avatar
        Ahalya

        Is scrum a software engineering methodology?

  8. […] In this article, we will discuss the advantages and disadvantages of the waterfall, should we avoid it? when to use it? and the waterfall model pitfall, and why I see it as the father of the SDLC models. […]

  9. snaseema Avatar

    Thanks for giving nice information on

    software developement.

    1. Mohamed Sami Avatar

      Thank you

  10. SHAISTA NIAZI Avatar
    SHAISTA NIAZI

    What kind of model is being used today if the proect’s domain is “network specific” ?? and What are the reasons behind..

  11. Abdul Rehman Avatar
    Abdul Rehman

    hi there i am searching for product which are using SDLC models can you guide me or tell me the related document from where do i get that
    1:) Product name
    2:) Model using
    3:) Why they are using that
    4:) Related model that can best suite for them.
    Looking forward for your reply.
    Reply as soon as possible

    1. Mohamed Sami Avatar

      Hi Abdul Rehman, I cannot understand your question however what is the objective of this search?

      1. abdulrehmansite Avatar

        i have to write about 10 product which are using SDLC models.
        following data is required about those products….
        1:) Product name
        2:) Model using
        3:) Why they are using that
        4:) Related model that can best suite for them.

        1. Mohamed Sami Avatar

          I think Software Products in general, do not have only one cycle of development. There are always improvements and other cycles to add extra features. What is inside each cycle can be one of the know SDLCs.

          Actually, I do not have some references to all models, but most of the social products are agile based, for example, Facebook, Instagram, …etc.

      2. mansi Avatar
        mansi

        cn u hlp me pplz in these questions

        Q1. Which SDLC will be most suitable for each of the following scenarios and why?
        1.
        The product is a custom made product for a specific customer, who is always available to give feedback.

        2.
        The same as above, except that we have access to a CASE tool that generates program code automatically.
        3.

        A general purpose product, but with a very strong marketing team who understand and articulate the overall customer requirements very well
        4.

        A product that is made of a number of features that become available sequentially and incrementally.

        1. Mohamed Sami Avatar

          Hi mansi,

          1- agile will be good
          2- agile and prototype will be good
          3- iterative and waterfall will be good
          4- iterative will be good

  12. Siraj Ahmed Avatar
    Siraj Ahmed

    Dear Sir,

    Thank you, your article is informative. To the best of my understanding a SDLC consist of following stages.
    1. Communication
    2. Requirement gathering
    3. Feasibility study
    4.System Analysis
    5. Software design
    6. Coding
    7. Testing
    8. Integration
    9. Implementation
    10. Operations & Maintenance
    11. Disposition.

    For a medium scale project like Inventory Management System, what is the amount of time one should spent for each above mentioned stages. Kindly guide.

    1. Mohamed Sami Avatar

      Hi Siraj,

      Thank you for your comment, this will depend on the requirements and also project scope, for example, your requirements can be to implement a full inventory system, but the project scope and time is limited to specific part of these requirements. Moreover, it will depend on the SDLC model you will choose for the implementation, for example, if you selected the incremental model, some of these phases will be split into small increments.

      Please read this article for more information about SDLC phases https://melsatar.blog/2017/06/13/what-do-you-need-to-know-about-the-eight-software-development-phases/

      Thank you

  13. Meme Avatar
    Meme

    Please suggest a model for LAN‏ ‏network project

  14. Meme Avatar
    Meme

    Please suggest a model for LAN network project

    1. Mohamed Sami Avatar

      I think this is not related to software engineering but I think you will need to setup the network in phases as well besides the central control servers for the network. I think you need some project planning skills mainly not a software development life cycle.

  15. Naveen Avatar

    Dear Melsatar, Having the most suitable process model alone would not justify success.
    Do you agree? Please explain your answer

    1. Mohamed Sami Avatar

      Hi Naveen,
      That’s true. I agree, there are a lot of factors need to be considered to have successful software project, for example, requirement analysis is the most critical phase of the SDLC, the skills of the project team and project manager, the quality of the deliverables, the used technologies, …etc.

      I hope this explained the reasons 🙂

  16. Nguyễn Trọng Toàn Avatar

    Thanks so much !

    1. Mohamed Sami Avatar

      Not at all 🙂

  17. Salahuddin Avatar
    Salahuddin

    AoA sir,
    which model is suitable for the implementation of class management system.?

    1. Mohamed Sami Avatar

      Hi Salah
      According to the information you provided, I think any model can fit.

  18. Karuhanga Moses Avatar
    Karuhanga Moses

    For sure the information i have got good and educative on my side and was that notes i was researching on it, thanks alot

    1. Mohamed Sami Avatar

      Thank you

  19. Hamed Saleh Avatar
    Hamed Saleh

    I would like really appritiate your hardwork, It is helpful, I want to design a Food Management System, Which SDLC is the best for my project. Thanks.

    1. Mohamed Sami Avatar

      Hi Hamed,
      Thank you for your comment, I think you can use the Iterative model for Food Management system, what do you think?

Let me know your thoughts

Mohamed Sami

About the author

Mohamed Sami is a Industry Advisor who has a solid engineering background, he has more than 18 years of professional experience and he was involved in more than 40 government national projects with holding different roles and responsibilities, from national projects execution and management to drafting of the conceptual architecture and solutions design. Furthermore, Mohamed contributed to various digital strategies in the government sector, which improved his business and technical skills over his career development.

Discover more from Mohamed Sami

Subscribe now to keep reading and get access to the full archive.

Continue reading

Discover more from Mohamed Sami

Subscribe now to keep reading and get access to the full archive.

Continue reading