Software Development Life Cycle (SDLC)

  • SDLC is the acronym of Software Development Life Cycle..
  • SDLC is a framework defining tasks performed at each step in the software development process.
  • ISO/IEC 12207 is an international standard for software life-cycle processes. It aims to be the standard that defines all the tasks required for developing and maintaining software.

What is SDLC?

It consists of a detailed plan describing how to develop, maintain, replace and alter or enhance specific software

Software development life cycle (SDLC) is a series of phases that provide a common understanding of the software building process.

Stages of SDLC

SDLC Models

  • Waterfall Model
  • Iterative Model
  • Spiral Model
  • V-Model
  • Big Bang Model

Other related methodologies are Agile Model, RAD Model, Rapid Application Development and Prototyping Models.

Waterfall Model

Description

The Waterfall Model is a linear sequential flow. The waterfall approach does not define the process to go back to the previous phase to handle changes in requirement.

Waterfall Model
Waterfall Model

Advantages and Disadvantages

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

Advantages/Disadvantages table

V-Shaped Model

Description

The major difference between the V-shaped model and waterfall model is the early test planning in the V-shaped model.

V-Shaped
V-Shaped Model

The usage

  • Software requirements clearly defined and known
  • Software development technologies and tools are well-known

Advantages and Disadvantages

AdvantagesDisadvantages
Simple and easy to useEach 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.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

Advantages/Disadvantages table

Prototyping Model

Throwaway prototyping
Throwaway prototyping
  • Evolutionary prototyping: prototypes that evolve into the final system through an iterative incorporation of user feedback.
Evolutionary prototyping
Evolutionary prototyping
Incremental Model
Incremental prototyping
  • Extreme prototyping: used in web applications mainly. The first phase is a static prototype that consists mainly of HTML pages.

Advantages and Disadvantages

AdvantagesDisadvantages
Reduced time and costs, but this can be a disadvantage if the developer loses time in developing the prototypes.Improved and increased user involvement.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

Advantages/Disadvantages table

Spiral Model (SDM)

Description

This model of development combines the features of the prototyping model and the waterfall model.

spiral model
Spiral Model

Advantages and Disadvantages

AdvantagesDisadvantages
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.High cost and time to reach the final product.Needs special skills to evaluate the risks and assumptions.Highly customized limiting re-usability

Advantages/Disadvantages table

Iterative and Incremental Model

incremental-sdlc
Mini V-Model
Iterative and Incremental Model

Advantages and Disadvantages

AdvantagesDisadvantages
Produces business value early in the development lifecycle.Better use of scarce resources through proper increment definition.Can accommodate some change requests between increments.More focused on customer value than the linear approaches.We can detect project issues and changes earlier.Requires heavy documentation.Follows a defined set of processes.Defines increments based on function and feature dependencies.Requires more customer involvement than the linear approaches.Partitioning the functions and features might be problematic.Integration between the iterations can be an issue if it is not considered during the development and project planning.