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