Software Development Life Cycle (SDLC)

Coursera $100 off 2024

What is the Software Development Life Cycle (SDLC)?

A software development life cycle (SDLC) is a series of identifiable stages that a software product undergoes during its lifetime.

A software development life cycle model (also called process model) is a descriptive and diagrammatic representation of the software life cycle. A life cycle model represents all the activities required to make a software product transit through its life cycle phases. It also captures the order in which these activities are to be undertaken.

In other words, a software development life cycle model maps the different activities performed on a software product from its inception to retirement. Different life cycle models may map the basic development activities to phases in different ways. Thus, no matter which life cycle model is followed, the basic activities are included in all life cycle models though the activities may be carried out in different orders in different life cycle models.

SDLC Phases

Below is a graphic representation which displays a typical Software Development Life Cycle

SDLC Phases
SDLC Phases

Phase 1: Plan

Planning usually happens after there is an innovation or initiation that come up from a group of business end users or sponsor whom identity a need or an opportunity. Within the planning stage, scope or boundary of the concept are defined. Product feasibility study in financial, operational and technical areas will be conducted by the senior members of the team with the input from business users. Quality assurance and risk management plan are also prepared at the planning stage to minimize any unpredictable risks.

Phase 2: Design

Product design is stated with a clear definition of requirements. Software requirement specification (SRS) document which consists of all the details of the product requirements should be approved by the clients or the customers before product design.

Phase 3: Develop

After the best or the most appropriate design has been selected, implementation starts immeditately. Programmers should develop the software according to the DDS and the same time follow the coding standards defined by the company’ closely.

Phase 4: Testing

Software testing should be conducted at all stages as a substage. Nonetheless, two major ones should be done by programmers, end-users and quality assurance experts. The reason is that programmers know the best how the program works and identify the most vulnerable areas of the software. End- user pays attention to the routines task which can help to ensure the software can fulfil the requirements.

Phase 5: Deploy

The first thing to do at the deployment stage is to verify all the test cases were run to ensure successful software execution, comprehensiveness and correctness.
The final decision should be made if the software should be deployed to the production environment and therefore approval should be taken from management in this stage.

Deployment plan (DP) should be well defined and approve to carry out any changes that are going to make. Guideline documentation should also be prepared such as installation guide administration guide and user guide supporting member should be ready to answer all sort of questions regarding the software.

Finally, a contingency plan (CP) should be created according to the finalized software.

Why is the Software Development Life Cycle SDLC important?

There is always a huge temptation to implementation of software without planning or designing specially for the small or medium-sized project. Programmers tend to argue that the time that spends on planning is already good enough for them to do the programming work and deliver the product. Management also tends to focus on efficiency and make use of the least amount of resource to get the same result however there is a certain reason to explain why we need software development life cycle

The development team must identify a suitable software development life cycle model for the particular project and then adhere to it. When a software product is being developed by a team, there must be a clear understanding among team members about when and what to do.

Let us consider an example to understand the importance of software development life cycle model: Suppose a software development problem is divided into several parts and the parts are assigned to the team members. From then on, suppose the team members are allowed the freedom to develop the parts assigned to them in whatever way they like. It is possible that one member might start writing the code for his part, another might decide to prepare the test documents first, and some other engineer might begin with the design phase of the parts assigned to him. This would be one of the perfect recipes for project failure.

Importance of Software Development Life Cycle

  • Without using a particular life cycle model, the development of a software product would not be in a systematic and disciplined manner.

  • A software development life cycle model defines entry and exit criteria for every phase. A phase can start only if its phase-entry criteria have been satisfied. So without a software life cycle model, the entry and exit criteria for a phase cannot be recognized.

  • Without software development life cycle models, it becomes difficult for software project managers to monitor the progress of the project.

Reason 1: Quality Assurance and Quality Control

  • The definition of quality assurance is a set of activities for ensuring quality in the process of product development.
  • Meanwhile, the definition of quality control is a set of activities for ensuring the quality of the developed product.
  • While QA aims at prevention defect by focusing on the process of product development. QC is of identifying the defects by examining the finished product.

Reason 2: Easier implementation control

Within the five core stages in sdlc, multiple documentation should be prepared to give guidelines and instruction for the programmer and the tester to follow and for the management and approve words to be at least and approve on the activities and action were taken. Business case, software requirement specification, design documentation specification, functional specification, test plan, deploy deployment plan etc are all well defined at each stage.

Reason 3: Fulfill user requirements or even exceeding the expectation

Models of SDLC

There are many software development life cycle (SDLC) models proposed so far. Each of them has some advantages as well as some disadvantages. A few important and commonly used life cycle models are as follows:

  1. Classical Waterfall Model (Read)
  2. Iterative Waterfall Model (Read)
  3. Prototype Model (Read)
  4. Spiral Model (Read)
  5. Evolutionary Model (Read)
Creative Commons License

This work is licensed under a CC BY-SA.

Leave a Reply