This section assumes that you have already read Introduction and know that
UniMod defines methodology for modeling applications
behavior using SWITCH-technology adapted for
UniMod methodology describes how to create UML diagrams
to model application behaviour. Also methodology defines
interpretation rules (operational semantics) for created
models. Tools implement
these interpretation rules and allow to execute created models.
All this stuff let us to say that UniMod project
implements Executable UML idea.
To create methodology adaptation of SWITCH-technology
diagrams for UML-notation is described. Also
operational semantics defined by SWITCH-technology is
changed to sutisfy changed adapted diagrams.
SWITCH-technology defines two types of diagrams for
describing application behavior:
- Connectivity schema - defines state machine interface;
- Transition graph - defines state machine logic.
If system consists of more then one state machine, state machines interconnection schema must be created.
Connectivity schema describes relations between finite
state machines, event sources and controlled entities.
Event sources must be placed on the left. Controlled
entities must be placed on the right. State machines must
be labeled with AR, where R – state
machine number, and placed in the middle of schema.
For every event that produced by event sources link between
event source and state machine is created. Link directed
into state machine and labeled with event symbol
eN, where N – is event number, and long
For every input action link between controlled entity that
owns input action and state machine is created. Link
directed into state machine and is labeled with symbol of
input action - xM, where M - is input
For every output action link between state machine and
controlled entity that owns output action is created. Link
directed into controlled entity and labeled with symbol of
output action - zK, where K – is output
Connectivity schema may contain arbitrary amount of event
sources, state machines and controlled entities.
Transition graph is created for every state machine defined
on connectivity schema. Transition graph describes combined
machines (C-machines or Moore-Mealy machines).
Transition graph contains states and transitions between
states. States is labeled with its name, list of output
actions that will be executed on-enter and list of included
state machines symbols. Transitions are labeled with
Boolean condition that trigs transition and list of output
actions that will be executed if transition trigs. Boolean
condition contains logic formula in basis AND,
OR, NOT. Terms of formula are symbols of
events, symbols of input actions and 1 (TRUE),
0 (FALSE) constants.
A lot of sample projects based on SWITCH-technology
may be found at SWITCH-technology home site http://is.ifmo.ru/projects_en/.
Adaptation process of described diagrams is introduced
Connectivity Schema Adaptation
SWITCH-technology connectivity schema is converted
into UML Class diagram. To do so, event source
stereotype, state machine stereotype and controlled object
stereotype are introduced. Instances of these classes
(objects) are placed on UML Class diagram. It’s
very important to note, that just objects are placed on
Class diagram, because, for example, if there are two
different state machines that drive the same controlled
object, they must share the same instance of controlled
object in runtime.
Event source is connected with state machine with the only
directed association without label. State machine is
connected with controlled object with the only directed
association labeled oP, where P – is local number of
controlled object from state machine point of view. State
machine use this label as controlled object identifier to
refer to controlled object instance. Also such approach
allows two different state machines to refer to the same
controlled object using different symbols.
Controlled object class has two types of public methods:
xM() – input action method, where M –
is input action number, and zK() – output
action method, where K – is output action number.
Method name is used as action's symbol. Long action
description may be defined as method tag – standard
UML extension mechanism.
State machine object has name AR, where R
– state machine number. State machine class has no methods.
State machine object name is used as state machine
Transition Graph Adaptation
SWITCH-technology Transition graph is converted
into UML Statechart diagram. Statechart diagram
syntax changed in the following way: state may have two
types of internal transitions - enter and
include, state can’t has concurrent regions,
initial and final pseudo states - are the only pseudo
states allowed on diagram.
Enter internal transition defines list of
output actions to be executed on-enter into state. Output
actions are linked to methods of controlled objects using
identifiers in form oP.zK, where
oP is controlled object's symbol defined on
Class diagram and zK – is controlled object
method's name. Labels oP.zK and
oP.xK are called fully qualified method
Include internal transition defines list of
included state machines symbols. State machines referred as
Transition label has the following syntax:
eN – is reference to method of event source,
guard_condition – is Boolean expression in
basis AND, OR, NOT, list_of_FQMI –
the same list as list defined for state enter
internal transition. Terms of guard_condition
are FQMI, first order predicates <, >,
<=, >=, !=, ==, Boolean constants and natural numbers
Example of well-formed transition label:
e1[o1.x1 && o2.x2 || o1.x10>10]/o1.z1,o2.z1.
Statechart has number of UML object constraint
language (OCL) constraints that must be satisfied for
well-specified diagram. Some additional constraints are
introduced by UniMod:
- all states on diagram must be attainable;
- set of state outgoing transitions must be
- set of state outgoing transitions must be complete.
The methodology Step-by-Step Process
Methodology suggests the following step-by-step process for
creating application model:
- analyze problem domain, create conceptual model using
classical approches (Object-Oriented
Methods: Principles and Practice (3rd Edition) by Ian
- extract event sources, controlled objects and state
machines from conceptual model. Event sources are
active, they actuate state machines. Controlled objects
are passive, they make actions only as a reaction to
state machine calls. State machines react to event
providers influence and, depending on it's active state
and value of input actions, call controlled objects
- create UML Class diagram, put event sources on
the left, put controlled objects on the right, put
state machines in the middle, create associations
between event sources, state machines and controlled
objects. This Class diagram called connectivity
- assign names to links between state machines and
controlled objects using symbols like
- define and implement public methods of two main types
for every controlled object: input actions
xM() and output actions
- create one Statechart diagram per state machine;
- implement controlled objects and event source on
- automatically create XML-description, that
describes diagrams content, for further
Model Interpretation Rules
Model interpretation rules are described below:
- On model startup, all event providers is initialized.
After this, them start to send events to connected
- Every state machine starts it's life in
initial state and ends in final
- On event receiving, state machine selects all outgoing
transitions from active state, labelled with event that
- State machine iterates through all selected transitions
and computes Boolean expressions wrtitten on them, till
true expression will be found.
- If transition with true Boolean expression
is found, state machine executes output actions
wrtitten on transition and pass into new state. In new
state state machine executes on-enter output action
wtitten in this state and executes included state
- If transition in not found, state machine continues
transition search from super state of active state.
- If root state machine reaches final state,
it disposes all event providers. After disposing,
system must stop it work.