A repository of software components
Component-based software development (CBSD) is an enhancement of the object-oriented (OO) approach to software development. The major distinction between a component in CBSD and an object in OO is that the former can be defined in several levels of abstraction whereas objects are mostly defined at the design and code levels. Among the many challenges posed by CBSD, the following two seem to be more important: (i) develop a repository to store, retrieve and manipulate components and (ii) use the components in a plug-and-play mode to build applications. The work presented in this thesis is a contribution to the first challenge which is to build a repository for supporting the use of software components in the development of generic software architecture. A tool for building such a repository has been implemented in Java, with features to classify, store and retrieve components. By providing precise definitions for classification of components, relationships between components, and the characteristics of components, we assert that such a repository can be used in a variety of application domains. A hybrid approach for retrieval which supports multi-level keywords search and Boolean query search has been developed. The tool has been used to build several prototype repositories: the results are promising.