Software Development Life Cycle(SDLC)

What is SDLC?

A typical Software Development Life Cycle consists of the following stages :

Stage 1: Planning and Requirement Analysis

Stage 2: Defining Requirements

Stage 3: Designing the Product Architecture

Stage 4: Building or Developing the Product

Stage 5: Testing the Product

Stage 6: Deployment in the Market and Maintenance

Advantages and Issues with the SDLC

Pros of SDLC:

  • Ample documentation
  • Comprehensive steps
  • Ease of maintenance
  • Effective development and design standards
  • Evaluation of cost as well as completion targets
  • Possibility to monitor full-scale projects
  • Powerful control

Cons of SDLC:

  • Difficult to estimate costs and project overruns
  • Inflexible to changes in requirements
  • Increased development cost and development time
  • Limited automation of document and standards
  • Little parallelism
  • The software is required to be thoroughly defined before beginning
  • User input might be limited in some scenarios

SDLC Models

Following are the most important and popular SDLC models followed in the industry :

  • Waterfall Model
  • Iterative Model
  • Spiral Model
  • V-Model
  • Agile Model

Waterfall Model

Advantages of Waterfall Model

  • It is very easy to explain to the business users and explain the output of each phase.
  • Structures approach.
  • Stages and activities are well defined.
  • It is easier for project managers to plan, schedule the project, utilize the resources, and define the milestones easily.
  • Validation and verification at each phase ensure early detection of errors/misunderstanding at the same phase.
  • Each phase has specific deliverables.

Disadvantages of Waterfall Model

  • It takes the full lifecycle to deliver a workable solution to the customer.
  • It is very difficult to go back to any phase after it finished.
  • It assumes that the requirements of a system can be frozen without any changes or enhancements.
  • A little flexibility and adjusting scope is difficult and expensive.
  • It requires more time for the detailed plan upfront of the project, as the requirements are clear and frozen and it should be visible to have the detailed plan delivered to the customer.
  • It delays the testing phase which can discover a lot of issues in requirements, design, and implementation as well.

Iterative SDLC Model

Advantages of Iterative Model

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

Disadvantages of Iterative Model

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

Spiral SDLC Model

Advantages of Spiral model

  • Estimates 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 of Spiral model

  • High cost and time to reach the final product.
  • Needs special skills to evaluate the risks and assumptions.
  • Highly customized limiting re-usability

V-Shaped Model

Advantages of V-Model

  • 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.
  • V-Model Improves the quality and reliability of the software.
  • It reduces the amount of re-work because of the early detection of defects and issues.
  • It provides better management for project risks.

Disadvantages of V-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.
  • Moreover, It is costly and required more time, in addition to a detailed plan

Agile Model

Advantages of Agile Model

  • Provided flexibility to promote the development of software in small, quick steps
  • Release updates to users more frequently based on continuous iterations
  • Highly adaptive to change requirements
  • Identify minor issues before they can turn into bigger ones
  • Products penetrate to market faster
  • Better communication between users and product owners

Disadvantages of Agile Model

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

--

--

Software Engineering undergraduate at University of Kelaniya

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store