Software Development Life Cycle (SDLC) methods and their advantages and disadvantages

Lahiru Sandeepa
5 min readNov 20, 2020

--

Software development life cycle (SDLC) is a series of phases that provide a common understanding of the software building process. How the software will be realized and developed from the business understanding and requirements elicitation phase to convert these business ideas and requirements into functions and features until its usage and operation to achieve the business needs. The good software engineer should have enough knowledge on how to choose the SDLC model based on the project context and the business requirements.

There are 7 stages of Software Development Life Cycle.

  1. Planning and Requirement Analysis
  2. Defining Requirements
  3. Designing the Product Architecture
  4. Building or Developing the Product
  5. Testing the Product
  6. Deployment in the Market
  7. Maintenance

You can think of SDLC models as tools that you can use to better deliver your software project. Therefore, knowing and understanding each model and when to use it, the advantages and disadvantages of each one are important to know which one is suitable for the project context.

Types of Software developing life cycles (SDLC)

  • Waterfall Model
  • V-Shaped Model
  • Evolutionary Prototyping Model
  • Spiral Method (SDM)
  • Iterative and Incremental Method
  • Agile development

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 and most widely known that was used for software development.

Advantages of waterfall SDLC

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.

Disadvantages of waterfall SDLC

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.

Use cases for the Waterfall SDLC model

The requirements are precisely documented.

Product definition is stable.

The technologies stack is predefined which makes it not dynamic.

No ambiguous requirements.

The project is short.

V-Shaped Model

It is an extension of the waterfall model, Instead of moving down in a linear way, the process steps are bent upwards after the implementation and coding phase, to form the typical V shape. The major difference between the V-shaped model and waterfall model is the early test planning in the V-shaped model.

Advantages

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 the early stages of product development.

Disadvantages

Very inflexible, like the waterfall model.

Adjusting scope is difficult and expensive.

The 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 a detailed plan

Use Cases

For the projects where an accurate product testing is required.

For the small and mid sized projects, where requirements are strictly predefined.

The engineers of the required qualification, especially testers, are within easy reach.

Spiral Model (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.

Advantages

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.

Disadvantages

High cost and time to reach the final product.

Needs special skills to evaluate the risks and assumptions.

Highly customized limiting re-usability

Use Cases

Customer isn’t sure about the requirements.

Major edits are expected during the development cycle.

The projects with mid or high level risk, where it is important to prevent there risks.

The new product that should be released in a few stages to have enough of clients feedback.

Agile Model

In the agile methodology after every development iteration, the customer is able to see the result and understand if he is satisfied with it or he is not. This is one of the advantages of the agile software development life cycle model. One of its disadvantages is that with the absence of defined requirements it is difficult to estimate the resources and development cost. Extreme programming is one of the practical use of the agile model. The basis of such model consists of short weekly meetings Sprints which are the part of the Scrum approach.

Advantages

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.

Disadvantages

Scalability.

The ability and collaboration of the customer to express user needs.

Documentation is done at later stages.

Reduce the usability of components.

Needs special skills for the team.

Use cases for the Agile Model

The users’ needs change dynamically.

Less price for the changes implemented because of the many iterations.

Unlike the Waterfall model, it requires only initial planning to stats the project.

--

--