SDLC & SDLC Methodologies

Charith Wijebandara
8 min readNov 20, 2020

--

What is SDLC?

SDLC (Software Development Life Cycle) is a process used in software industry to develop high quality softwares. Main Objectiveof SDLC is to produce a high-quality software that meets or exceeds customer expectations, reaches completion within times and cost estimates.

Software Development Life cycles consist of 6 Stages.

Stage 01- Planning and Requirement Analysis

First Stage is conducted by the senior team members with inputs from all the stakeholders and domain experts in the industry. Planning for the quality assurance requirements and recognition of the risks involved is also done at this stage.

Stage 02 - Analyzing and Defining

This process conducted with the help of Software Requirement Specification document. It includes everything which should be designed and developed during the project life cycle.

Stage 03 - Design

In this third phase, the system and software design documents are prepared as per the requirement specification document. This helps define overall system architecture. This design phase serves as input for the next phase.

Stage 04 - Implementation

In this phase, developers start build the entire system by writing code using the chosen programming language. In the coding phase, tasks are divided into units or modules and assigned to the various developers.

Stage 05 - Testing and Integration

In this phase, testing team starts testing the functionality of the entire system. This is done to verify that the entire application works according to the customer requirement.

Stage 06 - Maintenance

Once the software testing phase is over and no bugs or errors left in the system then the final software is released and checked for deployment issues if any. Also in this phase company has to ensure that needs continue to be met and that the system continues to perform as per the specification mentioned in the first phase.

SDLC Methodologies

There are various software development life cycle models defined and designed which are followed during the software development process. These models are referred as Software Development Life Cycle Methodologies. Each process model follows a Series of steps unique to its type to ensure success in the process of software development.

1 . Waterfall Methodology

Waterfall approach was the first SDLC Model to be used widely in Software Engineering to ensure success of the project. In “The Waterfall” approach, the whole process of software development is divided into separate phases. In this Waterfall model, typically, the outcome of one phase acts as the input for the next phase sequentially.

The following illustration is a representation of the different phases of the Waterfall Model.

Advantages of Waterfall Methodology

  • Simple and easy to understand, use & manage due to the rigidity of the model.Each phase has specific deliverables and a review process.
  • Phases are processed and completed one at a time.
  • Works well for smaller projects where requirements are very well understood.
  • Clearly defined stages, Well understood milestones, Easy to arrange tasks & Process and results are well documented.

Disadvantages of Waterfall Methodology

  • No working software is produced until late during the life cycle.
  • High amounts of risk and uncertainty.
  • Not a good model for complex and object-oriented projects as well as long and ongoing projects.
  • Not suitable for the projects where requirements are at a moderate to high risk of changing. So, risk and uncertainty is high with this process model.
  • It is difficult to measure progress within stages.
  • Cannot accommodate changing requirements.
  • Adjusting scope during the life cycle can end a project.
  • Integration is done as a big-bang. at the very end, which doesn’t allow identifying any technological or business bottleneck or challenges early.

2 . Agile Methodology

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.

Advantages of Agile Methodology

  • Is a very realistic approach to software development.
  • Promotes teamwork and cross training.
  • Functionality can be developed rapidly and demonstrated.
  • Resource requirements are minimum.
  • Suitable for fixed or changing requirements
  • Delivers early partial working solutions.
  • Good model for environments that change steadily.
  • Minimal rules, documentation easily employed.
  • Enables concurrent development and delivery within an overall planned context.
  • Little or no planning required.
  • Easy to manage.
  • Gives flexibility to developers.

Disadvantages of Agile Methodology

  • Not suitable for handling complex dependencies.
  • More risk of sustainability, maintainability and extensibility.
  • An overall plan, an agile leader and agile PM practice is a must without which it will not work.
  • Strict delivery management dictates the scope, functionality to be delivered, and adjustments to meet the deadlines.
  • Depends heavily on customer interaction, so if customer is not clear, team can be driven in the wrong direction.
  • There is a very high individual dependency, since there is minimum documentation generated.
  • Transfer of technology to new team members may be quite challenging due to lack of documentation.

3 . Iterative Methodology

The Iterative methodology is a particular implementation of a software development life cycle that focuses on an initial, simplified implementation, which then progressively gains more complexity and a broader feature set until the final system is complete. When discussing the , Iterative methodology the concept of incremental development will also often be used liberally and interchangeably, which describes the incremental alterations made during the design and implementation of each new iteration.

Advantages of Iterative Methodology

  • Some working functionality can be developed quickly and early in the life cycle.
  • Results are obtained early and periodically.
  • Parallel development can be planned.
  • Progress can be measured.
  • Less costly to change the scope/requirements.
  • Testing and debugging during smaller iteration is easy.
  • Risks are identified and resolved during iteration and each iteration is an easily managed milestone.
  • Easier to manage risk as High risk part is done first.
  • Issues, challenges and risks identified from each increment can be utilized/applied to the next increment.
  • It supports changing requirements.
  • Initial Operating time is less.
  • Better suited for large and mission critical projects.

Disadvantages of Iterative Methodology

  • More resources may be required.
  • Although cost of change is lesser, but it is not very suitable for changing requirements.
  • More management attention is required.
  • System architecture or design issues may arise because not all requirements are gathered in the beginning of the entire life cycle.
  • Defining increments may require definition of the complete system.
  • Not suitable for smaller projects.
  • Management complexity is more.
  • End of project may not be known which is a risk.
  • Highly skilled resources are required for risk analysis.
  • Projects progress is highly dependent upon the risk analysis phase.

4 . Spiral Methodology

Spiral Methodology is a combination of a waterfall model and iterative model. Each phase in spiral model begins with a design goal and ends with the client reviewing the progress. The spiral model was first mentioned by Barry Boehm in his 1986 paper.

The development team in Spiral model starts with a small set of requirement and goes through each development phase for those set of requirements. The software engineering team adds functionality for the additional requirement in every-increasing spirals until the application is ready for the production phase.

Advantages of Spiral Methodology

  • Changing requirements can be accommodated.
  • Allows extensive use of prototypes.
  • Requirements can be captured more accurately.
  • Users see the system early.
  • Development can be divided into smaller parts and the risky parts can be developed earlier which helps in better risk management.

Disadvantages of Spiral Methodology

  • Management is more complex.
  • End of the project may not be known early.
  • Not suitable for small or low risk projects and could be expensive for small projects.
  • Process is complex
  • Spiral may go on indefinitely.
  • Large number of intermediate stages requires excessive documentation.

5 . V Model Methodology

The V-model is an SDLC model where execution of processes happens in a sequential manner in a V-shape. It is also known as Verification and Validation model. The V-Model is an extension of the waterfall model and is based on the association of a testing phase for each corresponding development stage. This means that for every single phase in the development cycle, there is a directly associated testing phase.

Advantages of V model Methodology

  • This is a highly-disciplined model and Phases are completed one at a time.
  • Works well for smaller projects where requirements are very well understood.
  • Simple and easy to understand and use.
  • Easy to manage due to the rigidity of the model. Each phase has specific deliverables and a review process.

Disadvantages V model Methodology

  • High risk and uncertainty.
  • Not a good model for complex and object-oriented projects.
  • Poor model for long and ongoing projects.
  • Not suitable for the projects where requirements are at a moderate to high risk of changing.
  • Once an application is in the testing stage, it is difficult to go back and change a functionality.
  • No working software is produced until late during the life cycle.

6 . Big Bang Methodology

The Big Bang model is an SDLC model where we do not follow any specific process. The development just starts with the required money and efforts as the input, and the output is the software developed which may or may not be as per customer requirement. This Big Bang Model does not follow a process/procedure and there is a very little planning required. Even the customer is not sure about what exactly he wants and the requirements are implemented on the fly without much analysis. Usually this model is followed for small projects where the development teams are very small.

Advantages of Big Bang Methodology

  • This is a very simple model
  • Little or no planning required
  • Easy to manage
  • Very few resources required
  • Gives flexibility to developers
  • It is a good learning aid for new comers or students.

Disadvantages of Big Bang Methodology

  • Very High risk and uncertainty.
  • Not a good model for complex and object-oriented projects.
  • Poor model for long and ongoing projects.
  • Can turn out to be very expensive if requirements are misunderstood.

References

--

--

Charith Wijebandara
Charith Wijebandara

Written by Charith Wijebandara

Software Engineering Undergraduate-University of Kelaniya

No responses yet