0% found this document useful (0 votes)
52 views

Class - Notes - On Software

The document summarizes the Software Development Life Cycle (SDLC) and classical waterfall model. It describes the main phases of the waterfall model as feasibility study, requirements analysis and specification, design, coding and unit testing, integration and system testing, and maintenance. It also briefly discusses iterative waterfall model and V-model, which include feedback loops and validation activities throughout development.

Uploaded by

Sheelaj Babu
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
52 views

Class - Notes - On Software

The document summarizes the Software Development Life Cycle (SDLC) and classical waterfall model. It describes the main phases of the waterfall model as feasibility study, requirements analysis and specification, design, coding and unit testing, integration and system testing, and maintenance. It also briefly discusses iterative waterfall model and V-model, which include feedback loops and validation activities throughout development.

Uploaded by

Sheelaj Babu
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Module I:

Software Development Life Cycle


What is Software Development Life Cycle (SDLC)?

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]

Classical Waterfall Model


• It is simple but idealistic.
• Used when requirements are well understood in the beginning.
The classical waterfall model divides the life cycle into a set of phases as shown below:

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.

The activities involved are as follows:

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.

Coding and unit testing

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.

Integration and system testing


In this phase the different modules are integrated in a planned manner. Integration of various
modules is normally carried out incrementally over a number of steps. During each
integration step, previously planned modules are added to the partially integrated system and
the resultant system is tested. Finally, after all the modules have been successfully integrated
and tested, the full working system is obtained. System testing is carried out on this fully
working system. The customer performs system testing to determine whether t o accept the
delivered software or to reject it.
Maintenance
• Corrective Maintenance: Correcting errors that were not discovered during the
product development phase.
• Perfective maintenance: Enhancing the functionalities of the system based on
customer’s requests.
• Adaptive maintenance: Adaptive maintenance is usually required for porting the
software to work in a new environment.
There are several shortcomings of classical waterfall model.

Iterative Waterfall Model


This model provides feedback paths from every phase to its preceding phases. The feedback
paths allow for correcting errors committed by a programmer during some phase, as and
when these are detected in a later phase.
V-model

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.

You might also like