Integration of a Reuse Process and a Maintenance Process within a Software Configuration Management(SCM) Environment

Oh Cheon Kwon, Cornelia Boldyreff and Malcolm Munro

Centre for Software Maintenance
Department of Computer Science
University of Durham
Science Laboratories
South Road
Durham, DH1 3LE, United Kingdom

Tel: (+44) 191 374 7014
Fax: (+44) 191 374 2560
Email: o.c.kwon@durham.ac.uk
cornelia.boldyreff@durham.ac.uk
malcolm.munro@durham.ac.uk

Abstract:

Software reuse and Software Configuration Management have now been considered good solutions to improve the productivity and quality of software development. There exists a close relationship between reuse and maintenance, so this research has created an integrated model of the reuse process and maintenance process by applying Software Configuration Management to these two processes. Thus, through an integrated approach to them, Software Configuration Management can overcome some problems in reuse and maintenance.

Keywords: Reuse, Software Configuration Management(SCM), Maintenance, Design/Development for Reuse(DfR), Design/Development with Reuse(DwR), Maintenance with Reuse(MwR), TERRA

Workshop Goals: To discuss the importance of Software Configuration Management for a reuse process and maintenance process.

Working Groups: Reuse and Product Lines, Domain Engineering Tools, Validation of Reuse Economic Models: Issues and Actions.

Background

By reusing reusable components that have already been developed, an organisation enhances its possibilities to improve both the productivity and the quality of the produced software. Software reuse has been developed as a new paradigm of the field of software engineering since McIlroy proposed the idea of a software component catalogue from which software parts could be assembled in 1967 [1]. Although we can observe some reuse success stories over the last 20 years, reuse is still in its infancy.

Basili [2] treated a reuse process as one of maintenance process models which support a reuse-oriented development process. This view provides a choice of maintenance approaches and improves the overall evolution process. He considered three maintenance process models: the quick-fix model, the iterative-enhancement model, and the full reuse-model. All these models reuse the old system and so are reuse-oriented. Basili investigated the possibility of complete maintenance by the reuse process supporting a full-reuse model.

Centre for Software Maintenance(CSM) at the University of Durham was established in April 1987. The objective of the CSM is to act as a focus for a major programme of research and development in the field of software maintenance, where more than 80 percent of the total cost of the system is spent. Our core research themes are reuse, reverse engineering, process modelling, testing, and formal methods for software maintenance. The CSM has been a host of an Annual European Workshop on Software Maintenance since 1987 and also edited a Journal of Software Maintenance(first issue in the summer of 1989).

We have identified a very strong affinity of software maintenance with software reuse. Major activities relevant to both maintenance and reuse are Software Configuration Management(SCM) and system understanding. In other words, SCM enables a reuser and maintainer to solve some problems with reuse and maintenance. In this research, we are interested in developing an integrated model of the reuse process and the maintenance process within an SCM environment.

Position

Our position is as follows: Given that the high degree of commonality between software reuse and SCM, and given many of the technical problems associated with reuse in a maintenance environment can be solved by applying the discipline of SCM, we have concluded that the processes of component reuse, component maintenance and reuse library management all need to be integrated within an SCM environment to achieve effective long term support for all of these processes.

Problems and Solutions

To make reuse more effective and viable, most of the problems which exist in reuse must be eliminated. We can categorise these problems into ones related to `Development/Design for Reuse(DfR)' and ones relating to `Development/Design with Reuse(DwR)'. The problems relevant to DfR are how to create and extract reusable components. The problems associated with DwR are as follows: how to classify and retrieve them; how to compose complex systems from these components; how to control the change of reusable components; and little progress to implement reuse in any software development environment and maintenance environment. In addition to the final problem, research into reuse which has been done so far, aimed at supporting a software development process rather than a software maintenance process. That is, the process of reuse has been related to DfR and DwR rather than `Maintenance with Reuse(MwR)'.

Many problems which arise with reuse can be effectively solved through an SCM process. If multiple versions for each reusable component can be kept in repository through the process of SCM, i.e., change and version control, the possibility of reuse will be increased greatly. The process of reuse must be integrated into the overall development life cycle and maintenance model so that developers and maintainers can know the steps whereby they can incorporate reuse. In addition, the incorporation of reuse into life cycle helps an organisation to accomplish systematic reuse.

Especially, since reuse and SCM have a close relationship with software maintenance, they can be integrated within a software maintenance environment. In order to introduce reuse into a maintenance environment, the authors have established the process of `Maintenance with Reuse(MwR)'. In addition, we have integrated the process of reuse with the process of maintenance within an SCM environment. A fuller report of the research can be found in [3].

The expected/accomplished results of this research are as follows:

In general, the process of reuse consists of `Development for Reuse(DfR)' which aims at creating reusable components through object oriented techniques and extracting reusable components from the existing systems using reverse engineering, and `Development with Reuse(DwR)' which develops a new system with reusable software. In terms of maintenance, `Maintenance with Reuse(MwR)' comprises four major activities, configuration management, reuse process, maintenance process and administration. In general, activities of an SCM process are performed by a configuration manager, activities of a reuse process by a reuser, activities of a maintenance process by a maintainer and finally, activities of administration by a librarian.

The librarian is responsible for the acquisition of new reusable components, and the evaluation, classification, population and deletion of reusable components. The configuration(component) manager has responsibilities for the approval of change requests, change of components, propagation of changes and maintaining of version history. The role of a reuser is to reuse reusable components to maintain a legacy system, to issue change requests to existing components, to request new components, and to update reuse history. A maintainer is responsible for maintaining an existing system and issuing change requests. As this research focuses on SCM for a `Reusable Software Library(RSL)' that supports a software maintenance environment, the reuser in the process model can take over the role of a maintainer.

Tool Support for Reuse

TERRA(Tool for Evolution of a Reusable and Reconfigurable Assets library) being currently implemented at the CSM is an electronic reuse library that can be accessible through the Internet and is also a tool to manage and control the evolution of reusable components using functions of SCM.

It supports most activities of the `Maintenance with Reuse(MwR)' process that consist of classifying, storing, retrieving, and integrating reusable components, including controlling changes to reusable components. By providing reusers with more versions of information, TERRA helps reusers maintain a system using reusable components.

Comparison

When Freeman [4] earlier proposed the concept of `Reusable Software Engineering(RSE)', he observed the similarity between activities of RSE and those of the evolutionary(maintenance) phase of a system's life cycle. Although he does not indentify a precise relationship and a reuse process, he argues the ``maintenance problem" appears to be a subset of the problem of reusing reusable components.

A number of authors present models of the reuse process, but only Basili's reuse model considers the perspective of maintenance in software reuse. The drawback of the model is that it does not identify the activities of each phase. Since reuse libraries and servers currently available have no flexibility to be integrated into user's development and maintenance environment, they have not been successful. On the contrary, TERRA's model has been created to support a maintenance environment and the model identifies detailed activities of a reuse process.

Although some reuse servers are now available, most of them do not support the function to control the evolution (i.e., revision and adaptation) of reusable components in a reuse repository. As an exceptional case, EUROWARE(Enabling Users to Reuse Over Wide Areas) [5] provides a reuser/user with the function of a change request, but doesn't support efficient version control and has nothing to do with the software development and maintenance environment. The TERRA's model supports the function of system building that constructs a system using reusable components as well as functionalities of Software Configuration Management. In general, the process of system building consists of a system model and configuration thread.

The EUROWARE's asset model considered not the structural aspects of an organisation that might be needed for its application, but only a provider of an asset(i.e., contact). However, the TERRA's model identified the roles of a librarian, a configuration(component) manager, a reuser and a maintainer. These aspects help an organisation introduce the server into its development/maintenance environment.

References

1
M. D. McIlroy, ``Mass produced software components in : Software engineering concepts and techniques,'' in Proceedings of NATO Conference on Software Emgineering (P. Naur, B. Randell, and J. N. Buxton, eds.), (New York), pp. 88-98, Petrocelli/Charter, 1969.

2
V. R. Basili, ``Viewing maintenance as reuse-oriented software development,'' IEEE Software, pp. 19-25, January 1990.

3
O. C. Kwon, C. Boldyreff, and M. Munro, ``An integrated process model of software configuration management for reusable components,'' tech. rep., Centre for Software Maintenance(CSM), University of Durham, Science Site, Durham, October 1996.

4
P. Freeman, ``Reusable software engineering: Concepts and research directions,'' in Proceedings of the ITT Workshop on Reusability in Programming (P. Freeman, ed.), (Stratford, Connecticut, ITT, Newport, RI), pp. 129-137, IEEE, September 1983.

5
E. Consortium, ``Euroware newsletters issue 1-3,'' 1994-1995.

Biography

Cornelia Boldyreff is a lecturer in the Department of Computer Science at the University of Durham. She has just finished the Esprit AMES (Application Management Environments and Support) project which also involves Cap Gemini Innovation as the coordinating partner. She has recently started the project `Configuration Management for Virtual Corporations', funded by European Commissioners. Before moving to Durham she worked on the Esprit PRACTITIONER project that was concerned with the the development of a support system for the pragmatic reuse of software concepts. Cornelia has extensive experience of working in the software industry. Her main research areas are in Reuse, Application Maintenance, Design Frameworks, Process Modelling and CSCW.

Malcolm Munro is a Senior Lecturer in the Department of Computer Science at the University of Durham and is a founder member of the Centre for Software Maintenance. His main research areas within the CSM are program comprehension, reverse engineering, redocumentation, and user enhanceable systems. He was the research leader on the DTI/SERC funded project RECAST (Reverse Engineering into CASe Technology). He has been involved in collaborative research with the University of Naples on extracting reusable components from existing systems. He is currently leading three projects funded by BT investigating Strategies for Testing Object Oriented Systems, Identification and Encapsulation of Reusable Legacy Functions and Data, and the use of Virtual Reality in the understanding of software systems.

Oh Cheon Kwon is a 2nd year PhD student at the Centre for Software Maintenance, Department of Computer Science, University of Durham. His current research topic is ``Software Configuration Management(SCM) for Software Reuse within a Software Maintenance Environment". Before he came to the UK in September 1993 he had been a researcher in the Department of Software Engineering at SERI(Systems Engineering Research Institute), KIST(Korea Institute of Science & Technology) for several years. He received an MSc Degree in Software Engineering from the University of Teesside in 1994. His research interests are Reuse, SCM, Maintenance, Process Modelling and CASE Tool.