|Current base release (conforms to fUML 1.2.1): v1.2.0b||GitHub | Central Repository||Latest release: v1.2.3||GitHub | Central Repository|
What is fUML?
fUML is a subset of the standard Unified Modeling Language (UML) for which there are standard, precise execution semantics. This subset includes the typical structural modeling constructs of UML, such as classes, associations, data types and enumerations. But it also includes the ability to model behavior using UML activities, which are composed from a rich set of primitive actions. A model constructed in fUML is therefore executable in exactly the same sense as a program in a traditional programming language, but it is written with the level of abstraction and richness of expression of a modeling language.
Like UML, fUML is standardized by the Object Management Group (OMG), which maintains the fUML specification (which is formally known as the "Semantics of a Foundational Subset for Executable UML Models"). There is also a standard textual surface syntax for fUML call the Action Language for fUML (Alf), which is particularly useful for defining detailed behaviors in the context of an fUML model, and which has its own reference implementation.
What is the fUML Reference Implementation?
This is a complete open source implementation of fUML. It consists of two parts.
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 XMI Loader reads a fUML model from a file in the standard XML Metadata Interchange (XMI) 2.1, 2.4.1 or 2.5 formats 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 may be used itself as a library implementation of fUML in other software, or it may be used in conjunction with the XMI Loader to provide a standalone capability to execute conforming fUML models represented in XMI.
The reference implementation was initially developed as part of a Lockheed Martin Corporation funded project with Model Driven Solutions in 2008, and has been maintained by Model Driven Solutions as part of its modeldriven.org open source community since then. The objectives for this reference implementation are 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.
Are there other implementations of fUML?
A number of other implementations of fUML are now available, associated with various previously existing UML tools. These include at least the following: