Previous | UML Classes | Table of Contents | UML Packages | Next |
The causality model is a specification of how things happen at run time and is described in detail in the Common Behaviors
chapter on page 437. It is briefly summarized here for convenience, using the example depicted in the communication diagram
in Figure 6.2. The example shows two independent and possibly concurrent threads of causally chained interactions. The first,
identified by the thread prefix ‘A’ consists of a sequence of events that commence with activeObject-1 sending signal s1 to
activeObject-2. In turn, activeObject-2 responds by invoking operation op1( ) on passiveObject-1 after which it sends signal
s2 to activeObject-3. The second thread, distinguished by the thread prefix ‘B,’ starts with activeObject-4 invoking operation
op2( ) on passiveObject-1. The latter responds by executing the method that realizes this operation in which it sends signal
s3 to activeObject-2.
The causality model is quite straightforward: Objects respond to messages that are generated by objects executing communication
actions. When these messages arrive, the receiving objects eventually respond by executing the behavior that is matched to
that message. The dispatching method by which a particular behavior is associated with a given message depends on the higher-level
formalism used and is not defined in the UML specification (i.e., it is a semantic variation point).
A.1: s1
A.3: s2 activeObject-1 activeObject-2 activeObject-3
A.2: op1 ( )
B.1.1: s3
B.1: op2 ( )
Figure 6.2 - Example illustrating the basic causality model of UML
The causality model also subsumes behaviors invoking each other and passing information to each other through arguments to
paramete
rs of the invoked behavior, as enabled by CallBehaviorAction (see CallBehaviorAction (from BasicActions ) on page 255). This
purely procedural or process model can be used by itself or in conjunction with the object-oriented model of the previous
example.