SDLC Methods and Their Advantages & Disadvantages.
Tags: sdlc, sdlcmethods, softwareenginnering
Published: 2020-11-20 07:37:34

What is SDLC?

  SDLC Stands for Software Development Life Cycle. SDLC is a process used by the software industry to design, develop, and maintain the quality of software. This framework defining tasks containing 6 steps. The SDLC aims to produce high-quality software that reaches customer expectations, with completion within times and lower cost.

The following shows a graphical representation of the stages of SDLC.

![SDLC](https://dev-to-uploads.s3.amazonaws.com/i/o8jblsw4fyp1d65wfml4.jpg)

Let's look at SDLS Methodologies


⚫Waterfall Model

![waterfall model](https://dev-to-uploads.s3.amazonaws.com/i/u1y7n3in07z80xebi3v9.jpg)
  This is a linear sequential flow. Progress is seen as flowing steadily downwards (like a waterfall) through the phases of software implementation. This means any phase in the development process begins only if the previous phase is complete. The waterfall approach is most widely known that was used for software development.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/dvptaswhuhy9hi3gr5td.jpg)



⚫V-Shaped Model

![v-shaoed model](https://dev-to-uploads.s3.amazonaws.com/i/wbefglyfhdbv6bllzapc.png)

  Mainly V-shaped model planning the early test. In this model,  Software requirements clearly defined and known.
Software development technologies and tools are also well-known.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/i7x12u7h1y32b2qfhvwc.jpg)


⚫Prototyping Model

![Prototype model](https://dev-to-uploads.s3.amazonaws.com/i/vyh7vqcs25igb9kj3d8m.jpg)

  This method is to create prototypes of software applications which can occur in software development and It used to visualize some component of the software to limit the gap of misunderstanding the customer requirements. It has some types, such as:
          Throwaway prototyping
          Evolutionary prototyping
          Incremental prototyping
          Extreme prototyping

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/z72rp9ihbyncl5ngtt87.jpg)


⚫Spiral Model

![Spiral model](https://dev-to-uploads.s3.amazonaws.com/i/y1mj7zbhoe29wtihlosw.png)

   The spiral model is used for large, expensive, and complicated projects. This model uses many of the same phases as the waterfall model shown in the figure.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/553mmwvtehjgfej9z2ar.jpg)


⚫Iterative and Incremental Model

![Iterative model](https://dev-to-uploads.s3.amazonaws.com/i/4wevlwcmvfn9atlsm76j.png)

This model starts with initial planning and ends with deployment with the cyclic interactions in between. Basically, this method is to develop a system through repeated cycles (iterative) and in smaller portions at a time (incremental), From that software developers can take advantage of what was learned during the development earlier.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/l2niklrryw2cmnco8oqw.jpg)


⚫Agile Model

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/nvjha2o7de4cq5w89hz0.png)

This is based on iterative and incremental development. It can be used with any type of project. Also, we can use it when the customer needs to have some functional requirements and the requirements are not clear enough.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/iiko3lyjsa0l3tfm8c36.jpg)