Today, many exciting initiatives are underway within the software industry. Structure Modelling technology is growing rapidly through efforts at the Software Engineering Institute (SEI) and ongoing projects. Megaprogramming challenges are being faced on the ARPA STARS project. Open standards including POSIX, X-Windows, and Motif are becoming realities as key software vendors position themselves to support these initiatives.
Reuse library tools and guidelines are also being developed through efforts at the SEI, the Software Productivity Consortium (SPC), and on the STARS project. At the same time, software contractors are moving forward with serious strategies to improve their company software processes in response to industry initiatives including the ISO 9000 requirements and the SEI Process Maturity Model.
All these initiatives share the common objective of cost reduction and most are looking to one form or another of software reuse to achieve this goal.
This paper examines the multi-faceted issues of reuse and the role these current industry initiatives play within reuse technology. Issues discussed include analyzing existing software for reuse, techniques to design for reuse, reusable software architectures, managing variant versions of software, and managing a corporate reuse library. Technical and management issues are presented.
The paper focuses on lessons learned from efforts at CAE-Link to infuse software reuse techniques into the corporate culture. Practical techniques being applied today to meet reuse challenges are discussed. The key roles of reuse criteria, metrics, company software standardization, project-company interaction, management mandates and training and education are discussed.
Experiences and examples are provided from the B-2 ATD project, Independent Research and Development, and a corporate software Process Action Team that was instrumental in providing the focus necessary to move the company forward with an effective and practical reuse initiative.