Section: New Results
Building new systems by composing pre-built and validated models promises a quicker design of more reliable systems. Several model driven approaches recognize templates, particularly in the UML sphere, as a powerful technique to specify parameterized models and their usage in the construction of whole system models  ,  ,  ,  .
We focus on how to define model driven engineering construction processes with such parameterized models. For this, we need to express complex compositions of parameterized models, which must be applied in a coherent way. Such building processes raise open issues: Is the result influenced by the application order ? Can we compose independent parameterized models ? Is it possible to define composition chains and find equivalent ones that express the same resulting model ?
To support such processes, we introduce an operator ( apply ) to express the application of a template to an existing model  . This operator specifies how to obtain a model from an existing one by the application and composition of generic ones. It also allows the combination of generic models in order to design richer ones. Thanks to this operator, sequences of applications can be expressed in a coherent way. Alternative composition sequences of parameterized models can be elaborated to build the same system model.
We have formalized the semantics of this operator and proved some properties that guarantee the correctness of application chains and their alternative ordering capacities. Our formalization is deliberately independent from any specific usage or existing methodologies. This gives the ability to provide strategies to transform composition of parametrized models into platform specifc models.
At a practical stage, we are developping a design tool based on the Eclipse Modeling Framework extended with the OCL support  and the Eclipse UML2 plugin. Our tool called Cocoa Modeler allows defining generic models as UML2 template packages and provides the functionality of composing these generic models and applying them in order to build a complete system. Strategies to transform composition of parameterized models into platform specific models are also offered. This tool will give the ability to manage libraries (design, composition, import,...) of parameterized models as standard UML2 templates.
Decomposing a system architecture into views has also been studied in the definition of system architectures  : after identifying the core concepts of a domain, concerns are specified one by one before explaining their integration. In the continuation of this work, we have studied the definition of modeling processes  . In this second stage we have proposed a framework for assisting the user in his/her modeling activity  . First, the modeling process is defined as steps with a subset of the modeling operations available and constraints that states when the step can be started and considered terminated. Second, based upon this specification the modeling environment controls the user activity: providing concern modeling only when possible, and evaluating the modeling constraint to drive the move between modeling steps. We have studied this approach both in the context of iterative development and software evolution of 3-tiers applications. Finally, this work is a source of collaboration with the Triskell Research Project (IRISA) as we are implementing our proprosal using KerMeta  . This implementation is intended to contribute to the KerMeta environnement in the Modelling Processes sub-project.