Software Development Life Cycle Models and Methodologies


The software industry includes many different processes, for example, analysis, development, maintenance and publication of software. This industry also includes software services, such as training, documentation, and consulting.

Our focus here about software development life cycle (SDLC). So, due to that different types of projects have different requirements. Therefore, it may be required to choose the SDLC phases according to the specific needs of the project. These different requirements and needs give us various software development approaches to choose from during software implementation.

Types of Software developing life cycles (SDLC)

Waterfall Model


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 that was used for software development.

WaterfallThe usage

Projects whichΒ not focus on changing the requirements, for example, projects initiated from request for proposals (RFPs)

Advantages and Disadvantages

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.

V-Shaped Model


It is an extension of waterfall model, Instead of moving down in a linear way, the process steps are bent upwards after the coding phase, to form the typical V shape. The major difference between 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 is well-known

Advantages and Disadvantages

Advantages Disadvantages
  • 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 early stages of product development.
  • Very inflexible, like the waterfall model.
  • Little flexibility and adjusting scope is difficult and expensive.
  • 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 detailed plan

Prototyping Model


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

Throwaway prototyping

  • 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. At the end, the separate prototypes are merged in an overall design.


  • Extreme prototyping: used at 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 focused with systems needs more user interactions. So, the system does not have user interactions, such as, a system does some calculations shall not have prototypes.

Advantages and Disadvantages

Advantages Disadvantages
  • Reduced time and costs, but this can be 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.
  • Expense of implementing prototyping

Spiral Method (SDM)


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 shrink-wrap large applications and systems which built-in small phases or segments.

Advantages and Disadvantages

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

Iterative and Incremental Method


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 consists of mini waterfalls


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 inventory module and so forth.

Advantages and Disadvantages

Advantages Disadvantages
  • Produces business value early in the development life cycle.
  • 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.
  • Problems can be detected 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 iteration can be an issue if this is not considered during the development.

Extreme programming (Agile development)


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


The usage

It can be used with any type of the project, but it needs more involvement from the customer and to be interactive. Also, it can be used when the customer needs to have some functional requirement ready in less than three weeks.

Advantages and Disadvantages

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 of the customer to express user needs.
  • Documentation is done at later stages.
  • Reduce the usability of components.
  • Needs special skills for the team.


(2012, March). Retrieved from Wikipedia:

(2012, March). Retrieved from Software Developing life cycles:

Software Development Life Cycle Models. (2012, 3). Retrieved from


188 thoughts on “Software Development Life Cycle Models and Methodologies

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

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

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

  4. 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 ?

  5. Hi, i want to develop vehicle reservation system for college. What type sdlc is suitable ? Can you suggest for me. Thank you.

    • I think the iterative model will be very effective, while you have to focus which module is the best to start with, for example, student attendance or library or another thing.

    • I think something like video streaming needs heavy testing, and also the requirement may be clear enough. So, I think the spiral model may be good for it or v-shaped model.

      What do you think?

  6. Dear sir, your web site helps me a lot in my studies πŸ™‚
    I have a question which i can find the convincing answer, If u can help and guide please.
    Q: Which IT development method in use today & which one is useful to select & why?

  7. Hello Sir, please help me explaining “Having the most suitable process model alone would not justify success “. do you agree ? justify your answer

  8. is it possible to combine/merge different models like waterfall+prototype ,prototype+iterative and spiral+ prototype and many more to develop different software and many software developers use blend of different models so plz give examples if you have info about blending of these models

    • Yes, it is possible. Moreover, some models are the enhanced version of another, for example, iterative is a waterfall enhanced version, while you can combine the prototype with iteration and you can apply spiral practices in iterative approach.

  9. hello. can i get reference about Evolutionary prototyping model. i can’t get reference in pdf. hope you can share it to me…thank you.

  10. Pingback: Software Engineering | Information Technology basics

    • Sorry for late reply, if you know the requirements well, you can go with iterative model, but after that for rapid demands and changes you will need to have you will go with agile

  11. Pingback: Software Development Life Cycle – Julia's Blog

    • I do not know much about ranch systems, but they look complex and consist of many modules and features, so it can be spiral model or iterative model with prototyping

    • It depends on many things, like requirements understanding and it’s readiness and the duration, customer flexibility. Many things, could you provide more details

  12. As you know there are several Software Development Lifecycle (SDLC) models used for development, testing and deploying software and IT related projects. These models are composed of multiple identifiable steps and phases with unique philosophy to meet the customer expectations. As being student of Software Engineering II course, you are required to provide rational (i.e. reasons and justification) for using traditional Software Development Lifecycle (SDLC) Models including Waterfall, Spiral, Incremental, RAD as well as using advanced models (i.e. Object-Oriented based) including Agile, Scrum, XP, etc.

    • Hi Ijaz,
      Totally agree with your comments, there is another posts discuss how to select the suitable SDLC according to the project environment and concerns as well.

    • Hi Joann,

      I hope you enjoyed the post. Regarding your question, I think it depends on the business value you would like to achieve and type of requirements you have, if it is still an idea and it will evolve, you can simply use Agile, Iteration, or incremental model. And please consider time to market as It will be good to have something good and solid available to start having the game consumers with main and core functionalities and then you can evolve.

      Thank you and would like to hear your feedback

  13. Pingback: Week 2 – dee Cert IV Web Design

  14. hi

    this is really nice content to understand

    but will u give more detailed information with example…

    thank you in advance

  15. Thanks for the great content πŸ™‚
    It is Helping me for my Midterm exams of Software Engineering.
    Also please add some other Models too. Some models are missing here like V-Model and RAD model πŸ™‚
    Thanks once again πŸ˜€


  17. Pingback: Waterfall Model - Software Testing Books

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

  18. 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 πŸ™‚

  19. 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 πŸ™‚

    • 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?

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

  21. 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 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 πŸ™‚

  22. 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?

    • 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 😊

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

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

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

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

  26. 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??

  27. Cool… Is it possible to guide me on this following questions.
    I looking for some set of questions that project manager has to answer during PID document prepartion (project initiation document).. As result of this questions, as PMO we can decide the following
    1. Identify the suitatble SDLC methodology
    2. Idnetify the project risks
    3. List of the mandatory deliverables
    4. etc

  28. Hello, i’m doing my thesis or research paper now in developing a mobile game for ios and android. What type of sdlc method should i use? Thanks

  29. Hi..
    It would be much helpfull if you Mention the differences between different SDLC models on a whole in the form of a table.
    Nevertheless Good Job…Appreciated..

  30. I was recommended this blog by way of my cousin. I’m no longer sure whether this put up is written by means of him as nobody else recognise such particular approximately my problem. You are incredible! Thanks!

  31. Well writing Some excellent points here i want to add one more advantage of Waterfall Model is it is preferred in projects where quality is more important as compared to schedule or cost.

  32. i would like to know how to design an inventory management system for stationary bussiness.
    what requirements are needed , problems are faced in such a business and how it can be solved,

    • Hi Joseph,

      I think the best thing to do, is to search the internet for similar solutions. In addition you can search case studies from companies which provide inventory management system packages.

      If you are willing to implement the solution for your organization, i do not recommend buliding the solution from scratch as there are many out of the shelf products for this type of system

      Thank you

    • I think before you get into work with whatever you want you need to the have the company information or any other helpfull information for your analysis before you skip to design

      • Yes, this is for sure. you need to understand the business of company, this will improve the customer satisfactions and your analysis.

        This can be done through many methods, such as, visiting the company website.

  33. Pingback: Choosing the right Software development life cycle model | Mohamed Sami Abd El-Satar

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s