A framework and environment supporting software component reuse for teams of developers

The cost of software systems has been increasing steadily over the last 40 years. As dependence on computer-based systems has increased, so has exposure to software failures. Cost and quality concerns are not unique to computer software. Other engineering disciplines must also solve these problems. One technique for addressing cost and quality issued is to construct systems from standard components. However, most software systems are built from scratch. Can techniques from classical engineering fields be applied to software systems design and result in greater component reuse? This research studied traditional engineering systems design and synthesized an engineering design metaphor for software development. STILE, and embodiment of these techniques, supports design and incorporation of reusable components in unique ways. However, STILE does not support team development of software systems. A companion tool, the Administrator, extends the metaphor and STILE to provide a uniform environment for large project development. The Administrator contains powerful access control and configuration management tools that support a variety of management strategies. This dissertation explores the engineering design metaphor and introduces STILE. Team development issues and existing support tools are surveyed. Then the Administrator, a tool that embodies a new approach to component access control, is introduced. It offers a finer degree of control than previous methods and can ensure syntactic component integrity throughout the software life cycle. When combined, STILE and the Administrator foster design and use of reusable software components. Contributions of this research include: (1) Identification of the engineering design metaphor for software development and its application in the design of STILE. (2) Recognition that access controls should be based on components, rather than files. Access control is further refined by behavioral specification, structural specification, and implementation. (3) Elimination of many configuration management problems. Component access based on the above principles can eliminate revision trees with version branching, hence removing the need to reconcile version differences. Syntactic compatibility is automatically maintained between part incarnations. System builds are automated in that they do not depend on "Make" files. (4) Design and implementation of the Administrator, a companion tool to STILE that embodies a new access control and configuration management approach.