Model Management INTeractive (MMINT) is an Eclipse-based workbench for graphical, interactive model management. MMINT allows modelers to do rapid prototyping and exploratory modeling while seamlessly keeping track of all relevant artifacts in their workspace. MMINT is developed by the Software Engineering group at the University of Toronto, under the supervision of Professor Marsha Chechik.
Model Management is the management of collections of related models. It provides tools and techniques for dealing with large sets of models, defining relationships among models, manipulating models and relationships using operators (i.e., transformations). A special kind of model, generally called a megamodel, is used to represent such a scenario, with models as nodes and their relationships as arrows. Models and relationships are typically considered to be typed by their respective metamodels.
MMINT provides a graphical form of megamodel called a Model Interconnection Diagram (MID) as the interface through which to perform actions. In addition to the standard megamodel interactions already supported by existing interactive model management techniques, MMINT provides support for an additional layer, the Type megamodel, representing the collection of metamodels, relationships and transformations between them. The Type megamodel can be examined, modified and extended at runtime, allowing the user to have a dynamic type system and a reconfigurable workbench.
MMINT is used by the Software Engineering group as a common research platform and prototyping workbench, and it is rapidly evolving. Please be aware that the project's goal is not to become a production-level software, but to try and make our efforts available to the research community. As such, you will most certainly run into bugs.
The easiest way of installing MMINT in Eclipse is using the binary packages, which will automatically take care of all the Eclipse dependencies. Alternatively, you can download and build the source code from this git repository. Please take a look at the requirements first to check that your system can run MMINT.
- Java 23
- Eclipse Modeling Tools 2024-12
- After downloading Eclipse, open the
eclipse.ini
file and change the line below-vm
to point to your Java 23 installation (for example, on Debian Linux change it to/lib/jvm/java-23-openjdk-amd64/bin
, on Windows change it toC:\Program Files\Java\jdk-23\bin
)
Binary packages for MMINT are created at each release and will automatically install the necessary Eclipse dependencies.
- Add
https://adisandro.github.io/mmint/release
to the list of software sites in Eclipse (Help > Install New Software > Available Software Sites
). - Install
Modeling > MMINT
.
You can also install MMINT-A (a version of MMINT for automotive safety assurance), MMINT-PL (a version of MMINT for product lines), a selection of pre-packaged model types, relationship types and operators under the Modelepedia
category, or examples from various papers under the Examples
category.
Binary packages for the current development version of MMINT are similarly available using the software site https://adisandro.github.io/mmint/develop
.
Add the following update sites to Eclipse (Help > Install New Software > Available Software Sites
):
https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/2024-12
http://download.eclipse.org/modeling/emft/henshin/updates/release
https://download.eclipse.org/modeling/mdt/papyrus/updates/releases/2024-06
Then, install the following components (Help > Install New Software
):
Acceleo
ATL SDK - ATL Transformation Language SDK
Henshin SDK
M2E - Maven Integration for Eclipse
Sirius Properties Views - Specifier Support
Sirius Specifier Environment
VIATRA Query and Transformation SDK
To import the source code in your Eclipse workspace, use File > Import
and then Projects from Git
under the Git
category. Wait until everything is built, then right-click on any project and Run As > Eclipse Application
.
The projects are under the plugins directory: required projects under Core, projects that significantly extend functionality under Core-Extensions, optional and domain specific projects under Types and projects that deal with external tools under External. The features directory contains the logical units of functionality, tests contains a suite for regression testing, releng contains the release engineering code, and examples contains artifacts created with MMINT for various papers and conferences.
MMINT-A is an extended version of MMINT for automotive safety assurance, aimed to facilitate the creation, analysis, and evolution of safety models. MMINT-A adds the following features:
- Goal Structured Notation (GSN) assurance case editor.
- Safety goals decomposition using strategies that are provably deductive.
- Correctness checks for safety goals decompositions.
- Megamodel querying.
- Change impact assessment.
Follow these steps to install MMINT-A:
- Add
https://adisandro.github.io/mmint/release
to the list of software sites in Eclipse (Help > Install New Software > Available Software Sites
). - Install
Modeling > MMINT-A
.
MMINT-PL is an extended version of MMINT for product lines, for creating and managing annotative product lines of models as well as to facilitate lifting modeling activities to the product line level. MMINT-PL adds the following features:
- Annotative Product Line (PL) editor for any EMF metamodel.
- PL well-formedness checks with respect to feature model and presence conditions.
- PL initialization from a product.
- Product instantiation by selection of features.
- PL-aware model relationships.
- Lifted VQL engine.
Follow these steps to install MMINT-PL:
- Add
https://adisandro.github.io/mmint/release
to the list of software sites in Eclipse (Help > Install New Software > Available Software Sites
). - Install
Modeling > MMINT-PL
.
- From Products to Product Lines: a Model-based Methodology
MoM@MODELS 24 | Install:Examples > MMINT - MOM24
| Readme - MMINT-A: A Framework for Model-Based Safety Assurance
SciCo Vol. 231 | Install:Examples > MMINT - SCICO23
| Readme - Adding Product-Line Capabilities to Your Favourite Modeling Language
VaMoS 23 | Install:Examples > MMINT - VAMOS23
| Readme - MMINT-A 2.0: Tool Support for the Lifecycle of Model-Based Safety Artifacts
MODELS 20 | Install:Examples > MMINT - MoDELS20
| Readme - MMINT-A: A Tool for Automated Change Impact Assessment on Assurance Cases
SAFECOMP 18 - MU-MMINT: An IDE for Model Uncertainty
ICSE 15 - MMINT: A Graphical Tool for Interactive Model Management
MODELS 15
- PLACIDUS: Engineering Product Lines of Rigorous Assurance Cases
iFM 24 | Install:Examples > MMINT - IFM24
| Readme - The ForeMoSt Approach to Building Valid Model-Based Safety Arguments
SoSyM Vol. 22-5 | Install:Examples > MMINT - SOSYM22
| Readme - Validating Safety Arguments with Lean
SEFM 21 - A Lean Approach to Building Valid Model-Based Safety Arguments
MODELS 21 | Install:Examples > MMINT - MODELS21
| Readme - Assurance Case Property Checking with MMINT-A and OCL
CSER 20 - Querying Automotive System Models and Safety Artifacts: Tool Support and Case Study
JASE Vol. 1-1 | Install:Examples > MMINT - JASE20
| Readme - Heterogeneous Megamodel Management using Collection Operators
SoSyM Vol. 19-1 | Install:Examples > SoSyM18
| Readme - Querying Automotive System Models and Safety Artifacts with MMINT and Viatra
MASE@MODELS 19 | Install:Examples > MMINT - MASE19
| Readme - Migrating Automotive Product Lines: A Case Study
ICMT 15 - Enriching megamodel management with collection-based operators
MODELS 15 - Lifting model transformations to product lines
ICSE 14 - Supporting early decision-making in the presence of uncertainty
RE 14 - Managing requirements uncertainty with partial models
REJ Vol. 18-2 - Transformation of Models Containing Uncertainty
MODELS 13