Soft Maintanance (Unit-5)
Soft Maintanance (Unit-5)
• Corrective:
Corrective maintenance of a software product is
necessary to rectify the bugs observed while the
system is in use.
• Adaptive:
A software product might need maintenance when the
customers need the product to run on new platforms,
on new operating systems, or when they need the
product to interface with new hardware or software.
• Perfective:
A software product needs maintenance to support the
new features that users want it to support, to change
different functionalities of the system according to
customer demands, or to enhance the performance of
the system.
• Preventive maintenance:
There are long term effects of corrective, adaptive and
perfective changes. This leads to increase in the
complexity of the software, which reflect weakening
structure. The work is required to be done to maintain it
or to reduce it, if possible. This work may be named as
preventive maintenance.
Distribution of maintenance effort
Problems During Maintenance
• Often the program is written by another
person or group of persons.
• Often the program is changed by person
who did not understand it clearly.
• Program listings are not structured.
• High staff turnover.
• Information gap.
• Systems are not designed for change.
Potential Solutions to Maintenance
Problems
M = P + Ke(c-d)
Where,
M : Total effort expended
P : Productive effort that involves analysis, design, coding,
testing and evaluation.
K : An empirically determined constant.
c : Complexity measure due to lack of good design and
documentation.
d : Degree to which maintenance team is familiar with the
software.
Note: This model indicates that the effort and cost can increase exponentially if poor
s/w development approach is used.
More Techniques….
Software Reverse engineering
• RE is the process followed in order to find difficult
,unknown and hidden information about a
software system.
• Analysing software with a view to understanding
its design and specification.
• May be part of a re-engineering process but may
also be used to re-specify a system for
re-implementation
• Main purpose of RE is to recover information from
the existing code or any other intermediate
document, any activity that requires program
understanding at any level fall within the scope of
RE.
Continue…..
Software reverse engineering
• Software reverse engineering is the process
of recovering the design and the
requirements specification of a product from
an analysis of its code.
• The purpose of reverse engineering is to help
maintenance work by improving the
understandability of a system and to produce
the necessary documents for a legacy
system.
Scope and Tasks(Reverse Engg)