4
MOOSE: A method designed for ease of maintenance
R. I. Ferguson, N. F. Parrington and P. Dunne
University of Sunderland, School of Computing and Information Systems, Priestman
Building, Green Terrace, Sunderland, Tyne(Wear, SRI 3SD, UK ,Tel. +44 091 5152508,
Fax. +440915152781, Email- i.ferguson@sunderland.ac.uk
Abstract
The problem of change as manifested in perfective and adaptive maintenance is presented
along with some of the qualities that software must possess in order to minimise the effects of
change. These qualities can be provided by the Object Oriented paradigm. This paper describes the
current work on a Method for Object Oriented Software Engineering (MOOSE) that has ease of
maintenance and re-use as primary design objectives. A prototype CASE tool to support the
method has also been developed: details and proposals for its re-engineered capabilities are given.
No attempt is made to completely define the method, instead a general description of its features,
particularly those pertinent to maintainability, is presented.
keyword codes: 0.1.5; 0.2.2; 0.2.7
keywords: object-oriented programming; tools and techniques; distribution and mainte-
nance
1. THE PROBLEM
Lehman's first law states that any system's requirements will change over time and that for the
software to remain useful, it too must change. [11. The Software Engineer is thus faced with the
prospect, that no matter how well the stages of elicitation, specification, analysis and design are
performed, a significant amount of the system produced will need fe-engineering over its lifetime.
Software Maintenance activities are frequently categorized (following Swanson [2]) as "Per-
fective" - consequent on change of requirement, "adaptive" ,- due to change in operating environ-
ment - "corrective" - bug fixing or "preventative" [3].
The key factors influencing maintainability afe complexity and modularity [4]. Complexity is
a measure of how difficult a piece of code it to understand. If a piece of software has been refined
into a set of smaller sub-problems then it is said to he modularised. If the individual modules have
low external coupling and high internal cohesiveness, then the system will be easier to maintain as
the effect of changing anyone piece of code will be limited to the module in which the change
occurs. Another factor affecting the maintainability of a system is the ease with which a program-
mer can maintain a mental model of what the system does, and how it is built.
2. A SOLUTION
One paradigm that claims to improve these factors is the Object Orientation (OO).Rooted
firmly in modularity, its modelling approach is closer to human ways of reasoning than procedural
methods [5], and it isolates the effects of change through its use of information hiding[6]. Object
orientation gives a system the flexibility required by Lehman's 1st law. Requirements do not have
to be artificially frozen at design time (as assumed by the traditional software development lifecy-
cle).They may evolve with time and the system development process needs to take this into
account.
M. Lee et al. (eds.), Software Quality and Productivity
© Springer Science+Business Media Dordrecht 1995