Class - Notes - On Software
Class - Notes - On Software
A set of framework activities that need to be carried out for the software to evolve in its life cycle.
An SDLC graphically depicts the different phases through which a software evolves. It is usually
accompanied by a textual description of the different activities that need to be carried out during
each phase. [1]
Feasibility Study:
Feasibility study involves collection of basic information relating to the software such as the
different data items that would be input to the system, the processing required to be carried
out on these data, the output data required to be produced by the system, as well as various
constraints on the development. There are two major concerns:
• Financial feasibility.
• Technical feasibility
Requirements analysis and specification
In this phase there are two major concerns:
• Understanding the requirements of the customers.
• The customers requirements are well documented.
1. Requirement gathering and analysis: The goal is to remove the incompleteness and
inconsistencies from the documentation.
2. Requirements specification: Documentation based on the identified requirements of
the customer is known as software requirement specification (SRS). The SRS
document normally serves as a contract between the development team and the
customer. Any future dispute between the customer and the developers can be settled
by examining the SRS document. The SRS document is therefore an important
document which must be thoroughly understood by the development team, and
reviewed jointly with the customer.
Design
The goal of the design phase is to transform the requirements specified in the SRS document
into a structure that is suitable for implementation in some programming language. There can
be procedural design approach or object oriented design approach.
This phase is sometimes called implementation phase. Software design is translated into
source code and this phase also ensures that each individual function is working correctly.
Each component of the design is implemented as a program module. The end-product of this
phase is a set of program modules that have been individually unit tested. The main objective
of unit testing is to determine the correct working of the individual modules. The specific
activities carried out during unit testing include designing test cases, testing, debugging to fix
problems, and management of test cases.
V-model is a variant of the waterfall model. In this model verification and validation
activities are carried out throughout the development life cycle, and therefore the chances
bugs in the work products considerably reduce. The left half of the model comprises the
development phases and the right half comprises the validation phases. The figure is shown
below:
[1] Fundamentals of Software Engineering, Rajib Mall, PHI Publications.