Package org.argouml.uml.diagram.sequence

Provides a Sequence diagram capability.

See:
          Description

Class Summary
MessageNode A Message Node for the sequence diagram.
SequenceDiagramGraphModel This class defines a bridge between the UML meta-model representation of the design and the GraphModel interface used by GEF.
 

Package org.argouml.uml.diagram.sequence Description

Provides a Sequence diagram capability.

Summary

A historical note: ArgoUml's Sequence diagrams now have had 3+ implementations: pre- 0.14, an incomplete 0.14 thru 0.18 implementation, which inspired an implementation by the current author, which was introduced in the 0.19 timeframe. There is also some code implemented by Peter Nabbefeld, this is described in the section: 'work_sdnested_epdv Branch Implementation'.

Sequence diagrams are different from the other diagrams in that:

PRE-0.14 Implementation

To Do

To Do

To Do

work_sdnested_epdv BRANCH Implementation

To Do

To Do

To Do

0.14 Implementation

To Do

To Do

To Do

0.19 Implementation

The model is updated at the specification level; the object lifetimes in the sequence diagram are associated with ClassifierRoles; the edges are Messages. Each message is associated with an action, which may be Call, Create, Destroy, or return. For the model to serialize correctly, the actions have to be associated with a state; a state in a state diagram for the model is created for each message.

Each FigClassifierRole create a FigMessagePort fig at every point that it sends and receives a message. The FigMessagePort objects are associated with the FigEdge objects by their Y position; this is how the diagram is re-connected and the messages positioned when the diagram is loaded. The PGMLStackParser pgml implementation lets FigClassifierRole control loading itself; otherwise, the FigMessagePort object positions would be ignored.

Each FigClassifierRole contains an array of MessageNode objects that designate a port--a point where a message can be sent or received. The array stretches the length of the lifeline. When a message is actually created, each end is associated with a FigMessagePort that is itself associated with a MessageNode in each FigClassifierRole. When drawing the activation boxes, the array of MessageNode objects is traversed by a state machine; sending or receiving a message triggers a change of state that may start or end an activation box. The state that is associated with each node also determines the messages that may be sent or received there.

Related Documentation:

Issues



ArgoUML © 1996-2006ArgoUML HomepageArgoUML Developers' pageArgoUML Cookbook