0% found this document useful (0 votes)
25 views25 pages

Segment 7

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views25 pages

Segment 7

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 25

System/Software maintenance

 Software maintenance is defined by the IEEE as:


“Modification of a software product after delivery to correct
faults, to improve performance or other attributes, or to adapt
the product to a modified environment.”
 So any work done to change the software after it is in operation
is considered to be maintenance work. The purpose is to
preserve the value of software over the time. The value can be
enhanced by expanding the customer base, meeting additional
requirements, becoming easier to use, more efficient and
employing newer technology.
 Maintenance may span for 20 years, whereas development
may be 1-2 years.
The Process of Maintaining
Information Systems
• Process of returning to the beginning of the SDLC
and repeating development steps focusing on
system change until the change is implemented
• Maintenance is the longest phase in the SDLC
• Four major activities:
– Obtaining maintenance requests
– Transforming requests into changes
– Designing changes
– Implementing changes
Maintenance is like a mini-SDLC
Types of System Maintenance
• Adaptive – modifying the system to cope with changes in
the software environment (DBMS, OS).
• Perfective – implementing new or changed user
requirements which concern functional enhancements to
the software.
• Corrective – diagnosing and fixing errors, possibly ones
found by users.
• Preventive – increasing software maintainability* or
reliability to prevent problems in the future

* maintainability measures the ease and speed with which a system can be restored to
operational status after a failure occurs.
By far, most maintenance is corrective, and therefore
urgent and non-value adding.
Corrective maintenance vs adaptive maintenance
 In computer science, corrective maintenance is accomplished by
removing bugs from software, hardware and the network, while
adaptive maintenance describes the adaptive modification of
existing code/system to new platform/Environment.
 Corrective maintenance is generally categorized into emergency
situations - such as a network outage or virus attack - and
preventive ones - such as repairs and maintenance to prevent the
repetition of these events. Adaptive maintenance is used as a
proactive and reactive response to changing business trends and
needs.
 In short, corrective maintenance is a fixing what's wrong, while
adaptive maintenance is used to upgrade the system to better
confront the challenges that lie ahead.

16-8 © 2005 by Prentice Hall


The Cost of Maintenance
• Software maintenance cost is derived from the changes made
to software after it has been delivered to the end user.
• Software maintenance costs include:
 Corrective maintenance – generally 20% of software
maintenance costs
 Adaptive maintenance – 25% of software maintenance costs
 Preventive maintenance – generally 5% of software
maintenance costs
 Perfective maintenance – generally 50% or more of software
maintenance costs

16-9 © 2005 by Prentice Hall


Factors that influence system maintainability

Software maintainability is defined as the degree to which


an application is understood, repaired, or enhanced.
Factors that influence system maintainability are:
1. Latent defects -- The number of unknown errors existing
in the system after installation.
2. Number of customers for a given system - Higher cost
for higher number of customers/users.
3. Quality of system documentation - quality of technical
system documentation including test cases.
4. Maintenance personnel - Number and quality of
personnel dedicated to the support and maintenance of the
system

16-10 © 2005 by Prentice Hall


Factors that influence system maintainability
(Contd)
5.Tools - Software development tools, debuggers, hardware and
other resources. Tools such as those that can automatically
produce system documentation where none exists can also
lower maintenance costs.
6.Sotware structure - Well-structured programs make it much
easier to understand and fix programs.

16-11 © 2005 by Prentice Hall


A well-documented system is easier to understand, and
therefore easier to maintain.
Conducting System Maintenance
• Number of people working in maintenance has surpassed
number working in development.
• Three possible organizational structures:
– Separate
• Maintenance group consists of different personnel
than development group.
– Combined
• Developers also maintain systems.
– Functional
• Maintenance personnel work within the functional
business unit.
Advantages and Disadvantages
Maintenance
Organization Type Advantages Disadvantages

Separate Improved system Ignorance of critical


and documentation undocumented
quality information
Combined Maintenance group Less emphasis on
knows all about good documentation
system
Functional Personnel have Limited job mobility
vested interest and human or
technical resources
Conducting System Maintenance
Measures of Effectiveness
• Important factors to consider
– Number of failures
– Time between each failure
– Type of failure
• Mean time between failures (MTBF)
– Mean time between failures (MTBF) is the predicted elapsed
time between inherent failures of a mechanical system, during
normal system operation.
– MTBF can be calculated as the arithmetic mean (average) time
between failures of a system.
– A measurement of error occurrences that can be tracked over
time to indicate the quality of a system
Controlling Maintenance Requests
• Based on the type of request, some method of prioritizing
requests must be determined.
• Possible types of request:
 Error ( i.e a corrective maintenance request)
 Adaptation ( i.e request is to adapt the system to technology or
business change)
 Enhancement (i.e request is to enhance the system so that it will
provide new business functionality) Prioritizing scheme:
The below figure shows a flowchart for controlling maintenance
requests

16-16 © 2005 by Prentice Hall


Controlling Maintenance Requests

Maintenance requests
can be frequent

Prioritize based on type


and urgency of request
The Flow of a Maintenance Request

Evaluations are based on


feasibility analysis
Configuration Management

• In software engineering, software configuration management


(SCM or S/W CM) is the task of tracking and controlling
changes in the software, part of the larger cross-disciplinary
field of configuration management.
• SCM practices include revision control and the establishment
of baselines. If something goes wrong, SCM can determine
what was changed and who changed it. If a configuration is
working well, SCM can determine how to replicate it across
many hosts.
• The process of assuring that only authorized changes are
made to the system.

16-19 © 2005 by Prentice Hall


Configuration Management
• Baseline modules
– Software modules that have been tested, documented,
and approved to be included in the most recently created
version of a system. A system librarian controls the
baseline source code modules.
• System librarian
– A person responsible for controlling the checking out and
checking in of baseline modules when a system is being
developed or maintained

16-20 © 2005 by Prentice Hall


Configuration Management (Contd)
• It is the responsibility of the system librarian to keep copies
of all prior versions of all system modules including the build
routines needed to construct any version of the system that
ever existed. It may be important to build old versions of the
system if new ones fail, or to support users that cannot run
newer versions on their computer system.
• Build routines
– Guidelines that list the instructions to construct an
executable system from the baseline source code

16-21 © 2005 by Prentice Hall


Configuration Management Tools
• Special software systems for managing system
configuration
• Controls access to modules in the system library
• Two types
– Revision control: modules labeled as frozen
(unchangeable) or floating (checked out by
programmer for modification)
– Source code control: extend revision control to all
interrelated modules
• Historical changes can be traced and previous
versions can be reconstructed
Role of CASE and Automated
Development Tools in Maintenance

• Traditional systems • Development with CASE


development – Emphasis is on design
– Emphasis on coding and documents.
testing. – Changes are implemented
– Changes are implemented in design documents.
by coding and testing first.
– Code is regenerated using
– Documentation is done
after maintenance is code generators.
performed. – Documentation is updated
– Keeping documentation during maintenance.
current is often neglected
due to time-consuming
nature of task.
Website Maintenance
• Special considerations
– 24 X 7 X 365 (?)
• Nature of continuous availability makes maintenance challenging
• Pages under maintenance can be locked
• Date and time stamps may be included to indicate the most recent
changes.
– Check for broken links
– HTML Validation
• New Pages should be processed by a code validation routine
before publication.
Website Maintenance
• Special considerations (continued)
– Re-registration
• When content significantly changes, site may need to
be re-registered with search engines
– Future Editions
• Consistency is important to users
• Post indications of future changes to the site
• Batch changes to reduce the frequency of site changes.

You might also like