The aim of this paper is to present the SPOOL design repository, which is the foundation of the SPOOL software engineering
environment. The SPOOL design repository is a practical implementation of the UML metamodel, and is used to store detailed
design-level information that is extracted from the source code of industrial systems. Its internal mechanisms and related
tools provide functionalities for querying data and observing dependencies between the components of the studied systems,
facilitating core tasks conducted in reverse engineering, system comprehension, system analysis, and reengineering. This paper
discusses the architecture, the schema, the mechanisms, and the implementation details of the repository, and examines the
choice of the UML metamodel. Experiences conducted with large-scale systems are also presented, along with related work and
future avenues in design repository research.
keywords Design repository - Unified Modeling Language - data interchange - reverse engineering - system analysis - system comprehension - reengineering - system visualization
This research was supported by the SPOOL project organized by CSER (Consortium for Software Engineering Research) which is
funded by Bell Canada, NSERC (Natural Sciences and Engineering Research Council of Canada), and NRC (Natural Research Council
Canada).