Moka is an open source project that aims to provide the MBSE community with a framework enabling UML based models execution and debugging.
Moka provides three key features: Execution, Debugging and Animation.
The execution feature relies on implementation of OMG Executable UML standards: fUML 1.4, PSCS 1.2 and PSSM 1.0. It enables execution of any UML model conforming to the syntactic subset identified by the union of these standards. The conformance perimeter is therefore limited to classes, composite structures, activities and state machines.
While Moka was initially developped to enable UML based models execution, it's scope is not limited to UML and UML extensions. Indeed Moka execution framework is generic enough to enable development of execution engines supporting any type of EMF based models.
Execution is useful but not sufficient to assess / understand what is going on when a modeled system is executed. It is especially true when the modeled systems does not behave as expected. In order to overcome this problem Moka comes with a specialization of the Eclipse debug framework. The Moka debug framework enables the final user to control the execution of a model (e.g., thread suspension) and to observe the state (e.g., variable values) of this later.
While Moka debug feaure was initially developped to provide debugging facilities for UML models execution, it is not limited to this perimeter. Indeed, the debug framework is generic enough to be specialized for any EMF based models debugging.
The animation feature completes execution and debugging by providing the user with the capability to follow the execution flow. In the context of UML based models, this feature change the visual state of model elements on diagrams (e.g., when a state is entered then its visual representation changes).
While Moka animation feature was initially developped for UML diagrams it is generic enough to be adapted to other graphical frameworks.
In order to install Moka follows the steps below:
In order to make Moka usable in your Eclipse, it needs to be configured. The configuration consists in the following steps:
Moka implementation is divided as follows.
UI
org.eclipse.papyrus.moka.ui
org.eclipse.papyrus.moka.utils.ui
org.eclipse.papyrus.moka.ui.tracepoint.view
Misc
org.eclipse.papyrus.moka.modeling.utils
org.eclipse.papyrus.moka.pscs.utils
org.eclipse.papyrus.moka.utils
org.eclipse.papyrus.moka.trace
org.eclipse.papyrus.moka.trace.interfaces
org.eclipse.papyrus.moka.trace.model
org.eclipse.papyrus.moka.trace.model