The one–to–one correspondence between states and
process definitions facilitates our formal reasoning
about the dynamic behaviour of processes. However,
it is not enough to capture the behaviour of a SM
associated to a capsule precisely. As established
by UML–RT, each capsule operates according to a
SM with a clear interface, which responds to events
and generates actions through ports. To differentiate
between external events and operations, we define
roles that a port can perform. A signal arriving
to a capsule port from the environment is usually
interpreted as a event by a capsule SM; on the other
hand, the signals exiting from a capsule are the result
of executing the operations. The following definition
allows specifying UML–RT capsule SMs in terms of
CSP+T processes.
Definition 1 (Capsule SM). A capsule SM is repre-
sented in terms of CSP+T processes as a tuple SM =
(S,E ,B ,M , I , O , P ,Port), where:
• S is a finite set of processes
• E is a finite set of events
• B is a set of boolean expressions (guards)
• M is a set of marker variables
• I is a set of event–enabling intervals
• O is a set of operations
• Port is a finite set of port names
• A process relation P ⊆ S ×E × B × M ×I × O ×Port,
where (s,e,b, a,I,c,p) ∈ P, is denoted by
P = {b}I(T,t
1
).trigger(e) 1 a → (effect(c) → P
′
)
2
I(t
1
+ T) → Timeout
where:
– a = s(e) corresponds to the time stamp of occurrence
of the event e
– T is the max time, started from the time t
1
, in which
the process P wait for event e
– I(t
1
+ T) represent an instant of time.
– port : E + O → Port + {Int} is a function that as-
sociates to each event or operation x a port name in
Port according to a distinguished label Int which des-
ignates the type of event or effect, where:
∗ for all e ∈ E , if port(e) = Int then trigger(e) = e
else trigger(e) = port(e)
in
?e.
∗ for all c ∈ O , if port(c) = Int then effect(c) = c
else effect(c) = port(c)
out
!c.
The above definition is semantically coherent
with the one given by UML–RT w.r.t. the required
behaviour associated to the capsule, that is specified
according to CSP+T semantics. The capsule reacts
to the received signals through its ports and sends
signals through other ports too. Therefore, the def-
inition 2 is completed by definition 3 that is actually
a CSP+T extension of the CSP one in (Engels et al.,
2001b).
Definition 2 (Process view). Let SM =
(S ,E ,B ,M , I , O ,P,port) be a capsule SM, let
CSP + T(SM) be the process associated to SM, and
p ∈ Port. Define
E
′
= {I.p
′
in
?e | p
′
6= p} ∪ E
Int
and
O
′
= {p
′
out
!c | p
′
6= p} ∪ O
Int
.
Then, the process view with respect to the port p is defined
as V
p
(CSP+ T(SM)) = CSP+ T(SM) \ (E
′
∪ O
′
)
This definition uses the hiding (\) operator, de-
fined in section 3. The process CSP+ T(SM) \ (
E
′
∪
O
′
) behaves like the process CSP+T(SM) except that
all occurrences of the events in
E
′
∪
O
′
are hidden.
All these events are removed from the interface of
the process, since no other process are required to en-
gage in them, and thus the events become internal to
the process CSP + T(SM). The process view speci-
fies the events that occur in the capsule SM which are
of interest for a particular interaction or which are re-
ceived/sent from/to a particular port. In the definition
2, V
p
(CSP+ T(SM)) represents the view of the cap-
sule state machine CSP+ T(SM) from other capsule
SM connected to it through the port p.
The behavioural organisation of the structural el-
ements of UML–RT (mainly capsules) is specified
through Composite Structure Diagrams. The most
important aspect of this UML–RT diagram is that
reflects the compositional and concurrent aspects
of processes, which characterizes the dynamic be-
haviour of any system and becomes of paramount im-
portance for RTS. This composition is made of con-
nectors and ports, but UML–RT does not set anything
about the behaviour of connectors.
UML–RT settles down that every capsule SM is
associated to an event queue where input messages
are stored. Connectors are responsible for carrying
out the task of storing and ordering the events. We
define a extension of the uni–directional connector
with capacity n and non–blocking behaviour with
time constraints specification, as it follows:
Definition 3 (Connector). A connector is C =
(N,In,Out,M ,I) where:
• N is the capacity of the buffer
• In is the input channel
• Out is the output channel
• M is a set of marker variables
• I is a set of enabling intervals
• A buffer relation B ⊆ N × In × Out × M × I , where
ICEIS 2007 - International Conference on Enterprise Information Systems
208