Reference implementations of all concepts developed in the MOCA project are provided by two frameworks which are based on the widely used Eclipse Modeling Project; SiLift and Henshin.
SiLift is a model versioning framework implemented on top of EMF and Henshin. It provides a set of reusable components to implement model difference tools (or tool functions) that lift model versioning from the abstraction level of low-level model changes to the level of high-level changes based edit operations specified in Henshin.
Henshin is a model transformation language and system which targets in-place transformation of EMF models based on graph transformation concepts. Some features developed within the MOCA project, e.g. the critical pair analysis facility, have been integrated into the Henshin framework.
During the first funding period of the SPP, several individual difference tools and tool components based on SiLift has been developed. Examples of these tools (and tool functions) range from pure API based high-level differencing operators to interactive workspace update or patching tools.
Supported modeling languages are standard modeling languages such as Ecore, UML and SysML (UML/SysML models developed in Papyrus) as well as various domain-specific languages, e.g. a simple web modeling language called SWML, software architecture models, fault trees, feature diagrams (developed in FeatureIDE) etc.
We utilize several of of these tools and tool functions to evaluate
the MOCA approach both at the PPU and CoCoME case study.