The lowest layer in the xUML Platform Independent Model is where the Actions are defined. Actions are defined in response to signals in state models and in the methods implementing operations.
The actions are expressed using an Action Language (AL) which is a high level language providing control logic and manipulation of the UML structural model as well as features such as arithmetic.
An example fragment of an Action Language (in this case ASL)
A key feature of an AL is that it allows processing within the xUML model to be expressed at the UML level of abstraction. This means that the actions are specified in an implementation independent manner providing the system designers with the freedom to choose the most appropriate target software organisation.
An Al can also be used, for example, to specify the initial conditions for model execution as well as specialist “test” external stimuli. In addition, ALs allow models to access pre-existing legacy code, or other implementation domains.
At present, there are a number of different ALs in use, largely depending on the chosen tool support. For example, IBM's Rhapsody product uses a simplified and enhanced C++ while the iUML product uses ASL. At Abstract Solutions we have experience with a wide variety of different textual (and non textual) methods for supporting Action Specification and have worked closely with the Object Management Group (OMG) on standardising the underlying semantics of such languages as well as efforts to create a standard language itself.

