An executable UML model is one with a behavioral specification detailed enough that it can effectively be run as a program (either through compilation or interpretation). Quite a few UML executable tools existed already but now we have the fUML reference implementation (fUML is the OMG Foundational UML specification for exectuable UML) directly available on GitHub.
As the authors describe in the tool webpage, the tool is a complete open source implementation of fUML. It is intended to implement the execution semantics of UML activity models, accepting an XMI file from a conformant UML model as its input and providing an execution trace of the selected activity model(s) as its output. More specifically, it consists of two parts.
- The XMI Loader reads a fUML model from a file in the standard XML Metadata Interchange (XMI) 2.1 format for UML and loads it into memory. The loader also reads the standard Foundational Model Library model file and resolves normative user model references to library elements.
- The fUML Execution Engine executes an in-memory representation of fUML models. The implementation for the engine is directly generated from the normative syntactic and semantic models for fUML.
The fUML Execution Engine may be used itself as a library implementation of fUML in other software, or in conjunction with the XMI Loader to provide a standalone capability to execute conforming fUML models represented in XMI. Nevertheless, more than becoming the only fUML tool out there, the goal of the tool is to encourage UML tool vendors to implement the fUML standard in their tools and to provide a reference that can assist in evaluating vendor implementation conformance with the specification.
fUML models can be written in Alf . Alf is basically a textual notation for UML behaviors that can be attached to a UML model any place that a UML behavior can be. And of course, there’s also a tool for that.
If you have any experience on using this tool or know other UML executable tools you like please let us know!
ICREA Research Professor at Internet Interdisciplinary Institute (UOC). Leader of the SOM Research Lab focusing on the broad area of systems and software engineering