SE 6

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 11

SE

UNIT 6

Software Maintenance

6.1 Software maintenance management & processes

Software maintenance is a part of the Software Development Life


Cycle. Its primary goal is to modify and update software
application after delivery to correct errors and to improve
performance. Software is a model of the real world. When the real
world changes, the software require alteration wherever possible.

Software Maintenance is an inclusive activity that includes error


corrections, enhancement of capabilities, deletion of obsolete
capabilities, and optimization.

a) Corrective Maintenance

Corrective maintenance aims to correct any remaining errors


regardless of where they may cause specifications, design,
coding, testing, and documentation, etc.

b) Adaptive Maintenance

It contains modifying the software to match changes in the ever-


changing environment.

c) Preventive Maintenance

It is the process by which we prevent our system from being


obsolete. It involves the concept of reengineering & reverse
engineering in which an old system with old technology is re-
engineered using new technology. This maintenance prevents the
system from dying out.

d) Perfective Maintenance

It defines improving processing efficiency or performance or


restricting the software to enhance changeability. This may
contain enhancement of existing system functionality,
improvement in computational efficiency, etc.

6.2 Software Maintenance models

Software maintenance phases

a) Identification Phase:

In this phase, all the requests for modifications in the software are
identified and analysed.

b) Analysis Phase:

The feasibility, cost and estimation of each validated modification


request is performed. The method to integrate changes in
existing system is determined.

c) Design Phase:

The new modifications will be put and designed as per


requirement specification.

Testing and test cases will also be done in order to check the
efficiency of software. Test cases are created for the validation
and verification of the system.

d) Implementation Phase

The new modification are implemented with proper planning and


integrated in new system.
e) System Testing Phase

To ensure no errors are there in the system testing is done with


regression and integration mode.

f) Acceptance Testing Phase:

This testing is done to ensure the modified system has amended


as per given requirement of modification, it is done by end user
or user or third party.

g) Delivery Phase:

This phase the user starts using the system as acceptance


testing has been completed. Users are given manuals and other
stuff to understand the changes and final testing will be done
now by user.

Boehm maintenance process

In 1983, Boehm proposed a model for the maintenance process


which was based upon the economic models and principles.
Economics model is nothing new thing, economic decisions are a
major building block of many processes and Boehm’s thesis was
that economics model and principles could not only improve
productivity in the maintenance but it also helps to understand
the process very well.

Boehm maintenance process model as a closed-loop cycle


is shown below
Boehm had concluded that the maintenance manager’s task is
one of the balancing and the pursuit of the objectives of
maintenance against the constraint imposed by the environment
in which maintenance work is carried out. The maintenance
process should be driven by the maintenance manager’s
decisions, which are typically based on the balancing of
objectives against the constraint. Boehm proposed a formula for
calculating the maintenance cost as it is a part of the COCOMO
Model. All the collected data from the various projects, the
formula was formed in terms of effort.

Taute Software Maintenance Model

B.J. Taute coined a software maintenance model in 1983. It is


very easy to understand and implement. The model
depicts software maintenance process as closed loop
cycle. Mostly used by developers after execution of software for
updating or modification in software.
Taute Model has eight phases in cyclic fashion.

The phases are as following:

Change Request Phase –

In this phase customer request in prescribed format to


maintenance team to apply some change to software.

This change can be :

(i) Corrective software maintenance.

(ii) Adaptive software maintenance.

(iii) Perfective software maintenance.

(iv) Preventive software maintenance.

maintenance team assigns unique identification number to


request and detects category of software maintenance,
Estimate Phase –

The maintenance team dedicates this phase for estimating time


and effort required to apply requested change. And, to minimize
ripple effect caused by change to system, Impact analysis on
existing system is also done.

Schedule Phase –

In this phase, team identifies change requests for next scheduled


release and may also prepare documents that are required for
planning.

Programming Phase –

In this phase, the maintenance team modifies source code of


software to implement requested change by customer and
updates all relevant documents like design document, manuals,
etc. accordingly. The final output of this stage is test version of
source code.

Test Phase –

In this phase, maintenance team ensures that modification


requested in software is correctly implemented. The source code
is then tested with already available test cases. New test cases
may also be designed to further test software. This type of testing
is known as Regression testing.

Documentation Phase –

After the regression testing, team updates system and user


documents before release of software. This helps to maintain co-
relation between source code and documents.

Release Phase –

In this phase, the modified software product along with the


updated documents are delivered to customer. Acceptance
Testing is carried out by users of system.
Operation Phase –

After acceptance testing, software is put under normal operation.


During usage, when another problem is identified or new
functionality requirement is felt or enhancement of existing
capability is desired, customer may again initiate ‘Change
request’ process. And similarly, all phases will be repeated to
implement this new change.

Quick-Fix Model

This is quick and easy but ad hoc approach used for maintenance.
It quickly finds and fix the software without putting consideration
on size of the software.

Iterative Enhancement Model

Iterative Enhancement Model is divided into three stages:


 Analysis of software system.
 Classification of requested modifications.
 Implementation of requested modifications.is divided into three
stages:
Re-use Oriented Model

Existing system or model parts are analysed and understood so


that they can be considered for reuse. Thereafter they go through
modification and enhancement, which is done on the basis of new
requirements. The final step is integration of modified old system
into the new system.
6.3 Regression testing

Regression testing is the process of retesting the modified parts


of the software and ensuring that no new errors have been
introduced into previously test code

“Regression testing tests both the modified code and other parts
of the program that may be affected by the program change It
serves many purposes:
 increase confidence in the correctness of the modified program
 locate errors in the modified program
 preserve the quality and reliability of software
 ensure the software’s continued operation

6.4 Reverse engineering

Reverse engineering is the process followed in order to find


difficult, unknown and hidden information about a software
system

6.5 Software reengineering


Software re-engineering is concerned with taking existing legacy systems
and re-implementing them to make them more maintainable. The critical
distinction between re-engineering and new software development is the
starting point for the development as shown in Fig below

Cost factors:

Quality of the software to be re-engineered.

Tool support availability for engineering.

Extent of the data conversion which is required.

Availability of expert staff for Re-engineering.

Activities in re-engineering

1. Inventory Analysis:

2. Document reconstructing:

3. Reverse Engineering:

4. Code Reconstructing:

5. Data Restructuring:

6. Forward Engineering:

6.6 Configuration management &documentation

Configuration Management
The process of software development and maintenance is controlled is
called configuration management The configuration management is
different in development and maintenance phases of life cycle due to
different environments

_ Configuration Management Activities

The activities are divided into four broad categories


 The identification of the components and changes
 The control of the way by which the changes are made
 Auditing the changes
 Status accounting recording and documenting all the activities that
have taken place

The following documents are required for these activities


 Project plan
 Software requirements specification document
 Software design description document
 Source code listing
 Test plans / procedures / test cases
 User manuals

You might also like