FYI about the sequence
diagram editor.
Dr. Sébastien Gérard
Head of MDD for DRES
research project
CEA LIST, Laboratoire d’Ingénierie
dirigée par les modèles pour les Systèmes Embarqués (LISE)
Boîte courrier 94, GIF SUR YVETTE
CEDEX, F-91191 France
Phone/fax : +33 1 69 08 58
24 / 83 95
Leader of the Eclipse Component
Papyrus (The UML2 Graphical Modeler): www.papyrusuml.org
http://www.eclipse.org/modeling/mdt/?project=papyrus
Before printing, think
about the environment
De : Nerijus
Jankevicius [mailto:nerijus@xxxxxxxxxxx]
Envoyé : mardi 9 mars 2010
17:48
À : uml2-rtf@xxxxxxx
Cc :
model-interchange@xxxxxxx
Objet : Fw: MessageEvents
Could you guys shed some light in this area?
Every tool vendor has different ideas (and
implementation) what event types should be used at message ends for call
message, reply message, create message or destroy message.
Thanks,
--
Nerijus Jankevicius
SysML Product Manager
OMG-Certified UML Professional
No Magic Europe
Savanoriu pr. 363, LT 49425 Kaunas, Lithuania
P.O. box 2166, LT- 3000, Kaunas
Phone: +370-37-324032 Fax: +370-37-320670
e-mail: nerijus@xxxxxxxxxxxxx
WWW: http://www.magicdraw.com
--
MagicDraw - Architecture made simple!
----- Original Message -----
Sent: Tuesday, March 09,
2010 11:49 AM
Hi Everybody,
I would like to start a discussion concerning message
events, and my interpretation of this situation.
The first case to study should be the cOperation1 and
its reply message denoted by this picture:
![](jpgOzHxtPysj2.jpg)
cOperation1 is
a message with a event (1) sent,
and event(2) receipted.
Then there is a ExecutionSpecification with start
Occurrence (3) and a finish
Occurrence (4).
Finally cOperation1, the reply message with an event (5) sent and an event (6) receipted.
First some definitions from UML2.2 spec:
SendOperationEvent:
- Description:
A SendOperationEvent models the invocation of an
operation call.
- Semantic:
A send operation event specifies the sending of a
request to invoke a specific operation on an object. The send operation
event may result in the occurrence of a call event in
the receiver object (…).
ReceiveOperationEvent:
-Description:
This specifies the event of receiving an operation
invocation for a particular operation by the target entity.
-Semantic:
A receive operation event occurs when an operation
invocation is received by the target object.
CallEvent:
-Description:
A call event represents the reception of a request to
invoke a specific operation.(…)
-Semantic:
A call event represents the reception of a request to
invoke a specific operation on an object.(…) A call event makes available any argument values
carried by the received call request to all behaviors caused by this
Event(…).
ExecutionEvent:
-Description:
An ExecutionEvent models the start or finish of an
execution occurrence.
-Semantics:
An execution event represents the start or finish of
the execution of an action or a behavior.
My understanding:
At (1)
bb:B requests for the invocation of cOperation1, so SendOperationEvent seems the best element.
At (2) cc:C
receipts this request, here the best definition is the one of CallEvent.
Concerning (3)
and (4) I have some doubts:
In the UML2.2 specification:
An ExecutionSpecification
is a specification of the execution of a unit of behavior or action within the
Lifeline. The
duration of an
ExecutionSpecification is represented by two ExecutionOccurrenceSpecifications,
the start
ExecutionOccurrenceSpecification
and the finish ExecutionOccurrenceSpecification.
è It
means that ExecutionSpecification.start and ExecutionSpecification.finish
should be ExecutionOccurrenceSpecification.
So why it is just typed to OccurenceSpecification?
In the other way the semantic says:
Typically the
start occurrence and the finish occurrence will represent
OccurrenceSpecifications such as a
receive
OccurrenceSpecification (of a Message) and the send OccurrenceSpecification (of
a reply Message).
è Here it
seems that it should be the MessageOccurrenceSpecification.
My understanding for (3) and (4)
The ExecutionSpecification starts/finishes with a
ExecutionOccurenceSpecifications which represent the receive/send
MessageOccurenceSpecification of cOperation1/itsReply
That would mean the ExecutionOccurrenceSpecification
will share the same event that the MessageOccurrenceSpecification. But in fact
no : the Event of an ExecutionOccurrenceSpecification is restricted to
ExecutionEvent:
è No
direct relationship between (2)
and (3), and between (4) and (5)
è (3) is an ExecutionOccurenceSpecification
with event=ExecutionEvent
è (4) is an ExecutionOccurenceSpecification
with event=ExecutionEvent
At (5) the
invocation is done. Which event to set to (5)?
My choice will be the ExecutionEvent of (4) saying
that the execution is finished. But in fact, this point does seem clear for me.
At (6) bb:B
should receive the result of the invocation. Here is really not clear too, so I
made an own interpretation of the “ReceiveOperationEvent” which
would mean “the reception of the (resulting) operation invocation.
è By this
way I resolve the (6) issue, but I
possibly misunderstand the definition…
Any comments?
It does not resolve other questions about how to
manage CreationEvent and DestructionEvent.
Thanks,
Mickael