Database Reference
In-Depth Information
INTRODUCTION
The statechart technique is a visual formalism defi ned as an enhancement of fi nite-state
machines, originally developed by D. Harel (Harel, 1987) to specify complex reactive
systems. Much literature has been written on this topic in recent years and in particular, a
large number of variants of the technique have been proposed (Beek, 1994). More recently,
the success of the statechart formalism has received a major boost since an object-oriented
adaptation of the technique, namely State Machines 1 , has been adopted as part of the Unifi ed
Modeling Language (OMG, 2003; Rumbaugh, Jacobson & Booch, 1999).
There are many works which defi ne a complete formal semantics of Harel's Statecharts
(see, for example, Ehrig, Geisler, Klar & Padberg, 1997; Harel, Pnueli, Schmidt & Sher-
man, 1987; Harel & Politi, 1998; Hong, Kim, Cha & Kwon, 1995; Hooman, Ramesh &
Roever, 1992; Beek, 1994; Maggiolo-Schettini, 2003). However, a known shortcoming of
UML State Machines is that in the UML specifi cation document (OMG, 2003), although the
syntax and static semantics of State Machines are precisely stated, the dynamic semantics
is not rigorously defi ned (Engels, Haussmann, Heckel & Sauer, 2000; Latella, Majzik &
Massink, 1999; Lilius & Paltor, 1999). Undoubtedly, a precise specifi cation of the behav-
ior of State Machines is essential for a large and varied audience. For instance, the fi nal
users of the language (such as system analysts and designers) need at least an overall but
accurate idea of how a state machine behaves. Secondly, CASE tool builders interested in
supporting State Machines greatly benefi t from having an unambiguous specifi cation of the
language. Finally, method engineers would use a precise specifi cation of State Machines to
analyze issues such as language adaptability, comparison with other behavioral approaches,
transformation, and so on. This complex situation has resulted in the defi nition of a precise
dynamic semantics of State Machines being the subject of recent intensive research (Borger,
Cavarra & Riccobene, 2000; Engels et al., 2000; Jin, Esser & Janneck, 2002; Latella et al.,
1999; Lilius & Paltor, 1999; Mann & Klar, 1998; Reggio, 2002; Reggio, Knapp, Rumpe,
Selic & Wieringa, 2000; Varro, 2002).
The problem is that the majority of approaches that try to establish a precise dynamic
semantics of State Machines make use of formal notations such as Rewrite Rules (Kwon,
2000; Lilius & Paltor, 1999), Hierarchical Automata (Latella et al., 1999), Abstract State
Machines (Borger et al., 2000) or Object Z (Mann & Klar, 1998). However, like other authors
(Engels et al., 2000; Reggio, 2002), we think that these approaches have the drawback of
being diffi cult to read and understand, and therefore they are not wholly suitable since dy-
namic semantics must be precisely established but in such a way that the understandability
and readability of the specifi cation is facilitated.
Without neglecting the need for formal notations when issues such as verifi cation or
model checking have to be dealt with, we propose to adopt a metamodeling approach which
is a widely accepted way of improving the properties of understandability and readability
(Hofstede & Verhoef, 1997; Verhoef, 1993). This proposal is based on a two-layer architec-
ture we outlined in Domínguez, Rubio and Zapata (2000a, 2000b). This architecture makes
explicit the distinction between the generic behavior represented in a dynamic model (Base
Layer) and the behavior represented in relation to a particular situation (Snapshot Layer). In
addition, the concept of movement from a current situation to another is captured by using
the notion of mapping. Using this architecture as a starting point, a metamodel of UML State
Machines is proposed, which consists basically of two UML class diagrams (one diagram
for each layer of the architecture) and two maps. These maps represent, respectively, the
Search WWH ::




Custom Search