Abstract :
As model driven engineering increases the level of abstraction, there are more possibilities to hide complexity and to introduce variability points. Variations and composition, which are usually complementary approaches, may be merged inside models and complement each other. The “domains”, presented in this paper represent a coarse granularity reuse units. Domain variability is defined by models and the way domains are composed is also defined by a (composition) model. Therefore, variations are found at two levels, (1) inside domains (by choosing the appropriate model) and (2) in the composition mechanism itself (by defining the composition semantics).