Executable Model Markup Intro - modelint/flatland-model-diagram-editor GitHub Wiki
What is an executable model markup file?
As a Flatland user you will want to specify your Executable UML models in a text file without any notation or graphical layout information. The model file specifies only the semantic and logical model content that would be true regardless of how you viewed the model.
This file will be parsed so that the content is available to Flatland for layout purposes. In fact, the parsed model data is available to any downstream process that has a use for the model information.
Once parsed, a python class combines the parsed model data with data parsed from a selected layout file (.mls) and drives the Flatland layout engine which, hopefully, produces diagram output in the form of a pdf (for now).
Two Executable UML file types are currently supported: one for the class model (.xmm) and the other for the state model (.xsm). A complete modeled domain will consist of a set or folder/package of files including at a minimum one .xmm and any number of .xsm files. For the moment we are focusing on providing diagrammable content for Flatland and not so much on specifying a complete Executable UML file. Consequently, the Executable UML model specification is a bit incomplete, but don't worry, we'll get it all covered soon. For example, the class, attribute, relationship descriptions, external entity and domain operations and data type definitions are not yet included since Flatland isn't drawing them yet.
For now then this guide will limit itself to the representation of class and state models only.
In this guide we will see how a subsystem class model can be described in terms of Executable UML classes, attributes, methods and relationships and how a lifecycle (class) or assigner (relationship) state machine described in terms of states, events and transitions. We will also specify metadata such as author, title, document version, etc.