Background

The approach advocated in this paper results from the combination of two research efforts:

In a recent joint publication [#!structured92!#] the first and third authors make a proposal for constructing a database of software components, based on the following premises: Our design rationale is that by representing database entries with arbitrarily abstract specifications and by letting the match between a store key and a retrieve key be defined by the refinement ordering (rather than strict equality), we deal effectively with the diversity of software components and the complexity of organizing such components in a database.

In this position paper we report on our progress in implementing this software repository, using C under Unix, and an experimental theorem prover (Otter, ©Argonne National Laboratory). Among the Functions we have implemented we mention: Storage of software components; Retrieval of software components; and Approximate Retrieval of software components, to be invoked whenever (exact) retrieval fails to produce results.