You are on page 1of 3

Software Life Cycle Model

A software before comes to market undergoes several number of stages. These


series of stages that a s/w product undergoes during its lifetime is called software
life cycle.

There are different models for descriptive and diagrammatic representation of


software cycle. A life cycle model forms a common understanding among the s/w
engineers. It helps to develop s/w in a systematic and disciplined way.

Proper documentation of the life cycle model is a mandatory requirement for


quality assurance. By documentation inconsistencies, redundancies and
omission in the development process can be identified easily. It also enhances
the understanding of process among the developers.

Waterfall Model:
This model divides the life cycle into number of phases. The different phases
are as follows:
1) Feasibility study
2) Requirement analysis and specification
3) Design
4) Coding and unit testing
5) Integration and system testing
6) Maintenance

Among all the phases, the maintenance phase requires the maximum effort.
Each phase has well-defined starting and ending criteria which is documented.
And it requires different amounts of effort for each phase.

1) Feasibility study:
The main aim of feasibility study is to determine financial and
technical feasibility to develop the product. It involves properly analyzing the
problem. Collecting relevant information related to the product like required input
data, the processing required and the output data required.

Different alternative solution strategies are compared for project development. In


this stage the project can be abandoned if it is not feasible because of high cost,
resource constraints or technical problems.

2) Requirement analysis and specification:


The goal of this stage is to
understand the exact requirements of the customers. For this interviews and
discussions are conducted with the customers. Any ambiguity or contradiction in
the requirements must be resolved before proceeding further.
Finally, all the user requirements are systematically organized into a Software
Requirements Specifications (SRS) document. This document is reviewed and
approved by the customer. It also serves as a contract between the developers
and the customer

3) Design:
In this phase the requirements specified in the SRS document are
given a structure that can be implemented in programming language. In other
words the software architecture is developed.

In traditional design approach the different functions to be supported by the


system and the data flow among them are identified. All these information are
represented diagrammatically in Data flow diagrams (DFD). Then the system is
decomposed into modules. The data structure and algorithms of each module
are also designed in this stage.

4) Coding and Unit Testing:


The goal of this stage is to translate the software
design into source code. Each component of the design is implemented as a
program module. The programming can be done using any language like C, C++,
Java according to the project requirement.

In this stage each module is tested separately to ensure correct working of all
individual modules. Unit testing is done when a module has been coded and
successfully reviewed.

5) Integration and system testing:


In this phase all the modules are integrated in
a planned manner. The partially integrated system is tested and a set of
previously planned modules are attached to it. At last system testing is carried
out when all the modules have been successfully integrated.

System testing ensures that the system conforms to all the user requirements
specified in SRS document. Generally it consists of 3 kinds of activities.
α – testing is performed by the software development team. β - testing is
performed by a friendly set of customers and acceptance testing is performed by
the customer after product delivery.

6) Maintenance:
A software product needs to be maintained to correct errors,
enhance features or upgrade to a new platform. It requires much more effort than
the effort necessary to develop the product.
Feasibility
study

Requirement analysis
and specification

Design

Coding & unit


testing

Integration and
system testing

Maintenance

Visit me at http://www.ustad18.blogspot.com/

You might also like