Week 3 SREE
Week 3 SREE
Software Re-engineering
(SREE)
Course Code: SESE4143
Iqra Tahir
[email protected]
3- Perfective
Change
Perfective change is a modification undertaken to expand
the existing requirements of a system.
and maintainability.
• Examples of perfective
maintenance are:
• the program outputs can be made
more readable for better user
experience;
• the program can be modified to
make it faster, thereby increasing
the processing efficiency;
• and the program can be
restructured to improve its
readability, thereby increasing its
maintainability.
• Activities for perfective
maintenance include restructuring
of the code, creating and updating
documentations, and tuning the
system to improve performance.
• It is also called “reengineering”.
Perfective maintenance
Perfective changes, or "enhancements", are all changes
made to the system to accommodate the needs of the
users.
Simply put, if something was not in the original design or
specification and the user wants it added to the system, it
is classified as a perfective change. All the new user
requirements are of this type.
Example of Perfective
maintenance
A robot cuts metal into even pieces.
Enhancement: A robot will cut metal into uneven pieces.
An automation product controls the production of pancakes.
Enhancement: It will also bake muffins.
A robot cuts metal into even pieces but it takes one hour to do it.
Enhancement: A robot will do it in half an hour.
An automation product will no longer bake pancakes.
Enhancement: Remove this functionality.
4- Preventive
Change
Preventive maintenance performed for the purpose
of preventing problems before they occur [IEEE
Std. 610.12-1994].
Growing complexity.
Deteriorated structure.
Inconsistent documentation.
Preventive change is a modification
There is no such definition [IEEE Std.
undertaken to prevent malfunctions or
1219-1994]
to improve maintainability of the
software.
• Preventive maintenance: The
purpose of preventive maintenance
is to prevent problems from
occurring by modifying software
Intention-based Classification of Software Maintenance
products.
• Basically, one should look ahead,
identify future risks and unknown
problems, and take actions so that
those problems do not occur.
• Preventive maintenance is very
often performed on safety critical
and high available software systems.
• The concept of “software
rejuvenation” is a preventive
maintenance measure to prevent,
or at least postpone, the
occurrences of failures (crash) due
to continuously running the
software system.
• It involves occasionally terminating
an application or a system, cleaning
its internal state, and restarting it.
• Rejuvenation may increase the
downtime of the application;
however, it prevents the occurrence
of more severe failures.
Example of Preventive Action
• Maintenance performed for the purpose of preventing
problems before they occur.
• For safety-critical systems such as the space shuttle or
aircraft systems, it is very important to prevent problems.
• A preventive change in a car would be putting the top up
on a convertible to avoid rain flooding the interior
Example of Preventive
Action
The structure of the system is very complex. It takes a lot of time to
understand the system.
Preventive change: You rewrite the system or part of it so that it is
better structured.
After being executed for a very long time, the system’s behaviour
becomes strange.
Preventive action: Switch off the system and start it again.
• Kitchenham et al. organize
maintenance modification
activities into two categories:
• Corrections
Activity-based Classification of
• Enhancements
Activities in this category are
designed to effect changes to the
system.
It is further divided into three
subcategories as follows:
– enhancement activities that
modify some of the existing
requirements implemented
by the system;
– enhancement activities that
add new system
requirements; and
– enhancement activities that
modify the implementation
without changing the
requirements implemented
by the system.
Figure 2.1 Groups or clusters and their types
Evidence-based Classification of Software Maintenance
The four categories and the concepts that influence the maintenance
process have been illustrated in the following Fig. 2.3.
The key elements of the maintained product are size, age, application type,
composition and quality.
Maintained Product
Maintenance Types
Four types of maintenance activities are defined:
• Event management: The stream of events, namely, all the change requests
from various sources, received by the maintenance organization is handled in an
event management process.
• Level 1: This group files problem reports and identifies the technical support
person who can best assist the person reporting a problem.
• Level 2: This level includes experts who know how to communicate with
users and analyze their problems. These people recommend quick fixes and
temporary workarounds.
• Level 3: This level includes programmers who can perform actual changes to
the product software.
Peopleware
• Size: The size of the customer base and the number of licenses they hold
affect the amount of effort needed to support a system.
• Common goals: The extent to which the users and the customer have
common goals affect the SLAs.
• Explanatory (What/Why):