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

Jeewantha Lahiru
6 min readNov 19, 2020

--

Software Development Life Cycle (SDLC) is a process used by the software industry to design, develop and test high quality softwares. The SDLC aims to produce a high-quality software that meets of exceeds customer expectations, reaches completion within times and cost estimates.

  • SDLC is the acronym of Software Development Life Cycle.
  • It is also called as Software Development Process.

SDLC is a process followed for a software project, within a software organization. It consists of detailed plan describing how to develop, maintain, replace and alter or enhance specific software. The life cycle defines a methodology for improving the quality of software and the overall development process.

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

There are some methodologies, or models to consider about the Software Development Life Cycle.

Waterfall SDLC Model

Waterfall is a cascade SDLC model, in which development process looks like the flow, moving step by step through the phases of analysis, projecting, realization, testing, implementation, and support. This SDLC model includes gradual execution of every stage completely. This process is strictly documented and predefined with features expected to every phase of this software development life cycle model.

The Waterfall SDLC Model

Advantages of waterfall model

  • Simple to use and understand
  • Management simplicity thanks to its rigidity. Every phase has a defined result and process review.
  • Development stages go one by one.
  • Perfect for the small or mid-sized projects where requirements are clear and not equivocal.
  • Easy to determine the key points in the development cycle.

Disadvantages of waterfall model

  • The software is ready only after the last stage is over.
  • High risks and uncertainty.
  • Not the best choice for complex and object-oriented projects.
  • Inappropriate for the long-term projects.
  • The progress of the stage is hard to measure while it is still in the development.

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.

Iterative SDLC Model

The Iterative SDLC model does not need the full list of requirements before the project starts. The development process may start with the requirements to the functional part, which can be expanded later. The process is repetitive, allowing to make new versions of the product for every cycle. Every iteration (which last from two to six weeks) includes the development of a separate component of the system, and after that, this component is added to the functional developed earlier. Speaking with math terminology, the iterative model is a realization of the sequential approximation method; that means a gradual closeness to the planned final product shape.

Iterative SDLC Model

Advantages of Iterative Model

  • Some functions can be quickly developed at the beginning of the development lifecycle.
  • The paralleled development can be applied.
  • The progress is easy measurable.
  • The shorter iteration is the easier testing and debugging stages are.
  • It is easier to control the risks as high-risk tasks are completed first.
  • Problems and risks defined within one iteration can be prevented in the next sprints.

Disadvantages of Iterative Model

  • Iterative model requires more resources than the waterfall model.
  • Constant management is required.
  • Issues with architecture or design may occur because not all the requirements are foreseen during the short planning stage.
  • Bad choice for the small projects.
  • The process is difficult to manage.
  • The risks may not be completely determined even at the final stage of the project

Use cases for the Iteration model

  • The requirements to the final product are strictly predefined.
  • Applied to the large-scale projects.
  • The main task is predefined, but the details may advance with the time.

Spiral SDLC Model

Spiral model is SDLC model, which combines architecture and prototyping by stages. It is a combination of the Iterative and Waterfall SDLC models with the significant accent on the risk analysis. The main issue of the spiral model is defining the right moment to make a step into the next stage. The preliminary set time frames are recommended as the solution to this issue. The shift to the next stage is done according to the plan, even if the work on the previous stage isn’t done yet. The plan is introduced basing on the statistic data, received during the previous projects even from the personal developer’s experience.

Spiral SDLC Model

Advantages of Spiral Model

  • Lifecycle is divided into small parts, and if the risk concentration is higher, the phase can be finished earlier to address the treats.
  • The development process is precisely documented yet scalable to the changes.
  • The scalability allows to make changes and add new functionality even at the relatively late stages.
  • The earlier working prototype is done sooner users can point out the flaws.

Disadvantages of Spiral Model

  • Can be quite expensive.
  • The risk control demands involvement of the highly-skilled professionals.
  • Can be ineffective for the small projects.
  • Big number of the intermediate stages requires excessive documentation.

Use cases for the Spiral model

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

V-shaped SDLC Model

V-shaped SDLC model is an expansion of classic waterfall model and it’s based on associated test stage for the every development stage. This is a very strict model and the next stage is started only after the previous phase. This is also called “Validation and verification” model. Every stage has the current process control, to make sure that the conversion to the next stage is possible.

V-Shaped SDLC Model

Advantages of V-shaped model

  • Every stage of V-shaped model has strict results so it’s easy to control.
  • Testing and verification take place in the early stages.
  • Good for the small projects, where requirements are static and clear.

Disadvantages of V-shaped model

  • Lack of the flexibility.
  • Bad choice for the small projects.
  • Relatively big risks.

Use cases for the V-shaped model

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

Agile SDLC 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.

Agile SDLC Model

Advantages of Agile model

  • Corrections of functional requirements are implemented into the development process to provide the competitiveness.
  • Project is divided by short and transparent iterations.
  • Risks are minimized thanks to the flexible change process.
  • Fast release of the first product version.

Disadvantages of Agile model

  • Difficulties with measuring the final cost because of permanent changes.
  • The team should be highly professional and client-oriented.
  • New requirements may conflict with the existing architecture.
  • With all the corrections and changes there is possibility that the project will exceed expected time.

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.

--

--

Jeewantha Lahiru

Undergraduate Software Engineer in University of Kelaniya