When developers construct models or programs from smaller or more generic elements, or when developers are trying to make system families instead of single systems, they are challenged by a large number of different and often overlapping and conflicting m echanisms like e.g. generics and aspect-oriented mechanisms. Each of these mechanisms was developed to meet a specific challenge and therefore have no common underlying theory. Thus, they appear divergent and are difficult to combine.
The project will go beyond all these different mechanisms, seek a set of underlying, sound and general mechanisms, and thereby provide new modeling/programming mechanisms that give the powers of all of the above, providing the flexibility of these, but constrained such that the semantics of the individual elements are maintained when they are combined into new models and programs. The project will demonstrate the usability by incorporating the mechanisms into existing technologies like Java and UML2.0, validate them by appl ying them to a careful selected set of examples, and show what kind of tool support they will require.