You are on page 1of 22

Lec02 Maintenance Framework 1

Objectives
Look in detail at the context in which software
maintenance activities are carried out.
Discuss in depth the components of the maintenance
framework and show how they interrelate.

Lec02 Maintenance Framework 2


“Everything is connected to
everything”
[Mercury Rising: Film 1998]

Lec02 Maintenance Framework 3


Introduction
Software maintenance is not an activity carried out in
a vacuum. It affects, and interacts with the
environment within which it is carried out.
It is changes and interactions in the surrounding
environment that bring about the need for change.
Understanding the framework, and the relationship
between the factors comprising this framework allows
prediction of problem areas and the ability to avoid
them.

Lec02 Maintenance Framework 4


Definitions
Environment
The totality of conditions and influences which act
from outside upon an entity.
Environmental factor
An agent which acts upon the entity from without and
influences its form or operation.
Framework
A set of ideas, conditions, or assumptions that
determine how something will be approached,
perceived, or understood.

Lec02 Maintenance Framework 5


Definitions
Information gap
The discrepancy between the body of knowledge that
system users and system maintainers possess and the
body of knowledge that each needs to have in order to
satisfy a request for change.
Maintenance challenge
The need to keep systems running.
Far more complex
 Software is not subject to physical wear and tear, but to
influences less easy to identify and address area.

Lec02 Maintenance Framework 6


Definitions
Maintenance personnel
The individuals involved in maintaining a software
product.
Maintenance process
Any activity carried out, or action taken, either by a
machine or maintenance personnel during software
maintenance.
Operating environment
All software and hardware systems that influence or act
upon a software product in any way.

Lec02 Maintenance Framework 7


Definitions
Organizational environment
 All non-software or non-hardware related environmental
factors.
Safety-critical
 A system where failure could result in death, injury or illness,
major economic loss, environmental or property damage.
Safety-related
 A system where failure could significantly increase the risk of
injury or damage.
Software maintenance framework
 The context and environment in which software maintenance
activities are carried out.

Lec02 Maintenance Framework 8


Components of a software
maintenance framework
User requirements
Organizational environment
Operational environment
Maintenance process
Software product
Maintenance personnel

Lec02 Maintenance Framework 9


Lec02 Maintenance Framework 10
User
Individuals who use the system, regardless of their
involvement in its development or maintenance.
Features
Requests for additional functionality, error correction
and improving maintainability
Request for non-programming-related support

Lec02 Maintenance Framework 11


Environment
Operating environment
 Hardware innovations
 The hardware platform on which a software system runs may be
subject to change during the lifetime of the software
 When a processor is upgraded, compilers that previously produced
machine code for that processor may need to be modified
 Software innovations
 Changes in the host software may warrant a corresponding
modification in the software product.
 E.g. of host software systems whose modification may affect other
software products
 Operating systems, database management systems and compilers

Lec02 Maintenance Framework 12


Environment
Organisational environment
Changes in policies
 A change in the business rule (the procedures used by an
organisation in its day-to-day operation) or taxation policy
leads to a corresponding modification of the programs
affected.
Competition in the market place
 Organisations strive towards having a competitive edge over
their rivals.
 This can imply carrying out substantial modifications so as to
maintain the status of the product – reflected in the level of
customer satisfaction – or to increase the existing ‘client base’.

Lec02 Maintenance Framework 13


Maintenance Process
Capturing change requirements
The process of finding out exactly what changes are
required. It poses a lots of problems.
It’s difficult to capture all requirements a priori.
Requirements and user problems only really become
clear when a system is in use
Many users know what they want but lack the ability to
express it in a form understandable to the analyst of
programmer.
Information gap

Lec02 Maintenance Framework 14


Maintenance Process
Variation in programming practice
 Differences in approach used for writing and maintaining
programs
Paradigm shift
 An alteration in the way we develop and maintain software
 As well as the many systems still in use that were developed
using low-level programming languages and those developed
prior to the advent of structured programming techniques,
there are many programs in operation and in need of
maintenance that were developed without the means to take
advantage of the more advanced and more recently
developed techniques.
Lec02 Maintenance Framework 15
Maintenance Process
Paradigm shift
Such programs inherit a number of characteristics
 They were designed using techniques and methods that fail
to communicate essential features such as program structure,
data abstractions and function abstractions.
 The programming languages and techniques used to write
the code did not take visible and obvious the program
structure, program interfaces, data structures and types, and
functions of the system
 The constraints that affected their design no longer present a
problem today.

Lec02 Maintenance Framework 16


Maintenance Process
Paradigm shift
To address the weaknesses and reap the benefits of
modern development practices and the latest
programming languages, existing programs may be
restructured or completely rewritten.
 Structured programming, object orientation, hierarchical
program decomposition, automated code upgrading.
Error detection and correction
‘Error-free’ software is non-existent.
The costs gets higher if the errors are detected
during the maintenance phase.
Lec02 Maintenance Framework 17
Lec02 Maintenance Framework 18
Software Product
Aspects of a software product that contribute to the
maintenance challenge include
Maturity and difficulty of the application domain
Quality of the documentation
Malleability of the programs
 Ad hoc software changes may have unknown and even fatal
repercussions. This is particularly true of safety-related or
safety-critical systems
Inherent quality
 The nature of the evolution of a software product is very
closely tied to the nature of its associated programs.
Lec02 Maintenance Framework 19
Maintenance Personnel
Include maintenance managers, analysts, designers,
programmers and testers
The personnel aspects that affect maintenance
activities include
Staff turnover
Domain expertise
Working practices

Lec02 Maintenance Framework 20


Relations between maintenance
factors
Relation between product and environment
The software is embedded in a cultural matrix of
applications, laws and machine vehicles. These all
change continually, and their changes inexorably force
change upon the product
Relation between product and user
Interaction between personnel and product

Lec02 Maintenance Framework 21


Lec02 Maintenance Framework 22

You might also like