-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Let’s assume that you have a model specified in a file somewhere. For example, you might have an Aircraft Subsystem defined as an Executable UML class model in an .xmm (Executable Markup Model) file. Notice that we used the word ‘model’ and not ‘diagram’. When we say, for example, that we have two classes Aircraft and Pilot and that there is a one to one is flying relationship between the two, nothing in that statement implies rectangles, arrows or any other graphical artifact. The model defines semantics and logical statements which may be rendered in a variety of text and graphical notations. Even with a specific graphical notation, there are many ways to layout an associated diagram.
A model layout sheet, as the name implies, specifies one possible diagram layout with a specific graphical notation and presentation style for some input model. The name is appropriated from the term ‘style sheet’ used in web page design.
Out of the box, Flatland recognizes and parses Executable UML model (.xmm) files. A handful of graphical notations such as Starr, xUML and Shlaer-Mellor are supported for model types such as class, state, collaboration and domain models. In the future, with some open source support, a variety of modeling languages and their compatible notations will hopefully be added.
Here’s how it works with Executable UML models which are currently supported:

In the figure above, a layout sheet named AC Horizontal.mls specifies how the model elements in the Aircraft Example.xmm model file will be arranged on a class diagram. The model file supplies the names of the classes and relationships which are transformed into corresponding nodes and connectors in the diagram. Here we see a roughly horizontal layout of the A, B, C, etc. class names defined in the .xmm file.
The same model file could be processed by any number of alternate layouts such as AC Vertical.mls in the figure which yields a roughly vertical layout of the very same model elements. Not only the layout is distinct, but a different notation and presentation style (different fonts, line widths, colors, etc.) could be applied.
If you change the model by creating new classes or changing the names of certain model elements, you may need to update any related layout sheets. But you can rearrange a layout without having to touch the source model.
Copyright © 2021 and 2025, Leon Starr at Model Integration, LLC under the MIT Open Source License