scriptions (i.e. state machines, activities, interactions,
use cases, and operations) and existing approaches
need to be provided with a transition relation for each
and every one of those. This poses a significant chal-
lenge to the development of automated approaches for
the verification and validation of models.
In this work, we aim for addressing this issue
by proposing a two-step approach for the genera-
tion of the desired transition relation. First, a syn-
tactic model-to-model transformation of the given
behavioral descriptions into newly added operations
specified by pre- and post-conditions and allocated
in blocks is performed. This unifies the descrip-
tion means of a system’s structure and behavior and,
through this unification, simplifies the generation of
the transition relation to be conducted in the second
step. As a result, support for further behavioral de-
scriptions can be added more easily into approaches
for verification and test.
The effectiveness of the proposed approach is ex-
emplified by translating behavioral state machine de-
scriptions into blocks and operations, and creating
the transition relation from the latter representation.
The approach has been evaluated during the develop-
ment of an industrial-strength tool for bounded model
checking and model-based testing with SysML mod-
els.
The remainder of this paper is structured as fol-
lows: The next section briefly reviews the basic con-
cepts of SysML while Section 3 sketches the problem
formulation as well as the general idea of our solu-
tion. In Section 4 the transformation of state machines
(serving as an example of a formalism for which a
transition relation generator is required) into block di-
agrams and associated operations is described. This
section is complemented by Section 5, where the
transformation of blocks/operations into the propo-
sitional representation of transition relations is ex-
plained. In Section 6, we report on an actual imple-
mentation following the strategy described in this pa-
per. We conclude with a summary in Section 7.
2 BACKGROUND
The OMG Systems Modeling Language SysML (Ob-
ject Management Group, 2010) offers description
means to specify the structure and the behavior of a
system. The structure of a system can be described
by means of Block Definition Diagrams (BDD) con-
sisting of blocks and associations/relations between
blocks. A block has different features, which are
grouped in compartments, such as properties or op-
erations. The former represent the state of the com-
ponent represented by the block, the latter its behav-
ior. Using design-by-contract, the effect of opera-
tions can be expressed by means of pre- and post-
conditions. To this end, the Object Constraint Lan-
guage (OCL) (Object Management Group, 2012) can
be used. The SysML also offers descriptions means
to explicitly specify the behavior of components; ex-
amples are activity diagrams, sequence diagrams, or
state machines. For illustrating the objectives of this
paper, state machines are used.
When referring to the elements of SysML state
machines, some auxiliary functions are needed. In
tool implementations, these functions are typically re-
alized as operations defined on the abstract syntax
tree used for internal model representation. Given
a SysML state machine sm and a transition t
sm
, the
source state of this transition is denoted by t
sm
.source,
and its target state by t
sm
.target. The action associated
with the transition arrow is denoted by t
sm
.effect. The
entry action associated with a state machine state s
is denoted by s.entry, the exit action by s.exit, and
a do activity by s.do. The set of transitions ema-
nating from s is denoted by s.outgoing. For dealing
with composite states s in hierarchic state machines,
function parent(s) returns the immediate parent state
of s. The whole state machine sm is considered as
the root composite state of a hierarchic state machine,
so parent(s) = sm, if s resides on the highest level
of a state hierarchy. Function subs(s) returns the set
of all true sub-states of s, regardless of their position
in the state machine hierarchy. For simple states s,
subs(s) = ∅. Composite states s are characterized by
subs(s) 6= ∅; function sub(s) returns the pseudo ini-
tial state of the composite state’s immediate subma-
chine. sub(sm) is the pseudo initial state of the whole
state machine. If s
0
is a pseudo initial state, then s
0
.t
denotes its single outgoing transition.
Example 1. For the hierarchic state machine de-
picted in Figure 3(a), sub(sm) is represented by the
black bullet point with transition sub(sm).t connect-
ing the pseudo initial state to s
0
. Action s
3
.entry con-
sists of an assignment z = z +1; s
1
.exit of the assign-
ment x = 1. The effect t3.effect of transition t3 is the
assignment r = 0.
In this paper, we only consider single-region
composite states, i.e., each composite state is
associated with a sequential submachine (Object
Management Group, 2011a, 15.3.11)
1
. Compos-
ite states induce state configurations, i.e., sets of
1
Composite states with multiple regions can be repre-
sented in an alternative way by constructing a separate state
machine for each region and associating it with a different
block; this alternative is covered by the approach described
here.
MODELSWARD2015-3rdInternationalConferenceonModel-DrivenEngineeringandSoftwareDevelopment
264