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. sayeed Avatar
    sayeed

    we are interested for develop software in our company
    plesae co ordinate with us
    9811053250

    1. melsatar Avatar

      Can you please illustrate more? you can contact me at my email melsatar@gmail.com

  2. ysteh wurtz Avatar
    ysteh wurtz

    What type of process model is best suitable for an android locating map? Please reply asap. Thanks

  3. nelofer Avatar
    nelofer

    working on anti theft vehicle security system what type of model is suitable for it ?

    1. melsatar Avatar

      Actually, I think it will be according to your customer if the requirements are clear enough and rewritten well it can be iterative model or it can be agile if the requirements are not clear enough. I think what is matter here the testing of the system.

      1. ysteh wurtz Avatar
        ysteh wurtz

        Sir. Im working on android locating map app. What type of model I shall use?

        1. melsatar Avatar

          Who will use your mobile app?

      2. ysteh wurtz Avatar
        ysteh wurtz

        Anyone can use it. Esp tourists which will help them from not getting lost

        1. melsatar Avatar

          In this case, you need to have the full plan of your requirements and prioritize them according to their business value and importance. Then you can do some iterative model to start with the most valuable with good business impact. This case if you are the sources of business requirements.

          If you will deliver the app to a company which will own it you can use the methodology or agile without publishing the app to end users until you have something valuable for them

          1. ysteh wurtz Avatar
            ysteh wurtz

            Thank you 🙂

  4. hafiz Avatar
    hafiz

    can you give me each example real application on sdlc such a waterfall , agile ,spiral and prototype ? thanks

    1. melsatar Avatar

      I do not understand your question Hafiz, Waterfall, Agile, and others are methodologies not applications

  5. Arianna Avatar
    Arianna

    Hi, we are creating an hospital management system and it is needed immediately, what kind of SDLC model should we used on our documentation? and can you explain what will do and what have done in developing system each phases thanks 🙂

    1. melsatar Avatar

      I replied this are you the same person?

  6. KRISTINEJOY SOLLANO Avatar
    KRISTINEJOY SOLLANO

    Hi, we are creating an online hospital management system and it is needed immediately, what kind of SDLC model should we used on our documentation? and can you explain what will do and what have done in developing system each phases thanks 🙂

    1. melsatar Avatar

      With online system and massive programming, you will need to have agile model with small sprints which will focus on most business valuable features, I think in HMS you can focus in inpatient or outpatient, you will need to know which one is more required or may be another module.

      I did not get your second question, can you tell me what you need exactly?

  7. Krish Avatar
    Krish

    Hi
    nice post, this helps me a lot in my Masters. i had a small question what is SDLC 4 step or 12 step model?

    1. melsatar Avatar

      Is this kind of exam question?

      1. Alwina Maham Avatar

        hi…… popular Software Development Lifecycle (SDLC) Models for building systems in a structured approach. plz tell me the names

        1. melsatar Avatar

          I do not understand your comments, these are the popular SDLC

  8. sasee Avatar
    sasee

    I think you miss Dynamic Systems Design Methodology (DSDM) please consider

    1. melsatar Avatar

      I will, thank you for the note

  9. Rhae Janssen Abo Avatar

    Hi, we are creating an online ordering system and it is needed immediately, what kind of SDLC model should we used on our documentation? Thanks. 🙂

    1. melsatar Avatar

      I think agile will be the best, specially if the requirements are not clear

  10. melsatar Avatar

    Hi, there are some posts regarding testing. please look at them and tell me if you need something else.

  11. kishore Avatar
    kishore

    Hello Everyone, I am very new to testing I have some questions can anybody help me I want to be a good test Engineer.
    My doubts are-1)Can we call white box testing as unit testing phase?
    2)What is the difference between glass box testing and white box testing?

    I have more please anyone answer to this questions.
    Thanks
    kishore

  12. nad Avatar
    nad

    actually im in final year in course science computer majoring in computer network security.currently im doing final year project entitle vehicle tracking system over GSM network.is it suitable for me to use arduino as a tool in that system??

    if you don’t mind sir, could you share some opinion regards my project sir?
    im still confusing in choosing either to use android or web-based as a interface?
    thank you sir for your help 🙂

    1. melsatar Avatar

      Please check my github ID melsatar. You will find there some codes will help.

      1. nad Avatar
        nad

        is it my github website?so i need to sign up,is it right?

        sir,may i know what are differences between waterfall model and advanced waterfall???

        1. melsatar Avatar
  13. nad Avatar
    nad

    hi..what should i used the type of sdlc for my final project on vehicle tracking system? also on chat system?what suppose i used?

    1. melsatar Avatar

      There is no right and straight answer for this as I have to know more about the context.

      While, I think if it is just a project as assignment in your college. So you do not have a customer but you have like task script. Waterfall will fit in here. If your teacher wants to have continuous review about your progress make it based on iterations.

      By the way, I have some codes for traffic apps 😊

      1. nad Avatar
        nad

        ok thank you sir..
        if you don’t mind,can you share about the codes you’ve said……. 🙂

        1. melsatar Avatar

          It is built for Android using parse as backend. Will that be useful for you?

  14. JIK Avatar
    JIK

    Hi Mohamed, what model should i use for my Mobile website prototype? it is for my Coursework. please answer me ASAP!

    1. melsatar Avatar

      I think the best model for this will be agile as you will build a quick prototype using any mock-up tools, then get the feedback. and try to focus in important features which will avail more value for your application.

  15. Kay van Bree Avatar

    You say Extreme Programming, but you describe (and use an illustration of) Scrum. Maybe you should look up the definition of Extreme Programming and Scrum, so you can avoid confusion. XP is mostly used in addition to Scrum, and it involves stuff like pair programming, unit testing and test-driven development.

    1. Kay van Bree Avatar

      By the way, I’d also recommend you to read “Extreme Programming and Scrum from the trenches”. It’s a good read about the two subjects.

        1. melsatar Avatar

          Thank you for your comment

    2. melsatar Avatar

      You are right, it is a type of Agile model with extra elements as you described.

  16. Vijayalakshmi Avatar
    Vijayalakshmi

    Thank you..

  17. amit Avatar
    amit

    So right now which SDLC process is used by the companies.There are different approaches so how to know which is best for my projects.

    Thanks in Advance.

    1. melsatar Avatar

      Sorry, for my late reply. This is based on project type.

  18. Richie Avatar
    Richie

    Thank you very much, it was very helpfull

  19. Adna Siyon Avatar
    Adna Siyon

    thankz.. it’s very useful contents.. In waterfall model section u explained as ‘In which progress is seen as flowing steadily downwards (like a waterfall) through the phases of software implementation.’.. then how the test results(failed) were handling??

    1. melsatar Avatar

      Which testing phase you meant? the internal testing in your quality department or user acceptance testing

      1. Adna Siyon Avatar
        Adna Siyon

        Internal testing..

        1. melsatar Avatar

          Back to Development team to be fixed. I’m not sure if I understood your question?

  20. Android for mobile application Avatar

    A motivating discussion is worth comment. There’s no doubt that
    that you should write more on this subject matter, it may not
    be a taboo subject but generally folks don’t discuss such subjects.
    To the next! Best wishes!!

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