Section: Scientific Foundations
Models and DSLs
In MDE the important concept is that of metamodel that is similar to ontology. A metamodel expresses the abstract syntax of a DSL. There are two ways of expressing such a DSL. Either one may reduce a general purpose modelling language like UML with mechanisms like profiles. Or alternatively one may directly define small metamodels that may be combined. The second alternative has been chosen and the AmmA platform may be seen as a DSL building framework. Basic building blocks are the kernel languages (KM3, ATL, AMW, TCS, etc.) on top of which the user may define new DSLs for domains like telephony, transportation, automotive, aeronautics, or any other.
When following the previously described principles, one may take advantage of the uniformity of the MDE organization. Considering similarly models of the static architecture and models of the dynamic behaviour of a system allows at the same time economy of concepts and economy of implementation. Considering models of products (e.g., software artifacts like UML) and models of processes (e.g., software processes like SPEM) may lead to a dual process/product organization. Considering transformation models, weaving models, and traceability models as special cases of correspondence models may also lead to simplicity and efficiency of implementations. These are a few of the use cases that are being explored in the team. A standard way consists to revisit an object-oriented solution to a problem by a new model-oriented solution and to compare them.