Future component systems will require that components can be composed
flexibly. In contrast to current systems which only support a fixed set of
composition mechanisms, the component system should provide a composition
language in which users can define their own specific composers. It is
argued for an object-oriented setting that this will be possible by
meta-programming the class-graph.
Composers will be based on two important elements. First, they will express
coupling by graph-based operators which transform parts of the class-graph
(coupling design patterns). Second, during these transformations, elementary
meta-operators will be used to transform data and code, rearranging slots and
methods of parameter-components. Thus during their reuse, components are
queried by introspection and transformed by meta-programming.
Composers that use meta-programming generalize connectors in architectural
languages. Hence they encapsulate context-dependent aspects of a system, and
make components independent of their embedding context. Since
meta-programming composers may change behavior of components transparently,
meta-programming ... mehrcomposers will lead to a nice form of grey-box reuse, which
supports embedding of components (and classes) into application contexts in a
new and flexible way.