A Magicdraw Add-on
Alf (the Action Language for Foundation UML) is a textual language for coding detailed, executable behavior within an overall UML model. Alf is a standard of the Object Management Group (OMG), which is also the organization that maintains the UML specification. Alf is one of a suite of OMG specifications related to defining precise execution semantics for UML, building on the original Foundational UML (fUML) specification.
The Alf Plugin for MagicDraw allows you to use the Alf language within MagicDraw. The Alf Plugin provides both a syntax-aware editor for entering and updating Alf code, and a compiler for translating Alf code into fUML activity models. When used with Cameo Simulation Toolkit, behavioral specifications written using Alf code are fully executable in the context of class, activity and state machine models.
The Alf Plugin supports the Alf language at the “Full Conformance” level, i.e. it provides a complete action language for representing behavior within a UML model created in the usual way in MagicDraw.
In order for a model to be fully executable, it has to specify all the detailed behavior to be executed during a simulation run. It is possible to do this using activity diagrams, but creating explicit activity models at this level of detail is tedious and error prone.
Alternatively, Cameo Simulation Toolkit provides a rich capability for using scripting languages (such as Javascript) within executable UML models. While such languages benefit from being already well-known, they do not, however, naturally integrate with the UML model in which they are embedded. For example, a navigation from an object across an association can require several API calls.
Alf, on the other hand, was designed as a Java-like scripting language that is fully integrated with the enclosing UML model. Using Alf gives you all the functionality of specifying behavior using activity diagrams, only far more easily.
For example, suppose you are modeling an Assembly that contains a set of Components, and you want to compute the total weight of the Assembly as the sum of the weight of the Components. You could draw an Activity diagram with eight or more different actions on it to do this. Or you could code it in JavaScript using the non-standard MagicDraw Action Language Helper (ALH) API as
totalWeight = 0.0; for (var i = 0; i < components.length; i++) { totalWeight += ALH.getValue(components[i], "weight"); }
Or you could write the single standard Alf expression:
this.totalWeight = this.components.weight->reduce '+' ?? 0.0;
and the Alf Editor will even provide static type checking, consistent with your class model.
Alf is the scripting language designed to be used with UML.
NOTE: Existing users of No Magic products can access to the user portal at https://magicdraw.com/main.php, as well as Cameo Collaborator for Teamwork Cloud samples at https://ccexamples.nomagic.com.
Speak with a CATIA expert to learn how our solutions enable seamless collaboration and sustainable innovation at organizations of every size.
Courses and classes are available for students, academia, professionals and companies. Find the right CATIA training for you.
Find information on software & hardware certification, software downloads, user documentation, support contact and services offering