Models & ModelmanagementThe importance of models vastly increased in the last decade. Models grew from mere documentational accessories to essential first level artifacts within the development processes of many domains. The most important facilitator in this regards was the rise of the model driven software development paradigm (MDSD) and its companying and closely related concepts of model driven engineering (MDE) and model driven architecture (MDA). But the usage of models is nowadays not only limit to technical domains like software engineering, but models are also utilized in less formal domains as well. One example are business process models that are used by companies to represent the knowledge over vital and reoccuring processes. For the user who has to deal in his daily work with such models it is often interesting, sometimes even crucial, to identify the changes that exist between two versions of model. For example when a class diagram was concurrently modified by different users it is vital to recognize if the changes in the two versions conflict or if the models can simply be merged. Model comparison can assist these tasks by identifying the corresponding parts of the models, derive the difference and present the difference to the user in a way that supports him in his work.
Eclipse Modeling FrameworkModel mangement in SiDiff is based on the meta model of the Eclipse Modeling Framework (EMF), called Ecore. Technically Ecore is a meta meta model, because it is itself an EMF/Ecore model (But this is just a scientific distinction and not really important for the comprehensibility here). The advantage in using EMF/Ecore stems from the fact that EMF offers built in, easy to use runtime support and persistence mechanisms for models, as well as an an API to generically manipulate instances of models. Furthermore the Eclipse Modeling Project established itself in the last couple of years as de-facto standard for the model community and is supported by many vendors. Also additional bridges for many domains into the realm of EMF exist.
In the context of the SiDiff framework, Ecore is used as a meta meta model to describe the different domain models (or meta models) of interest, e.g. the Unified Modeling Language (UML), Matlab/Simulink or the Business Process Model Notation (BPMN). Instances of these meta model models, e.g. two class diagrams, are then compared by the framework, the correspondences and differences are computed and the results are further processed by the user or another software.