Components should provide reusable, black-box building blocks as the primary commonality aspect. Many component approaches are proposed, implementing this goal in different ways. In these different component approaches there is also a strong focus on component composition and adaptation – to support variability of component architectures. Again a variety of different techniques is used for implementation. But in contrast to black-box component abstractions, these variation aspects are not well defined for practical purposes yet.