SDLC methods and their advantages and disadvantages.

Maleesha Mihiranga
5 min readNov 20, 2020

Introduction

The Software Development Life Cycle (SDLC) refers to a methodology with clearly defined processes for creating high-quality software. in detail, the SDLC methodology focuses on the following phases of software development:

  • Requirement analysis
  • Planning
  • Software design such as architectural design
  • Software development
  • Testing
  • Deployment

This article will explain how SDLC works, dive deeper into each of the phases, and provide with examples to get a better understanding of each phase.

I’m exploring the different types of SDLC models and the advantages and disadvantages of each one and when to use them.

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)
  • Agile development

Waterfall Model

The waterfall model is a classical model used in the system development life cycle to create a system with a linear and sequential approach. It is termed as a waterfall because the model develops systematically from one phase to another in a downward fashion. This model is divided into different phases and the output of one phase is used as the input of the next phase. Every phase has to be completed before the next phase starts and there is no overlapping of the phases.

Advantages and Disadvantages

Advantages

  • 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

  • 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.

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 the waterfall model is the early test planning in the V-shaped model.

Advantages and Disadvantages

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

Evolutionary Prototyping Model

The Prototyping Model is one of the most popularly used Software Development Life Cycle Models (SDLC models). This model is used when the customers do not know the exact project requirements beforehand. In this model, a prototype of the end product is first developed, tested, and refined as per customer feedback repeatedly till a final acceptable prototype is achieved which forms the basis for developing the final product.

Advantages and Disadvantages

Advantages

  • Reduced time and costs, but this can be a disadvantage if the developer loses time in developing the prototypes.
  • Improved and increased user involvement.

Disadvantages

  • Insufficient analysis. User confusion of prototype and finished system.
  • Developer misunderstanding of user objectives.
  • Excessive development time of the prototype.
  • It is costly to implement the prototypes

Spiral Method (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 and Disadvantages

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

Agile development

Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. Agile methods or Agile processes generally promote a disciplined project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organization, and accountability, Agile development refers to any development process that is aligned with the concepts of the Agile Manifesto. The Manifesto was developed by a group of fourteen leading figures in the software industry and reflects their experience of what approaches do and do not work for software development.

Advantages and Disadvantages

Advantages

  • Decrease the time required to avail of some system features.
  • Face to face communication and continuous inputs from customer representative leaves no space for guesswork.
  • The end result is high-quality software in the least possible time duration and satisfied customers.

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.

--

--