Reusable software components from a library are individually indexed with a set of keywords. To retrieve components the user incrementally specifies a set of keywords that the searched components are required to have. After each step the selected components and the exact set of remaining significant keywords needed to refine the query further are presented to the user. The process ensures that at least one component is found and the user cannot specify conflicting keywords. The efficient computation of retrieved components and significant keywords is based on the precalculated concepts of the library, which are natural pairs of component and keyword sets. The concepts form a lattice of super- and subconcepts and are obtained by formal concept analysis of the relation over components and keywords. The two main theorems state how to calculate the result of a query and the remaining significant keywords using the concept lattice. An implementation of the proposed approach shows that the user can select components quickly and precisely.