by assembling new applications from existing software assets. However, true component-
based reuse of the form Douglas Mcllroy envisaged in the 1960s is still the exception rather
than the rule, and most of the systematic software reuse practiced today uses heavyweight
approaches such as product-line engineering or domain-specific frameworks. By
component, we mean any cohesive and compact unit of software functionality with a well …