Diagram Elements and Mapping to Model Elements
The sequence diagram maps onto a single collaboration.
There are 2 required specialist top level diagram elements (Figs)
FigClassifierRole and FigMessage
FigClassifierRole represents a classifierrole in the model. It's
composite diagram elements will be FigLifeLine and FigHead
FigMessage represents a message between two classifier roles in the
model (or a self message back to the same classifier role).
Suggested composite structure of FigClassifierRole
The y co-ordinate a FigHead within FigClassifierRole is zero unless
there is an incoming FigMessage[Create]. In this case the FigHead is
positioned so that the first incoming FigMessage[Create] is the centre
of FigHead (see fig 89 of UML1.4.2 spec).
FigHead will be composed of either FigHeadObject or FigHeadActor.
FigHeadActor will only be used if their is a classifier attached of
type actor.
FigLifeLine will be a transparent rectangle displayed immediately
below FigHead. It will contain a single dashed line down from the top
and a variable number of FigActivations. The dashed line ends at the
end of the FigLifeLine or at the last outgoing
FigMessage[DestroyAction]
FigActivations are created and modified dynamically when the user adds, removes
repositions an incoming or outgoing message.
An X at the end of a FigActivation respresentats destruction of that instance.
The algorithm for creating FigActivations on a FigLifeLine is -
TBD
Modes and Selections for user interaction
A specialist Mode is required for drawing a FigMessage. This will not
allow the source end to move while drawing. When placing the
destination end on another FigClassifierRole the edge should snap to a
horizontal line if the height difference is within n pixels. Otherwise the
message edge should be placed at the diagonal angle gestured by the user
(see fig 88 of UML1.4.2 spec).
It should also be possible to click on the diagram to insert a vertex
point before directing the message back to the original
FigClassifierRole or to some other.
Dragging FigClassifierRoles should be limited to the horizontal plane.
Resizing the height of one FigClassifierRole should resize the height of all
but it should not be possible to resize so that any FigMessage is forced to
move.
It should be possible to drag a FigMessages up and down with such a drag
forcing reposition or rebuilding of FigActivations.
Assumptions
It is not possible to reassign a different action to an existing message.
|