Alf, the Action Language for Foundation UML

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.

Key Features:

  • Supports the Alf 1.1 action language at the “Full Conformance” level.
  • Provides a syntax aware editor for Alf bodies of activities, opaque behavior, opaque expressions and opaque actions.
  • Compiles to executable UML activity models.

Why an action language?

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.

Join the conversation in the CATIA MBSE Cyber System User Community!

How to Customize the Element Creation Dialog in SysML v2 & CATIA Magic

Tired of digging through menus because your most-used SysML v2 elements aren't in the creation dialog? I just dropped a new video showing how to easily patch your CATIA Magic UI to add elements like Views and Viewpoint Definitions right into your palette. We're keeping it strictly focused on native, out-of-the-box configurations rather than writing complex code.Grab the downloadable source file

CATIA MBSE CYBER SYSTEMS

Updating Requirements with excel via reqtify

Hello,I tried to update the requirements on enovia with excel document like verification matrix that has columns ID, Requirement Text and attributes. But the requirements on the enovia is not imported with reqtify so there is not intermediate file. When tried to update requirement set on the enovia with reqtify, it deletes all existed requirements and create new ones. I am using labels as ID (as

CATIA MBSE CYBER SYSTEMS

[Webinar] Digital Engineering Strategy with a Model-Based Approach, September 30

Dear all, we invite you to the upcoming webinar "Digital Engineering Strategy with a Model-Based Approach"Digital Engineering aims to integrate models, simulations, surrogate models, systems and components across engineering disciplines and throughout the full lifecycle.The webinar will explore an integrated digital approach using authoritative system data and models as a connected continuum, supp

CATIA MBSE CYBER SYSTEMS

Importing a spreadsheet and having the fields correspond to block names and value properties.

Hello, I have a basic question.I've been tasked with building out a series of BDDs for a computer network. I have an excel file that specifies the properties of each device on the network, e.g. host name, ip address, operating system, and make/model.For the blocks in the diagram, I would like to create a value property that corresponds to each of the properties specified in the spreadsheet, and po

CATIA MBSE CYBER SYSTEMS

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.

Learn What CATIA Can Do for You

Speak with a CATIA expert to learn how our solutions enable seamless collaboration and sustainable innovation at organizations of every size.

Get Started

Courses and classes are available for students, academia, professionals and companies. Find the right CATIA training for you. 

Get Help

Find information on software & hardware certification, software downloads, user documentation, support contact and services offering