Information Technology Reference
In-Depth Information
we discuss the mapping of UML to object-oriented action systems in Section 4,
we will make use of these semantic variation points and define one particular
behavior of our models. Note that these choices may form the basis for semantic
tests: when creating test cases from UML models we may want to find imple-
mentations that violate our chosen interpretation of a semantic variation point!
Note also that in addition to semantic variation points, there are other sources
of non-determinism in the UML specification, e.g., transition firing (cf. [1], State
Machine, p. 566 ).
3 Object-Oriented Action Systems
In this section we present object-oriented action systems, our intermediate-level
modeling language that we use for giving UML models precise semantics. Object-
oriented action systems are an extension to the action system formalism initially
proposed by Back et al. in [2,3]. The object-oriented extension presented here is
based on the work of Bonsangue et al., published in [4]. We also use a prioritized
composition operator that has already been introduced by Sekerinski et al. in [5].
Notice, however, that our work is the first to combine object-oriented action
systems (with custom extensions), prioritized composition, complex data types,
and a trace semantics of action systems. We start our description of object-
oriented action systems with the introduction of normal (non-object-oriented)
action systems.
3.1 Action Systems
Syntactically, we may represent an action system AS comprising m functions, a
named actions, d non-deterministically composed anonymous actions, and a set
F I
of imported functions syntactically as follows.
AS = df
|
[
var V : T = I
functions F 1
n
= F 1
b
; ...; F n
= F b
N 1
n
= N 1
b
; ...; N n
= N b
actions
do A 1
...
A d od
: F I
Notice that functions have a name, a body and may return a value. Named
actions are similar to functions but may not have a return value. In the remainder
of this paper, we assume that named actions may only be called from within the
do od -block (that is, not from within named actions or functions), and that
function-calls may not be recursively nested. We also demand that each named
action has the form of a guarded command. Relying on these assumptions, we
are allowed to re-write the action system in a more classical form, where only
the actions within the do od -block are left:
AS = df
]
|
|
[
var V : T = I
do A 1
...
A d od
]
|
: Z
 
Search WWH ::




Custom Search