What is a Module?¶
Modules are the means of defining, implementing and deploying extensions for Modelio. They can be seen as the equivalent of extensions for Firefox.
A module will typically defines and contains:
- UML extensions such as stereotypes, tagged types and note types;
- model creations, transformations and navigation through Modelio MDA Java API;
- contextual property pages;
- menu commands in explorer and button commands in the toolbar and property pages;
- palette tools to create diagram elements;
- event handlers triggered when model elements are created, modified or deleted;
- parameters to add some flexibility in module behavior.
Model navigation is heavily used to create code or documentation generator. Combination of model creations and palette tools allow some limited customization of Modelio diagram types to extend existing ones or to create new ones. SWT libraries that allow to build fancy GUI are available to modules as well as many Java libraries.
Example of module :
Java Designer : extends Modelio with the ability to generate Java code from UML model;
Togaf Architect : extends Modelio with new modeling and diagramming capabilities that follow Togaf standard.
In this guide, we propose to develop a “JUnit” module to better represent our purpose.