SDLC methods and their advantages and disadvantages

Bimali Wickramasinghe
6 min readNov 21, 2020

Software Development Life Cycle (SDLC) is a process used to design, develop and test high quality software in software development industry. mainly SDLC consists of 6 phases — Planning, Defining, Designing, Building, Testing and Deployment. There are many SDLC models that is used in the industry to create software. Each model is suitable for different type of software development, not every model is suitable for every type of software development. The following are 5 main software models used in software development.

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

Waterfall Model

This is the widely used SDLC Model. In this model one phase’s outcome acts as an input to the next phase sequentially. There are mainly six phases in waterfall model.

  1. Requirement Analysis — All the requirements need to develop are gathered and documented.
  2. System Design — The requirement specification document is studied and a system design is prepared.
  3. Implementation — By using the system design, small programs called units are developed.
  4. Integration and Testing — The units are tested unit by unit and integrated into a system.
  5. Deployment of system — After functional and non functional testing, the final product is deployed in the customer environment.
  6. Maintenance — A maintenance is done by fixing issues that occur and providing updates.

Advantages

  • Easy to understand and simple to manage
  • Phase by phase is completed
  • Work well for smaller projects
  • Milestones are clear and understandable
  • Arranging tasks are easy
  • Results and process are well documented

Disadvantages

  • The final product is not visible until the end of the life cycle
  • Not good for complex projects
  • High in risk
  • Not suitable for ongoing long projects
  • Not suitable for object oriented projects
  • Measuring the progress within stages is difficult
  • Requirements cannot be change during the life cycle

V Model

In the V-model, the verification and validation phases are done in parallel. This is known as V-model as its processes happen in a sequential manner in a V shape. For every single phase of this development cycle, there is a testing phase associated with it. the next phase of the life cycle only starts is the previous phase is completed. each phase has it’s own specific deliverables and review process. There are several verification phases and validation phases.

Verification Phases

  1. Business requirement analysis — Product requirements are understood.
  2. System design — The complete system is designed.
  3. Architecture Design — Architectural specifications for the system are understood and designed .
  4. Module design — A detailed internal design (Low Level Design-LLD) is created for all the system modules.

Coding Phase

The system is actually coded in this phase according to the design models in previous phases.

Validation Phases

  1. Unit testing — Unit testing is done for both code and module design phase.
  2. Integration testing — This is done with the architectural design to test the coexistence and communication of the internal modules.
  3. System testing — The communication of the system with the external systems and the entire system functionality is checked.
  4. Acceptance testing — Associates with business requirement analysis phase and also testing in the user environment.

Advantages

  • Highly disciplined model
  • Phases are completed one at a time
  • Suitable for smaller projects
  • Easy and simple to use and understand
  • Easy to manage as the model’s rigidity

Disadvantages

  • Risk is high
  • A complete product cannot be seen until the end
  • Not suitable for complex projects and object-oriented projects
  • Not suitable for projects with frequently changing requirements
  • The application with its’ testing stage is difficult to go back and change the functionality

Spiral Model

Spiral model is a combination of iterative development process model and sequential linear development model. A project repeatedly passes through these phases in iterations. This known as Spirals. This model has four phases.

  1. Identification — Business requirements are identified. in the subsequent spiral product matures, unit requirements and subsystem requirements are identified.
  2. Design — This includes architectural designs, logical designs, physical product design and final design of the system.
  3. Construct or Build — Actual software is produced according to the design. in subsequent spirals, a working model of the software called build is produced with a version number.
  4. Evaluation and Risk Analysis — In this phase, risk management, identifying, estimating and monitoring technical feasibility is done.

Advantages

  • Requirement changes can be done
  • Prototypes can be extensively used
  • More accurate in identifying requirements
  • Users can see the system from early stages
  • Development can be done by dividing it into smaller parts and risky parts can be developed earlier

Disadvantages

  • Managing is more difficult as it is complex
  • End product cannot be known early
  • Not suitable for small/ low risk projects
  • Expensive for small projects
  • The process is complex
  • The spiral may not have a defined end
  • Higher the intermediate stages, higher the documentation

Agile Model

This model is a combination of iterative and incremental process models. This method breaks the product to small incremental builds and they are provided in iterations. At the end of the iteration, a working product is build. An iteration involves a cross functional team working simultaneously on various areas like planning, requirement analysis, design, coding, unit testing, acceptance testing.

Advantages

  • A realistic approach in software development
  • A functionality can be developed rapidly and demonstrated
  • Minimal amount of resources are needed
  • Suitable for projects with changing requirements
  • Partial working solutions can be delivered early
  • A little planning is needed
  • Easy to manage
  • Developers get the flexibility
  • Enables concurrent development
  • Documentation can be easily done
  • Teamwork and cross training is promoted

Disadvantages

  • Not a suitable model to handle complex dependencies
  • New team members may face difficulties in understanding the product due to lack of documentation
  • Risk is high is maintainability, extensibility and sustainability
  • Very high individual dependency
  • Depends heavily on customer interactions
  • An overall plan and a leader is a must

Iterative Model

Iterative model starts with simple implementation of a subset of the software requirements. Iteratively it enhances the evolving versions until the full system is implemented. Every iteration adds new functionalities and design modifications to the system.

Advantages

  • Initial operating time is less
  • As the most risky part is done first risk management is easy
  • Some working functionalities can be developed early
  • Parallel development can be done
  • Cost to requirement changes is less
  • In smaller iterations, testing and debugging can be easily done
  • An operational product is produced in every increment
  • Risks are identified and solved in iteration
  • Supports for changing requirements
  • Suitable for large projects and mission-critical projects
  • Progress of the software development can be measured

Disadvantages

  • Need more resources
  • More attention is required in the management side
  • Not suitable for changing requirements
  • Design issues can be occur as all the requirements are not gathered at the beginning
  • Not suitable for smaller projects
  • More management complexity
  • End of the project is not visible
  • For risk analysis, highly skilled resources are needed
  • Progress of the project highly depends on the risk analysis phase

--

--

Bimali Wickramasinghe

Demostrator in Software Engineering, University of Kelaniya Sri Lanka