Software Development Life Cycle

3
There are following six phases in every Software development life cycle model: 1. Requirement gathering and analysis 2. Design 3. Implementation or coding 4. Testing 5. Deployment 6. Maintenance 1) Requirement gathering and analysis: Business requirements are gathered in this phase. This phase is the main focus of the project managers and stake holders. Meetings with managers, stake holders and users are held in order to determine the requirements 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? These are general questions that get answered during a requirements gathering phase. After requirement gathering these requirements are 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. 2) Design: In this phase the system and software design is prepared from the requirement specifications which were studied in the first phase. 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. 3) Implementation / 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. This is the longest phase of the software development life cycle. 4) 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. During

description

Software Development Life Cycle

Transcript of Software Development Life Cycle

Page 1: Software Development Life Cycle

There are following six phases in every Software development life cycle model:

1. Requirement gathering and analysis

2. Design

3. Implementation or coding

4. Testing

5. Deployment

6. Maintenance

1) Requirement gathering and analysis:  Business requirements are gathered in this    

phase. This phase is the main focus of the project managers and stake holders. Meetings

with managers, stake holders and users are held in order to determine the requirements

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?  These are general

questions that get answered during a requirements gathering phase. After requirement

gathering these requirements are 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.

2)  Design:  In this phase the system and software design is prepared from the requirement

specifications which were studied in the first phase. 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.

3)  Implementation / 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. This is the longest phase of the software development

life cycle.

4)  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. During this phase unit testing, integration testing, system testing,

acceptance testing are done.

5)  Deployment: After successful testing the product is delivered / deployed to the

customer for their use.

Page 2: Software Development Life Cycle

6) 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.

The different models are:

Waterfall model: Developers state the requirements, analyze them, determine a solution

and frame a software architecture, interface representation, and algorithmic details. Then

they develop the code, test the code, deploy the software, and maintain it. While the waterfall

method is easy to understand and sets requirement stability, it might give a false impression

of not providing much customer participation. The main problem with this model is that the

requirement to correct errors should be known upfront and at an early stage. Otherwise, the

whole process may continue in a wrong direction, which could negatively impact the cost of

production.

V Shaped model: Is a variation of the waterfall model. It emphasizes verification and

validation of the product. All deliverables are testable and progress is tracked by milestones.

Testing is implemented in parallel to the development phase.

Prototype model: A prototype is developed in the requirement phase and evaluated by end

users. Based on user feedback, developers alter the prototype to satisfy user requirements.

While this model finalizes the requirements easily, its use in the production environment

might result in quality issues, thereby making the process of correction continue forever.

Spiral model: Makes use of both waterfall and prototype models. It adds 4th generation

programming languages, rapid application development prototyping and risk analysis to the

waterfall model. The system requirements are designed and a preliminary system design is

created. An initial prototype is designed and tested. Based on the evaluation of test results,

a second prototype is created. Subsequent prototypes are constructed to ensure customer

satisfaction. The system is created based on the final prototype. The final system is

evaluated and tested. Though this model reduces risk to a large extent, it may not meet the

budget and is applied differently for each application.

Iterative and incremental SDLC model: Specifies and implements a part of the software,

which is then reviewed and further requirements added and implemented in groups. Every

release delivers an operational product presenting the customers with important

functionalities first, lowering initial delivery costs. The risk of changing requirements is greatly

reduced and customers are allowed to respond to each build. In spite of its strengths, this

model requires good planning and early definition of the complete and fully functional

system. It also requires well-defined module interfaces.

Agile development model: Is used for time-critical applications in organizations employing

disciplined methods. It speeds up the life cycle phases and has reduced scope.

Magic box model: Is a Web application development model. It is the fastest way to finish

the project with the least bugs as it provides the chance to alter the code and database

structures.