The Metamodel

We model our Shlaer-Mellor variant of Executable UML using, … Shlaer-Mellor Executable UML.

This model defines our terminology: class, relationship, attribute, state, decision action, etc.

It also defines how exactly these elements can be combined to specify a software system.

We use this model to define a database schema for our model repository, and now we can do all kinds of cool things with our models in that database.

Cool things like generating code, run-time model validation and verification, predictive performance analysis and so forth.