SENG 203 Part2
SENG 203 Part2
By
Dr. J.V. Joshua
Introduction
• Software development efforts result in the delivery of a software
product that satisfies user requirements. Accordingly, the software
product must change or evolve.
• Once in operation, defects are uncovered, operating environments
change, and new user requirements surface.
• The maintenance phase of the life cycle begins following a warranty
period or post-implementation support delivery
Introduction cont.
• Software maintenance is an integral part of a software life cycle.
However, it has not received the same degree of attention that the
other phases have.
• Historically, software development has had a much higher profile
than software maintenance in most organisations. This is now
changing, as organisations strive to squeeze the most out of their
software development investment by keeping software operating as
long as possible.
• The open source paradigm has brought further attention to the issue
of maintaining software artifacts developed by others
Introduction cont.
• Software maintenance is defined as the totality of activities required
to provide cost-effective support to software system.
• The objective of software maintenance is to modify existing software
while preserving its integrity.
• Software maintenance sustains the software product throughout its
life cycle (from development to operations).
Maintenance Models
• Three process reuse oriented models have been proposed:
1. Quick fix model
2. Iterative enhancement model
3. Full reuse model
Maintenance Models
1. Quick fix model: In this model, necessary changes are
quickly made to the code and then to the accompanying
documentation.
Quick fix model steps:
i. source code is modified to fix the problem;
ii. necessary changes are made to the relevant documents; and
iii. the new code is recompiled to produce a new version
Maintenance Models cont.
2. Iterative enhancement model: In this model, first changes
are made to the highest level documents. Eventually, changes
are propagated down to the code level.
The model works as follows:
• It begins with the existing system’s artifacts, namely, requirements, design, code,
test, and analysis documents.
• It revises the highest-level documents affected by the changes and propagates
the changes down through the lower-level documents.
• The model allows maintainers to redesign the system, based on the analysis of
the existing system
Maintenance Models cont.
3. Full reuse model: In this model, a new system is built from
components of the old system and others available in the repository.
• In the full reuse model, reuse is explicit and the following activities
are performed:
• identify the components of the old system that are candidates for reuse
• understand the identified system components.
• modify the old system components to support the new requirements.
• integrate the modified components to form the newly developed system
Change Mini-Cycle Model
Software change is a process that may
introduce new requirements to the
existing system, or may need to alter
the software system if requirements
are not correctly implemented. In
order to capture this, an evolutionary
model known as change mini-cycle.
Change requests:
• defect report and
• enhancement request
In summary
• Corrective: maintaining control over day-to-day
functions
• Adaptive: maintaining control over system
modifications
• Perfective: perfecting existing functions
• Preventive: preventing system performance from
degrading to unacceptable levels
Software Maintenance Exercises
• The gas station owner has stipulated that the GSCS should be
able to handle additional gas pumps, if the station decides to
invest in them in the future. However, the development team
realizes that the way in which it handles concurrency will not
scale up if more gas pumps are added at the gas station. This
situation should:
a. lead to a corrective change. b. lead to an adaptive change. c. lead
to a perfective change.
d. lead to a preventive change. e. require no maintenance to be
performed
Software Maintenance Exercises