Magic Alf Analyst
Released on: February 12, 2021
Magic Alf Analyst Version 2021x eliminates the need for Receptions when sending or accepting Signals using Alf and provides bug fixes.
Sending and accepting Signals without the need for Receptions
The Alf language specification requires that the target of a Signal-send expression be a Reception and that the context Class of an accept statement has Receptions for all accepted Signals. However, the use of Receptions are optional in UML, and their use is no longer required in Foundational UML (fUML) 1.5 for executable models. Therefore, Magic Alf Analyst now implements a language extension that allows sending and accepting Signals without the need of using Expressions. For a Signal send, the name of the Signal must be visible without qualification, which may require that the Signal (or its containing Package) be imported. In an accept statement, Signals may be referenced using qualified names, if their simple names are not directly visible.
The new capability is particularly useful for sending Signals through Ports. A Signal send can simply target a Port using any visible Signal to be sent out through that Port. Note, however, that the Port must still have a type, generally either an Interface or a Class with a required Interface.
Sending Signals without the need for receptions.
The following bugs have been fixed in Magic Alf Analyst 2021x:
- A confusing error message related to an illegal data value update.
- A potential exception due to a concurrency conflict when repainting the UI.
In addition, the Alf compiler has been updated to Alf Reference Implementation v1.1.0k.