© Copyright 2005 IEEEIn component-based software development (CBSD) programs are developed by combining reusable library components. Two of the main technical issues that need to be addressed are: locating suitable components in the library (retrieval); and adapting them to solve a specific problem. Intelligent retrieval techniques, based on matching formal specifications (so-called specification matching), have been developed to overcome some of the problems associated with traditional keyword-based retrieval techniques. Also approaches to semi-automating component adaptation have been proposed. These approaches are based on using component wrappers and component architectures for defining adaptation strategies. Such strategies can be repr...