First published 1993 by Ashgate Publishing
Reissued 2018 by Routledge
2 Park Square, Milton Park, Abingdon, Oxon, OX14 4RN
711 Third Avenue, New York, NY 10017, USA
Routledge is an imprint of the Taylor & Francis Group, an informa business
Copyright UNICOM Seminars Ltd 1993
All rights reserved. No part of this book may be reprinted or reproduced or utilised in any form or by any electronic, mechanical, or other means, now known or hereafter invented, including photocopying and recording, or in any information storage or retrieval system, without permission in writing from the publishers.
Notice:
Product or corporate names may be trademarks or registered trademarks, and are used only for identification and explanation without intent to infringe.
Publishers Note
The publisher has gone to great lengths to ensure the quality of this reprint but points out that some imperfections in the original copies may be apparent.
Disclaimer
The publisher has made every effort to trace copyright holders and welcomes correspondence from those they have been unable to contact.
A Library of Congress record exists under LC control number: 93018658
ISBN 13: 978-1-138-31660-7 (hbk)
ISBN 13: 978-0-429-45552-0 (ebk)
The collection of papers included in this book were given at a seminar organised jointly by UNICOM and the British Computer Society Software Reuse Specialist Group and held in London on the 3rd and 4th December 1991. The papers address a set of important, topical issues for the advancement of software reuse in the 1990s:
effective management of software reuse, from motivating individual software developers to reuse rather than reinvent software components, to implementing organisational structures which promote organisation-wide reuse;
recognition that many technical solutions to software reuse already exist;
reusing system specification and design as well as code modules, thus supporting the critical but error-prone analysis and design phases of the software development life cycle;
object-oriented approaches would appear to promote reuse, although little evidence of potential reuse is available;
reuse of knowledge as well as software modules, typified by reuse paradigms developed in conjunction with domain analysis;
critical success stories of software reuse in industrial-scale, real-world applications, encouraging the wider industrial uptake of software reuse;
the need for metrics to measure potential benefits from software reuse;
reverse engineering, the extraction of documentation and higher-level descriptions of software from the code itself;
reuse of the software development process as well as artifacts from that process;
the importance of human issues during software reuse tasks.
The papers in this collection vary from highly-focused academic papers, such as that by Martin Ward on formal specifications for reverse engineering, to the commercial, such as that by Kruzela. Taken together the papers in this book provide a wide spectrum of activity in current software engineering practice, especially that practice associated with promoting effective reuse.
The December 1991 seminar, from which these papers are taken, built on the success of two earlier seminars also organised by UNICOM in 1989 and 1990, whose papers are reported in the UNICOM Applied Information Technology Series book Software Reuse and Reverse Engineering in Practice, edited by Pat Hall (1991). The 1991 seminar proved to be the most successful to date, with higher attendance and greater participation from delegates, which is indicative of the increased recognition of software reuse as an important strategy for software engineering. The seminar was organised in collaboration with the British Computer Society Software Reuse Specialist Group, whose growth since its creation in 1989 is also indicative of the perceived future importance of software reuse by academics and industrialists alike. Increased home interest in software reuse has been matched by developments abroad. For several years, many large Japanese software houses have been implementing component-based software development, akin to their industrial manufacturing strategies. Similarly the existence of many software reuse workshops and tutorials in the United States has been symptomatic of the uptake of successful, large-scale software reuse programs by large US companies. This increased interest culminated in the First International Workshop on Software Reusability, held in Dortmund, Germany in July 1991, which will be followed by a second workshop in 1993. In short, software reuse has been recognised as a critical software engineering strategy for the future.
The papers in this book reflect the importance of integrating multi-faceted strategies for software reuse within software development organisations, hence the original seminar title Integrated Software Development with Reuse. Previously reuse had been treated as a peripheral activity outside mainstream software development practice, so its uptake was slow. This book disagrees with this view and suggests instead that software reuse must be the cornerstone of effective software development practice. The introduction of object-oriented approaches, Computer-Aided Software Engineering (CASE) tool repositories and commercial code module libraries all indicate that reuse will be at the heart of future software engineering environments. However, many previous attempts to introduce software reuse into organisations have failed due to their focus on single reuse issues, such as retrieval or generification of modules or due to their mishandling of sensitive management and human issues, such as the Not Invented Here (NIH) syndrome. On the other hand, effective reuse can only be achieved through an integrated toolset assisting all software reuse tasks, and supported by a management which is committed to achieving software reuse in their organisation. In short, software reuse requires an integrated and comprehensive approach to be successful.
Such an approach must acknowledge the importance of two issues, effective management of the software reuse process and technical facilities which allow and promote software reuse. The apparent success of several large-scale reuse programs with modest technological support suggests that many technical problems inhibiting software reuse may already have been overcome. Instead, many of the problems appear to be managerial. Stories of previous reuse failures indicate that management must be fully committed to reuse for it to succeed. However, management commitment necessitates quantitative measure of potential benefits from reuse, especially in an era of cost-consciousness. As a starting point, this book presents several papers recording reuse success stories, and highlights inherent difficulties in demonstrating direct reuse benefits. Papers covering the technical aspects of software reuse look more to the future, and propose a battery of new and challenging techniques supporting both software and knowledge reuse. They suggest that the next generation of software reuse toolkits will represent a technological leap over current keyword-based approaches, founded on artificial intelligence, knowledge acquisition and human factors research integrated into software engineering environments, and offer even greater benefits from those offered by current software reuse research.