Types of Software Development Life Cycle (SDLC) Models

Software development lifecycle (SDLC) is a methodical approach to software development. It is a process of developing software or other types of applications. It is a set of standard steps that are required to be followed in order to develop and deliver software or any type of software-based system or application. This blog will look at the different types of software development life cycles and how they are different.

Two Types of SDLC

Sequential Model

A sequential model is a sequential development method in which the software is developed in a series of well-defined phases with each phase being completed before the next phase starts.

Waterfall Model

The oldest and earliest software development lifecycle goes through 6 steps:

  1. Requirements gathering
  2. Design
  3. Coding (Development)
  4. Software Testing
  5. Deployment
  6. Maintenance
Waterfall Model

Those 6 steps combined are called the “waterfall model”, and it is considered as a sequential model because we don’t begin any step in the development process until we finish the step before. The waterfall model is very popular, and many software projects are built using it, but it is not a very good choice if we want to test the software efficiently, why? Because one of the seven testing principles is “Early testing saves time and money”, and in the waterfall model, testing is not early at all.

So for example, if we gathered a wrong requirement, this means that we will create a wrong design and of course a wrong code to implement this requirement. In this case, if we detect the defect in the code while we are performing the testing activity, we will have to repeat the whole process again “correct the requirement, correct the design, then correct the code”. This is why another software development model is invented which is the V-model. In the V-model, for each development activity, there is a corresponding test activity. 

 

V – Model

V Model

The V – Model is also a sequential model because the customer sees the product one time after all development and testing activities are done. In the V – Model, the development activities are “Requirements Gathering – System Analysis – High Level Design – Low Level Design – Coding”, and the test activities are “Unit Testing – Integration Testing – System Testing – Acceptance Testing”, those test activities are called the test levels and we will discuss them in a different blog.

The V – Model applies the testing principles of “Early testing saves time and money” because once the requirements are gathered, we begin planning and designing test cases for acceptance testing. The V – Model is better than the waterfall model like we discussed earlier, but it doesn’t solve all types of problems that occur in software projects like “unsatisfied client”, this is why another category of software development model is introduced which is “Iterative and incremental models”.

 

Iterative & Incremental Models

Iterative and Incremental Model

In iterative & incremental models, the project is divided into small iterations or sprints based on time. So if our project will take 6 months to be delivered to the customer, we can divide it into two-week iterations, and at the end of each iteration, we have a potentially shippable product.

So in iterative & incremental models, each iteration is considered as a separate project which goes through all steps that a sequential project will go through “Requirements Gathering – Design –  Development – Testing – Deployment – Maintenance”, and at the end of each iteration we get feedback from the client about the quality of the software, did we deliver what he asked for? And if he has some complaints or issues, we can solve them easily because we are still developing the software.

In iterative & incremental models, we test early, and we test always. This is why automating part of the test activities becomes an essential part of the test process in order to save time consumed in manual testing.

To Summarize

We have two types of software development lifecycles:

  1. Sequential models
  2. Iterative & incremental models

There are two popular sequential development models which are: 

  1. Waterfall model
  2. V – Model

Iterative & incremental models are better than sequential models because:

  1. Testing happens early in the lifecycle
  2. Early and frequent feedback is received from the customer regarding quality
Latest Posts