Friday, 25 August 2017

Business Analysis-Chapter 9: SDLC (Software Development Life Cycle)

Software Development Life Cycle (SDLC)

Chapter 9: Software Development Life Cycle/System Development Life Cycle (SDLC)

It is a term used in software engineering to describe the process of planning, creating, testing and deploying the software. It is also called as Application development Life cycle. SDLC consists of different phases as described below.

Fig 9.1 SDLC Phases

1. Planning

In the planning phase we decide on the software solution to be developed. Plans will help the team through the execution and closure phases of the project. It also helps in managing time, cost, quality, change, risk and issues.

2. Requirement gathering and analysis

Business requirements are gathered in this phase. Questions like who is going to use the system? How will they use the system? What data should be input into the system? What data should be output by the system? Will be addressed in this phase. Once requirement are gathered it will be analyzed for their validity and the possibility of incorporating the requirements in the system to be development is also studied. Finally, a Requirement Specification document is created which serves the purpose of guideline for the next phase of the model. The testing team follows the Software Testing Life Cycle and starts the Test Planning phase after the requirements analysis is completed.

3. Design

In this phase the system and software design is prepared from the requirement specifications. System Design helps in specifying hardware and system requirements and also helps in defining overall system architecture. The system design specifications serve as input for the next phase of the model. In this phase the testers comes up with the Test strategy, where they mention what to test, how to test.

4. Implementation or coding

On receiving system design documents, the work is divided in modules/units and actual coding is started. Since, in this phase the code is produced so it is the main focus for the developer.

5. Testing

After the code is developed it is tested against the requirements to make sure that the product is actually solving the needs addressed and gathered during the requirements phase.

6. Deployment

After successful testing the product is delivered / deployed to the customer for their use. As soon as the product is given to the customers they will first do the beta testing. If any changes are required or if any bugs are caught, then they will report it to the engineering team. Once those changes are made or the bugs are fixed then the final deployment will happen.

7. Maintenance

Once when the customers starts using the developed system then the actual problems comes up and needs to be solved from time to time. This process where the care is taken for the developed product is known as maintenance. There may some enhancements required to the product based on the business changes. Above seven phases will be followed again in order to produce the enhanced product.

SDLC Models

Following are the main SDLC models

Currently in software industry agile development model is widely in use.

  • Waterfall model
  • V-Shaped Model
  • Spiral Model
  • Iterative and Incremental Model
  • Evolutionary Prototyping
  • Big Bang model
  • Agile Model

Waterfall Model

In Waterfall each phase must be completed before next phase can begin, hence there is no overlapping of the phases. Waterfall model is also called linear sequential model.

Below picture illustrates the waterfall model.

Fig 9.2 Water Fall Model

V shaped Model

In V-Model there is a relationship between each phase of the development life cycle and its associated testing phase. V-model can be considered as extension of waterfall model. Below picture illustrates relationship between each development phase and its associated testing phase.

Fig 9.3 V-Model

Spiral Model

Spiral model follows incremental and iterative approach. The spiral model has four phases. Each iteration is called as spiral; a software project repeatedly passes through these four phases in each spiral. It allows incremental releases and/or refinement of the product.

Following picture illustrates the Spiral model.

Fig 9.4 - Spiral Model

Iterative Model

This model follows Iterative and incremental approach. In iterative model some part of the software functionality is developed initially using SDLC approach. Then the initial version is reviewed and some more additional functionality will be developed using SDLC approach. This process is repeated until complete software is developed. Each iteration involves software development lifecycle. Each iteration produces new version of the software. Last iteration produces complete version of software.

Following picture illustrates Iterative Model.

Fig 9.4 - Spiral Model