SOFTWARE DEVELOPMENT LIFE CYCLE(SDLC) MODELS

SOFTWARE DEVELOPMENT LIFE CYCLE(SDLC) MODELS
Spread the love

Software development life cycle models are several approaches or methods for the complete development of software. Based on the purpose of the development of software choosing the correct model plays a very important role.

List of the Software Development Life Cycle Models: 

  1. Waterfall
  2. Agile
  3. V-Model
  4. Spiral Model
  5. RAD Model
  6. Iterative
  7. Big Bang

1. Waterfall Model

The waterfall model is used for small projects. It is a linear sequential model. In this model after completion of one phase, then only the next phase begins. If there are any modifications it cannot be changed as it is less flexible (When waterfalls cannot go back to the origin). When requirements are very clear then it is the best model to implement. If there are any modifications it will increase the cost and must travel all the phases.

SOFTWARE DEVELOPMENT LIFE CYCLE Waterfall Model

Also Read: What Are the Best Tools for Monitoring Cloud Security?

2. Agile

Agile is mostly used in the rapid development of applications. Agile often resembles the Waterfall model where development follows a linear path whereas Agile is an iterative approach. It allows a team to continuously improve the product by taking inputs from the user. Sprints are the terms used for iterations in Agile. It lasts for two to four weeks. Each sprint ends with the product owner verifying it before it is provided to the user. Flexibility and Adaptability, Improved quality, customer satisfaction, Reduced risk, Transparency, and continuous improvement are the benefits of using agile. Timelines, Delays, and Documentation are insufficient and may not be suitable for all projects.

Different methodologies or frameworks used in Agile 

I) Scrum: In Scrum, teams work together to move the product forward. Work needs to be completed within iterations called sprints. The teams involved are the product owner, scrum master, and developers’ team. To make up sprint- sprint planning, daily scrum, sprint review, and sprint retrospective need to be followed. Scrum requires experienced people, and for larger projects, it can be difficult, and daily meetings can sometimes deviate from the original discussion are some of the reasons Scrum will not fit all the projects.

II) Kanban:  Kanban is a tool used to visualize the status of work, optimize workflow, and simplify team communication. Simple boards have columns for waiting, in progress, and completed or to-do, doing and done. Different color cards are used for different types of work items. Cards move from left to right as work progresses. Difficulty in measuring progress, there are no clear roles and directions, and focusing on board can lead to neglect of other works.

III) Extreme Programming: It is suitable for projects with complex requirements, a small and experienced team. The main is to produce high-quality software which can be adaptive to changing requirements. Pair programming, continuous testing, simple design, frequent communication, and code reviewing are best practices for making extreme programming. Not suitable for fixed requirements, flexible timelines, and limited resources.

IV) Feature Driven Development (FDD): It is suitable for long-term, complex projects with simple but covering all the methodologies. The focus is on delivering functional features and the features should be delivered every 2-10 days. In this model, we are developing the overall model of the system. Creating a list of features and prioritizing based on the business values. Each developer is responsible for a feature. Plan, design, develop, and inspect each developed feature. In this model delivering working features, improved communication, flexibility, quality, and reduced risk are the pros and coming to cons not suitable for small projects, individual ownership and regular inspections can be time-consuming.

V) Dynamic Systems Development Method (DSDM):  It is independent of tools and techniques enabling it to be used in any business and technical environment. It is suitable for projects with tight deadlines and fast delivery. prioritize the requirements based on Must Have, Should Have, Could Have, and Won’t Have. Regularly reviewing and improving the process. Setting fixed timelines can be challenging as it is a complex project and effective prioritization.

3. V-model

 A variant of the Waterfall that emphasizes the verification and validation of the product. Testing of the product is planned in parallel with a corresponding phase of development. So, the V-Model contains Verification phases on one side and Validation phases on the other side. The verification and validation phases are joined by the coding phase in a V-shape. Thus, it is called V-Model. This model can be used when requirements are reliable, and requirements are known up-front. It is not easy to handle concurrent events, iterations, or phases and not easy to handle dynamic changes in requirements

4. Spiral Model

The Spiral Model is often used for complex and large software development projects. It is a risk driven software driven software development process. The team adapts elements from the waterfall, incremental, or evolutionary model. It consists of multiple cycles each phase depending on the previous one. The spiral model consists of four phases planning, risk analysis, product development, and next phase planning or Evaluation. I repeatedly pass through all these phases in iterations. It provides a quality, structured approach and allows changes in requirements and priorities, but it is complex to handle and time-consuming.

5. RAD (Rapid Application and Development)

It is used for projects which can be developed in a short period of time and with known requirements. It consists of multiple iterations each cycle depending on the previous one. This model is used when the project can be divided into small modules and these modules are assigned to different teams. The module is combined to form the final product. The phases involved are requirement planning, user design, construction, and cutover. It involves reduced costs, use of power tools for better quality software, and change of requirements can be done. It requires skilled professionals and requires active user involvement.

Also Read: Document Management System (DMS): The Complete Guide

6. Iterative

In the Iterative model, the large application of software development is divided into smaller parts. Each part is called an iteration. every iteration, the development module goes through the phases i.e. requirement, design, implementation, and testing. These phases are repeated in an iterative model in a sequence. Delivers working software in less time, quality is improved by continuous testing debugging, and flexibility. Architecture is costly and time-consuming because of the increase in iterations.

7. Big Bang

It does not follow any process. It requires a little planning. It is suitable for smaller projects and well-defined and unchanged requirements. It focuses on time, effort, and resources. The entire system is built and delivered at once. The model is easy to understand and cost-effective as it requires fewer resources. The model can be high risk as there so planning and analysis and the result may not meet the customer’s criteria.