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:
- Requirements gathering
- Design
- Coding (Development)
- Software Testing
- Deployment
- Maintenance
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
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
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:
- Sequential models
- Iterative & incremental models
There are two popular sequential development models which are:
- Waterfall model
- V – Model
Iterative & incremental models are better than sequential models because:
- Testing happens early in the lifecycle
- Early and frequent feedback is received from the customer regarding quality
Latest Posts
Difference between Responsive Testing and Cross Browser Testing
Difference between Responsive Testing and Cross Browser TestingWhat is meant by cross browser testing? Cross browser...
Introduction to Performance Testing
Introduction to Performance TestingIntroduction to performance testing Did it ever happen to you that you get to...
Cross Browser Testing Explained
Trying to test your website across different browsers can be time-consuming and error-prone. But with the help of these handy tools, testing your website in different browsers will become a lot easier!