Component-based software development can reduce software development cost, time, and risks. However, component integration can yield composites that provide additional, undesired functionality. To address this issue, compositional wrappers are often developed to strip off the extra functionality. Additionally, compositional wrappers can implement a number of smart features to support automated development and use of component-based systems. Features of interest include: component and system self-documentation, automated software licensing support, facilities for updating a component and for suspending usage of a particular component, usage and inheritance restrictions, automated installation and customization of components and systems, fault management, and operational support.