There are two additional mandatory conformance points for this standard.
-
Template Semantics. Every conformant modeling tool must conform to the template semantics specified in Subclause 6.2.
-
Library Implementation. Every conformant modeling tool must provide an implementation of the Alf Standard Modeling Library, conforming to the specification given in Clause 11.
3Normative References
The following normative documents contain provisions which, through reference in this text, constitute provisions of this specification.
-
OMG UML Superstructure, Version 2.4 (ptc/2010-08-03) – Referenced in the following as “UML Superstructure”
-
Semantics of a Foundational Subset for Executable UML Models, Version 1.0 Beta 3 (ptc/2010-03-14) – Referenced in the following as “fUML Specification”
-
Object Constraint Language, Version 2.2 (formal/2010-02-01) – Referenced in the following as “OCL Specification”
NOTE. Alf is based on UML 2.4 because this version of the UML specification includes some corrections to abstract syntax constraints that are important for the static semantic analysis of Alf. However, fUML v1.0 is still based on UML 2.3. Fortunately, the subset of the UML 2.3 abstract syntax included in fUML did not change structurally in UML 2.4 and, therefore, the fUML semantics can be applied directly to the similar subset of UML 2.4. Nevertheless, it is expected that fUML v1.1 will be based on UML 2.4 and remove any discrepancy.
4Terms and Definitions
Execution Semantics
For the purposes of this specification, the behavioral semantics of UML constructs that specify operational action over time, describing or constraining allowable behavior in the domain being modeled. (From the fUML Specification.)
Execution Tool
Any tool that is capable of executing any valid UML model that is based on the foundational subset and expressed as an instantiation of the UML 2.0 abstract syntax metamodel. This may involve direct interpretation of UML models and/or generation of equivalent computer programs from the models through some kind of automated transformations. Such a tool may also itself be concurrent and distributed. (From the fUML Specification.)
Foundational Subset
The subset of UML to which execution semantics are given in order to provide a foundation for ultimately defining the execution semantics of the rest of UML. (From the fUML Specification.)
Modeling Environment
A user environment provided by a modeling tool that allows for the creation and modification of a UML model. In a modeling tool that is an execution tool, the modeling environment may also allow for direct execution of the model.
Modeling Tool
Any tool that allows for the creation and management of UML models. A modeling tool that allows those models to be executed is also an execution tool.
5Symbols
There are no symbols or abbreviated terms necessary for the understanding of this specification.
6Overview
An Alf input text is a concrete representation for UML model elements in the Foundational UML (fUML) abstract syntax subset (see fUML Specification, Clause 7). Such an input text may be part of a wider UML model only parts of which are represented in Alf, or it may be the representation of an entire model in its own right. In either case, this specification defines how concrete Alf input text is processed into an abstract syntax representation of UML model elements.
The UML Superstructure specification defines the standard graphical and textual notations used to express a UML model. In this context, Alf can be used as an alternative textual notation to represent portions of the overall model. There are four ways in which Alf may be so used.
-
As described in Subclause 8.1, an Alf expression may be used any place a UML value specification is allowed. This may be done either by including the Alf text as the body of a UML opaque expression or the Alf text may be compiled into an equivalent UML activity to act as the specification of such an expression. In addition, there are special syntactic forms for instance creation and sequence construction expressions that do not require the explicit annotation of redundant type information in Alf expressions that are used to specify the default values for properties or parameters.
-
As described in Subclause 9.1, a sequence of Alf statements may be used in two ways:
-
To define the behavior of a UML action within an activity or interaction model. The Alf text may be included as the body of a UML opaque action or it may be compiled into an equivalent UML structured activity node (which is a kind of action).
-
To define the behavior of a complete UML behavior. The Alf text may be included as the body of a UML opaque behavior or it may be compiled into an equivalent UML activity (which is a kind of behavior).
-
As described in Subclause 10.1, an Alf model unit may be used to represent the model of a classifier or package that is intended to be individually referenced as a named element. Such a model unit may represent an entire UML model (at least within the limits of the fUML subset) or it may represent a model element (such as a class or standalone activity) intended to be used within some larger model.
Since an Alf text can be processed into a UML abstract syntax representation, a portion of a model represented in Alf can always be integrated into a larger model on that basis (as noted above), regardless of the surface representation of any portion of the model. Nevertheless, even when such compilation is done, it will generally still be desirable to also store the original Alf text in the model, since it would not otherwise be possible to exactly reproduce that text (with user formatting, etc.) from the model representation. This is done by attaching a comment to the top-level element resulting from the processing of an Alf model unit with the Alf text for the unit as the body of the comment and the applied stereotype «TextualRepresentation» with tagged value {language = "Alf"}. This stereotype is from the standard ActionLanguage profile defined in Subclause 11.1.
Share with your friends: |