Date of Award


Document Type


Degree Name

Doctor of Philosophy (PhD)


Computer Science

First Advisor

Doris L. Carver


Software reuse has been advocated as a technique with great potential to increase software development productivity, reduce development cycle time, and improve product quality. Challenges for successful reuse include populating the repository with the right type of components, representing and organizing the components in a way that the components are easy to be retrieved, and providing mechanisms to compare the candidate components with the requirement of the new component and to assist adaptation. While many existing researches are emphasizing one or two challenges, this research proposes a reusability model that targets all challenges in reuse. The inspiration for the model is group technology which identifies and exploits the similarities in the parts to be manufactured and the sequence of machines that are necessary for the processing of those products. The Requirement Reusability Model (RRM) is proposed in this research to capture the aspect of reuse that a component can be constructed by modifying another component. There are two major phases in RRM. At the Reusability Analysis (RA) phase, a measurement space is defined to represent the functional semantics of the components based on the formal specifications of the components. Clustering analysis is employed to group the components that are similar in function into the same clusters. At the Reusability Realization (RR) phase, the generic requirements for clusters are automatically extracted to create reusable frameworks for the clusters. The frameworks created are useful for constructing the implementation of individual transactions in the same cluster. Guidelines for adaptation from the frameworks to actual implementation are also provided. An automated system, called REST (a Reusers' assistant) implements RRM. The input to REST is the formal specification of a relational database system. Based on the input, REST produces a repository of reusable frameworks. The products of REST also include a data dictionary and a transaction dictionary. Each entry of the transaction dictionary indicates the name of a transaction, the description of the functional semantics of the transaction, the cluster to which the transaction belongs, and a suggested framework to be reused for the implementation of the transaction.