he Action Semantics
proposal, currently being standardized by the OMG, aims at integrating
semantics of an action language into the UML 2.0. The Action Semantics are programming language
independent. They define operations that support the synchronous manipulation
of objects, the generation and handling of signals, and the logical constructs
that support the specification of algorithms. The modeler specifies these
operations using a text-based action language. Various UML tools support an action language.
They have been used for a long time in the embedded and real-time modeling
communities, such as in the Specification and Description Language (SDL)
community. The use of an action language makes UML models executable, i.e.
it allows designers to test and simulate models and to fully automatically
generate executable code.
Opponents of the Action Semantics proposal
argue that Action Languages are turning UML into a
full-fledged programming language – which defeats the purpose of modeling. Yet, action languages are not intended to
compute algorithmic functions. Low-level algorithmic or hardware interface
functions are specified outside the model and used as modeling primitives. The
model provides different views on how these primitives are assembled to form an
application. Action languages are rather used to glue these primitives together
into executable views of the system, which can be separately tested and
verified.
The authors’ position is that the use of an action language within UML
statecharts makes a more powerful form of AOM possible. A joinpoint model for
statecharts can capture not only particular object state transitions, but also
the individual actions executed during a transition. Such a joinpoint model is
richer than the joinpoint models of AOP languages. Hence, AOM has the potential
to address some of the shortcomings of AOP.