The major drawback of previously developed software reuse systems is the poor retrieval performance. As an attempt to improve the performance, knowledge-based information retrieval technologies are being applied. In this thesis, a software retrieval system, called CLIS, is designed and implemented using a knowledge-based information retrieval technology. CLIS selects relevant Lisp functions for the given specifications, and Lisp programmers may then modify or extend the functions. CLIS utilizes hierarchical thesaurus represented in a Hierarchical-concept Grab (HCG) as a knowledge base. A matching function, which estimates the revance of a Lisp function to a query, is used as an inference engine. Each Lisp function is described in terms of the three facets: input, operation, and output. Each facet is encoded by nodes of the corresponding HCG. User queries are also formulated in terms of facets using Boolean operators. The matching function computes the conceptual distance between the index terms of a query and those of a Lisp function description. The Lisp functions in the library are ranked according to this conceptual distance. An HCG Browser is developed to assist the user in composing a query by graphically displaying the overall structure of the HCG. A set of experiments confirm that the matching process and the faceted classification scheme with Boolean query produce human-like rankings, overcoming several disadvantages of existing systems. The HCG Browser is found to be an essential component for forming user queries.