|Re: Sequence Diagram Graphical Elements Ordering [message #1392594 is a reply to message #1392400]
||Wed, 02 July 2014 15:05
| Pierre-Charles David
Registered: July 2009
Le 02/07/2014 14:29, Hera Margossian a écrit :|
> I am working on making a sequence diagram.
I guess you already found it, but just in case, the doc is at
You can find a (partial) example, created on UML, in
https://github.com/ObeoNetwork/UML-Designer. See the VSM in
From what I know it is not fully functional, but could be enough as a
A more complete example which exercices all the features supported by
Viewpoint (the previous name of Sirius) exists as part of Obeo Designer,
but it has not yet been ported to Sirius. You can get an evaluation
version of Obeo Designer at http://www.obeodesigner.com/ from which you
can get the corresponding VSM: import the content of the
"fr.obeo.sample.ecore.interactions.design" plug-in as source into your
workspace and look at the
> I am facing some problems
> regarding the ordering of the graphical elements. Both my Basic Messages
> and Executions appear on the same line. I understand that the Ends
> Ordering handles the vertical order, but what kind of expression should
> I provide it with?
The "Ends Ordering" property should a list of all the "event ends" on
your diagram, in the order you want them to appear (which must be
consistent, i.e. an execution can not end before it starts).
If you have defined Executions (resp. Messages), you have specified
"Starting End Finder Expression" and "Finishing End Finder Expression"
(resp. "Sending ... " and "Receiving ..." expressions for messages).
These return elements in your domain model that identify both ends of
The global "Ends Ordering" expression defined on the diagram itself
should return the same elements as the expressions above, for all the
executions and messages to show on your diagram, in the order of
occurrence (from top to bottom). See the diagrams inside the doc.
Note that a fully-functional sequence modeler must also define an Event
Reorder Tool, which is the dual of this "Ends Ordering" expression.
- The "Ends Ordering" tells Sirius how to layout your domain elements
relative to each other so that the graphical representation matches what
your domain model says.
- The reorder tool is invoked by Sirius when the user moves/resizes the
graphical elements in the diagram in a way that alters there relative
ordering. Your tool must react by updating your domain model to reflect
the changes requested by the user.
> I tried to return a List of the message and the
> execution semantic elements, but the problem persisted.
Your domain model must be able to identify separately the beginning and
end of messages and executions, to represent unambiguously all the
possible interleavings. That's why the global "Ends Ordering" must
return these "Starting/Finishing End Finder Expression" elements, and
not the "Semantic Candidate".
To illustrate the reason for this added complexity, if your domain model
only has one element to represent a Message m1 and one to represent an
Execution e1, giving Sirius an ordering like e1 < m1 would not allow it
to decide if m1 happens during e1 or after.
> Any help with my problem would be greatly appreciated.
I hope the above helped, but the concepts are rather difficult to
explain without resorting to illustrations, so don't hesitate to ask
more questions if I wasn't clear.
Powered by FUDForum
. Page generated in 0.01766 seconds