Introducing the Enterprise Architect Model Checker
Because of the nature of their content, models of business processes and IT systems can become very large. Frequently these models have many authors, so there is always a danger of inconsistency. This post illustrates how you can test your models using our ModelChecker for Enterprise Architect
In this post I would like to show you one of our tools, the ModelChecker, and invite you to use it for free. It currently only supports Enterprise Architect models and you have to write a bit of Java code to use it, but it’s really fast and has an intuitive GUI.
In general we like to create models to document, discuss or simulate systems. Often we use them as a baseline to generate specifications. We find them very useful to organize information in a structured manner.
Systems can be modeled using UML, the widely used “unified modeling language”. It covers both structural and behavioral aspects of a system and can be extended to cover specific domains.
SysML for example was created to model systems engineering applications, while BPMN covers business processes modeling. One of the many tools to create UML models is Enterprise Architect.
Depending on the scope and depth of your project, your model may become quite large. You may choose to parallelise the work, but this comes with its own set of problems. One is that everybody understands modeling a bit differently, so you might end up with inconsistencies. These inconsistencies not only make the model less understandable to a new reader, but also impair the automated generation of documents from the model. To save a model from descending into chaos, we like to define a metamodel. Read more about metamodels here.
To validate your model against its metamodel you can apply automated tests. One of the tools we use for this is the ModelChecker I above mentioned. It works like this:
- You design the metamodel
- You derive the rules you want automatically checked
- You implement these rules
- You end up with an executable, that checks your model and displays a list of all found violations