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. Angelo Buen Avatar
    Angelo Buen

    pls sir need your answer

  2. Angelo Buen Avatar
    Angelo Buen

    Hello sir , what is the good methodology used for our project, our project was automated ticketing system . we ddnt survey people just making automated ticketing system that the enforcer easy to used.. pls help me tnx

    1. Mohamed Sami Avatar

      Hi Angelo,
      I think the case is not clear but, I think the Iterative model will be suitable for your case.
      Thank you.

  3. Vishwa Avatar
    Vishwa

    Hi Sir, which model best fits the scenario?give me an answer please??

    1. Mohamed Sami Avatar

      Hi Vishwa,
      What is the scenario? please explain 🙂
      Thank you

      1. Vishwa Avatar
        Vishwa

        Evaluate range of different lifecycle models with their suitability and suggest which model best fits the scenario?? this is the question..
        Which software model is best?, why is it better when compared to other model??
        answer me please

        1. Mohamed Sami Avatar

          Hi Vishwa,
          I think you need to read this article it will help you https://melsatar.blog/2017/05/05/the-best-sdlc-model/

          If not, please use contact me page and we can discuss this more.

          Thank you

    2. prasanth Avatar
      prasanth

      Object-oriented development methods generally follow an iterative life-cycle – is this really necessary, or could you have OO without iteration?

      1. Mohamed Sami Avatar

        Yes, there is no necessity on that

  4. Piter Avatar

    it was a interesting read!!! looking forward for more article like this from you!!! all the best!!!

    1. Mohamed Sami Avatar

      Thank you Piter, I hope you like the other posts

  5. 풀팟 Avatar

    Hi there, I found your web site by way of Google at
    the same time as looking for a related topic, your web site came up, it seems good.
    I have bookmarked it in my google bookmarks.
    Hello there, simply changed into aware of your blog via Google, and located that
    it is truly informative. I am gonna watch out for brussels.

    I will appreciate in case you continue this in future. Numerous other folks might
    be benefited from your writing. Cheers!

  6. Susan Diaz Avatar

    Nicely explained. Good job! When it comes to V- model I think the success of it lies in the validation and verification process it follows. This model is right for the projects which are small or medium sized. There are some more SDLC methods which can be part of the list and you can find them here: https://www.weblineindia.com/blog/top-15-software-development-methodologies-with-advantages-and-disadvantages/

    1. Mohamed Sami Avatar

      Thank you for your comment Susan and for the information you shared with the link 🙂

  7. HARIS Avatar
    HARIS

    thank u sir
    for database specialist which model is good to use in the organization ?

    1. Mohamed Sami Avatar

      Hi Haris, Kindly could you illustrate more your question?

    2. Navdeep kumar ranjan Avatar
      Navdeep kumar ranjan

      Hi sir please give answer
      How to make model based on lan man wan

      1. Mohamed Sami Avatar

        Hi Navdeep, can you elaborate?

  8. aishwarya Avatar
    aishwarya

    hey
    iam developing a web based application on online teaching system.
    i wanted to know which will be the best suitable sdlc model for my application and why shall i consider it ?
    thanks

    1. Mohamed Sami Avatar

      Hi Aishwarya,
      I think for we based applications, the most suitable model is Agile or Iterative that’s what I recommend but I think you need to read these two articles and you will get the reason behind that and you may have other factors that will need another model selection

      https://melsatar.blog/2017/05/05/the-best-sdlc-model/

      https://melsatar.blog/2012/03/21/choosing-the-right-software-development-life-cycle-model/

      1. aishwarya Avatar
        aishwarya

        sir thanks for your valuable suggestion. it helped me alot.
        i have a doubt if you could assist me with
        if i consider agile approach it involves customer’s involvement
        whereas my project is online teaching system wherein i will create a web base application without customer’s involvement as it will be delivered to the end users and not targeted users.
        therefore i mean its a generic project
        so what shall i do ?
        thanks in advance

        1. Mohamed Sami Avatar

          Then you are the source of requirements, and you need to add new features and new improvements as well. I think Agile and iteration models are still suitable.

        2. Mohamed Sami Avatar

          Most of startups and big technology companies are using Agile to keep their competitive edge and not lose the market that’s why you need Agile mainly and you can start iterative at the beginning as you will have some defined thoughts and features you would like to implement, what do you think?

  9. […] development process and I wrote about the different types of development models, please review this article for more information, we also discussed how to select the most suitable model based on your project […]

  10. […] I wrote a guide in another article on how to choose the right SDLC for your project, please refer back to this article to have the simple steps and guide for taking the decision of what will be the best model fits your business case. Also, you can refer back to the consolidated reference about SDLC models. […]

  11. […] are the same in their usage. In order to select the right SDLC, you should have the enough experience and be familiar with the SDLCs that will be […]

  12. Didi Avatar
    Didi

    hello, what would be the best sdlc model in this scenario please?

    Andrew Tan, after working for a number of years, has decided to be self-employed by setting up a small trading company which deals with importing rabbit feeds products and in wholesale distribution to a network of retailers. With the capital funds accumulated over the years and the experienced gained, Andrew is planning to start off the business on a small scale with about 30 staff.

    1. melsatar Avatar

      I did not get that actually 🙂 can you illustrate more

      1. Didi Avatar
        Didi

        sorry i meant what type of systems would you recommend to use?

        1. melsatar Avatar

          Do you have any choices 🙂 ?

    2. Anjali Jojan Avatar
      Anjali Jojan

      Hi,If requirements are cleared then he can go with waterfall model.

      1. Mohamed Sami Avatar

        Hi Anjali,
        I think, she asked for some examples of information systems can help to manage that not a development life cycle. Actually, the case was not clear enough for me.

  13. sam Avatar
    sam

    I am designing a doctors appointment application for college and i suggested using the Evolutionary model as you want be able to get feedback from the customer. What do you suggest.
    many thanks..

    1. melsatar Avatar

      Yes, this will be a good 🙂

  14. joe Avatar
    joe

    Is it possible to use the V-model in agile programming development projects?
    If so, explain how.

    1. melsatar Avatar

      Yes, I think. You can apply the v-model in each sprint

  15. ryaski Avatar
    ryaski

    Hi sir,
    Its been great to visit this website as it is much helpful for me and i want 2 know which methodology is same as SDLC. Thank u.

    1. melsatar Avatar

      Can you elaborate more, you mean methodologies in general or what?

  16. nirali Avatar
    nirali

    suppose you are a project manager for a software product in a new and growing market with your competitors who are also developing . The product will be same product . which model to select and why ?

    1. melsatar Avatar

      Agile, to adopt the changes and market demands faster

      1. gerald telan Avatar
        gerald telan

        Sir, good evening! What are the advantages of Agile model? Thanks!

        1. melsatar Avatar
          • 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
  17. nirali Avatar
    nirali

    which software model is suitable for making successful software product ?

    1. melsatar Avatar

      Hi Nirali,
      There is no correct answer for this as this depends on many things and the type of the software you develop 🙂
      Thank you

  18. isaac Avatar
    isaac

    can you give me a idea of a project to work on at diploma level

    1. melsatar Avatar

      Diploma for which field Isaac?

  19. mohi Avatar
    mohi

    can you plz tell which sdlc model will be use for android encryption and decryption of sms

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