It is a common wisdom of component technology that reuse is
not obtained automatically: one has to design for reuse; and
reusability has to be preserved as a key quality through design,
implementation and maintenance. Besides other technologies
aiming at reuse, the component based approach gains increasing
attention. Although the idea of reusing prefabricated software
components is not new, many obstacles hinder reuse and make it
hard to achieve the benefits of reuse in practice.
In general few components are reused as they are. Often,
available components are incompatible with what is required.
This necessitates extensions or adaptations. In this paper we
develop a method assisting the software engineer in identifying
the detailed causes for incompatibility and systematically
overcoming them. Our method also permits the synthesis of common
adapters, coercing incompatible components into meeting