12.4.  The tool bar

The toolbar at the top of the editing pane provides the main functions of the pane. The default tool is the Select tool (). In general button 1 click on any tool selects a tool for one use, before reverting to the default tool, and button 1 double click selects a tool for repeated use.

The tools fall into four categories.

Some of the tools that are generally not all used so often, are combined in a dropdown, to take less space on the toolbar. See e.g. Figure 12.3, “ The drawing tools selector.. Press the symbol at the right of the tool to pop it open. These drop-down tools remember their last used tool persistently. This means that when ArgoUML starts, they show the last tool that was activated the previous time ArgoUML was run.

12.4.1.  Layout Tools

The following two tools are provided in all diagrams in this category.

  • Select. This tool provides for general selection of model elements on the diagram. Button 1 click will select a model element. CTRL with button 1 can be used to select (or deselect) multiple model elements. Button 1 motion will move selected 2D items or add and move a new control point on a link. Button 1 motion on a selected component's control point will stretch that component's shape.

  • Broom. Button 1 motion with this tool provide a “broom” which will sweep all model elements along. This is a very shortcut way of lining things up.

    The Broom can also be invoked by using ALT or ALT-GR with button 1 motion when the Select tool is in use.

    The Broom is discussed at length in its own chapter, see Section 12.5, “ The Broom

[Tip]Tip

Additional control of model element layout is provided through the Arrange menu (see Section 10.7, “ The Arrange Menu).

12.4.2.  Annotation Tools

The annotation tool Comment ( ) is used to add a comment to a selected UML model element.

[Caution]Caution

Unlike most other tools you use the Select tool to select a model element, and then button 1 click on Comment to create the comment. If no element is selected when the comment tool is clicked, then the comment is created and put at the left top corner.

The comment is created alongside the selected model element, empty by default. The text can be selected with button 1 double-click and edited from the keyboard.

The UML standard allows comments to be attached to any model element.

You can link any comment to aditional elements using the CommentLink ( ) tool.

12.4.3.  Drawing Tools

These are a series of tools for providing graphical additions to diagrams. Although they are not UML model elements, the UML standard provides for such decoration to improve the readability of diagrams.

[Tip]Tip

These drawing tools provide a useful way to partially support some of the UML features (such as general purpose notes) that are missing from the current release of ArgoUML.

Eight tools are provided, all grouped into one drop-down widget. See Figure 12.3, “ The drawing tools selector.. Button 1 click on the diagram will place an instance of the graphical item of the same size as the last one placed. The size can be controlled by button 1 motion during placement. One side or end of the element will be at button 1 down, the other side or end at button 1 up. In general after they are placed on the diagram, graphical elements can be dragged with the Select tool and button 1 and re-sized by button 1 motion on the handles after they have been selected.

Figure 12.3.  The drawing tools selector.

The drawing tools selector.

  • Rectangle. Provides a rectangle.

  • Rounded Rectangle. Provides a rectangle with rounded corners. There is no control over the degree of rounding.

  • Circle. Provides a circle.

  • Line. Provides a line.

  • Text. Provides a text box. The text is entered by selecting the box and typing. Text is centered horizontally and after typing, the box will shrink to the size of the text. However it can be re-sized by dragging on the corners.

  • Polygon. Provides a polygon. The points of the polygon are selected by button 1 click and the polygon closed with button 1 double click (which will link the final point to the first point).

  • Spline. Provide an open spline. The control points of the spline are selected with button 1 and the last point selected with button 1 double click.

  • Ink. Provide a polyline. The points are provided by button 1 motion.

12.4.4.  Use Case Diagram Specific Tools

Several tools are provided specific to UML model elements on use case diagrams. The detailed properties of these model elements are described in the section on use case diagram model elements (see Chapter 17, Use Case Diagram Model Element Reference ).

  • Actor. Add an actor to the diagram. For convenience, when the mouse is over a selected actor it displays two handles to left and right which may be dragged to form association relationships.

  • Use Case. Add a use case to the diagram. For convenience, when the mouse is over a selected use case it displays two handles to left and right which may be dragged to form association relationships and two handles top and bottom which may be dragged to form generalization and specialization relationships respectively.

  • Association. Add an association between two model elements selected using button 1 motion (from the first model element to the second). There are 6 types of association offered here, see Figure 12.4, “ The association tool selector.: association, aggregation and composition, and all these three can be bidirectional or unidirectional.

    Figure 12.4.  The association tool selector.

    The association tool selector.

  • Dependency. Add a dependency between two model elements selected using button 1 motion (from the dependent model element).

  • Generalization. Add a generalization between two model elements selected using button 1 motion (from the child to the parent).

  • Extend. Add an extend relationship between two model elements selected using button 1 motion (from the extended to the extending use case).

  • Include. Add an include relationship between two model elements selected using button 1 motion (from the including to the included use case).

  • Add Extension Point. Add an extension point to a selected use case. The extension point is given the default name newEP and location loc. Where the extension point compartment is displayed, the extension point may be edited by button 1 double click and using the keyboard, or by selecting with button 1 click (after the use case has been selected) and using the property tab. Otherwise it may be edited through its property tab, selected through the property tab of the owning use case.

    [Note]Note

    This tool is grayed out except when a use case is selected.

12.4.5.  Class Diagram Specific Tools

Several tools are provided specific to UML model elements on class diagrams. The detailed properties of these model elements are described in the section on class diagram model elements (see Chapter 18, Class Diagram Model Element Reference ).

  • Package. Add a package to the diagram.

  • Class. Add a class to the diagram. For convenience, when the mouse is over a selected class it displays two handles to left and right which may be clicked or dragged to form association relationships (or composition in case SHIFT has been pressed) and two handles top and bottom which may be dragged or clicked to form generalization and specialization relationships respectively.

  • Association. Add an association between two model elements selected using button 1 motion (from the first model element to the second). There are 2 types of association offered here, bidirectional or unidirectional.

  • Aggregation. Add an aggregation between two model elements selected using button 1 motion (from the first model element to the second). There are 2 types of aggregation offered here, bidirectional or unidirectional.

  • Composition. Add an composition between two model elements selected using button 1 motion (from the first model element to the second). There are 2 types of composition offered here, bidirectional or unidirectional.

  • Association-end. Add another end to an already existing association using button 1 (from the association middle to a class, or vice versa). This is the way to create so-calld N-ary associations.

  • Generalization. Add a generalization between two model elements selected using button 1 (from the child to the parent).

  • Interface. Add an interface to the diagram. For convenience, when the mouse is over a selected interface it displays a handle at the bottom which may be dragged to form a realization relationship (the target being the realizing class).

  • Realization. Add a realization between a class and an interface selected using button 1 motion (from the realizing class to the realized interface).

  • Dependency. Add a dependency between two model elements selected using button 1 motion (from the dependent model element). There are also 2 special types of dependency offered here, Permission ( ) and Usage ( ). A Permission is created by default with stereotype Import, and is used to import elements from one package into another.

  • Attribute. Add a new attribute to the currently selected class. The attribute is given the default name newAttr of type int and may be edited by button 1 double click and using the keyboard, or by selecting with button 1 click (after the class has been selected) and using the property tab.

    [Note]Note

    This tool is grayed out except when a class is selected.

  • Operation. Add a new operation to the currently selected class or interface. The operation is given the default name newOperation with no arguments and return type void and may be edited by button 1 double click and using the keyboard, or by selecting with button 1 click (after the class has been selected) and using the property tab.

    [Note]Note

    This tool is grayed out except when a class or interface is selected.

  • Association Class. Add a new association class between two model elements selected using button 1 motion (from the first model element to the second).

  • Datatype. Add a datatype to the diagram. For convenience, when the mouse is over a selected datatype it displays handles at the top and at the bottom which may be clicked or dragged to form a generalization relationship (the target being another datatype). There are 2 other elements available here, Enumeration and Stereotype. These two have similar handles, except the one at the top of a stereotype: when clicked, it creates a metaclass, connected by a dependency marked with «stereotype». This eases the creation of "stereotype declaration" diagrams - see the literature on the subject.

12.4.6.  Sequence Diagram Specific Tools

Seven tools are provided specific to UML model elements on sequence diagrams. The detailed properties of these model elements are described in the section on sequence diagram model elements (see Chapter 19, Sequence Diagram Model Element Reference ).

  • ClassifierRole. Add a classifierrole to the diagram.

  • Message with Call Action. Add a call message between two classifierroles selected using button 1 motion (from the originating classifierrole to the receiving classifierrole).

  • Message with Return Action. Add a return message between two classifierroles selected using button 1 motion (from the originating classifierrole to the receiving classifierrole).

  • Message with Create Action. Add a create message between two classifierroles selected using button 1 motion (from the originating classifierrole to the receiving classifierrole).

  • Message with Destroy Action. Add a destroy message between two classifierroles selected using button 1 motion (from the originating classifierrole to the receiving classifierrole).

  • Add Vertical Space to Diagram. Add vertical space to a diagram by moving all messages below this down. Click the mouse at the point where you want the space to be added and drag down the screen vertically the distance which matches the height of the space you'd like to have added.

  • Remove Vertical Space in Diagram. Remove vertical space from diagram and move all elements below up vertically. Click and drag the mouse vertically over the space that you want deleted.

12.4.7.  Collaboration Diagram Specific Tools

Three tools are provided specific to UML model elements on collaboration diagrams. The detailed properties of these model elements are described in the section on collaboration diagram model elements (see Chapter 21, Collaboration Diagram Model Element Reference ).

  • Classifier Role. Add a classifier role to the diagram.

  • Association Role. Add an association role between two classifier roles selected using button 1 motion (from the originating classifier role to the receiving classifier role). There are 6 types of association roles offered here, see Figure 12.4, “ The association tool selector.: association, aggregation and composition, and all these three can be bidirectional or unidirectional.

  • Generalization. Add a generalization between two model elements selected using button 1 (from the child to the parent).

  • Dependency. Add a dependency between two model elements selected using button 1 motion (from the dependent model element).

  • Add Message. Add a message to the selected association role.

    [Note]Note

    This tool is grayed out except when an association role is selected.

12.4.8.  Statechart Diagram Specific Tools

Eleven tools are provided specific to UML model elements on statechart diagrams. The detailed properties of these model elements are described in the section on statechart diagram model elements (see Chapter 20, Statechart Diagram Model Element Reference ).

  • Simple State. Add a simple state to the diagram.

  • Composite State. Add a composite state to the diagram. All model elements that are subsequently placed on the diagram on top of the composite state will form part of that composite state.

  • Transition. Add a transition between two states selected using button 1 motion (from the originating state to the receiving state).

  • Synch State. Add a synchstate to the diagram.

  • Submachine State. Add a submachinestate to the diagram.

  • Stub State. Add a stubstate to the diagram.

  • Initial. Add an initial pseudostate to the diagram.

    [Caution]Caution

    There is nothing to stop you adding more than one initial state to a diagram or composite state. However to do so is meaningless, and one of the critics will complain.

  • Final State. Add a final state to the diagram.

  • Junction. Add a junction pseudostate to the diagram.

    [Caution]Caution

    A well formed junction should have at least one incoming transition and at least one outgoing. ArgoUML does not enforce this, but an ArgoUML critic will complain about any junction that does not follow this rule.

  • Choice. Add a choice pseudostate to the diagram.

    [Caution]Caution

    A well formed choice should have at least one incoming transition and at least one outgoing. ArgoUML does not enforce this, but an ArgoUML critic will complain about any choice that does not follow this rule.

  • Fork. Add a fork pseudostate to the diagram.

    [Caution]Caution

    A well formed fork should have exactly one incoming transition and two or more outgoing. ArgoUML does not enforce this, but an ArgoUML critic will complain about any fork that does not follow this rule.

  • Join. Add a join pseudostate to the diagram.

    [Caution]Caution

    A well formed join should have exactly one outgoing transition and two or more incoming. ArgoUML does not enforce this, but an ArgoUML critic will complain about any join that does not follow this rule.

  • Shallow History. Add a shallow history pseudostate to the diagram.

  • Deep History. Add a deep history pseudostate to the diagram.

  • Call Event. Add a Call Event as trigger to a transition. There are 4 types of events offered here: Call Event, Change Event, Signal Event and Time Event.

  • Guard. Add a guard to a transition.

  • Call Action. Add a call action (i.e. the effect) to a transition. There are 7 types of actions offered here: Call Action, Create Action, Destroy Action, Return Action, Send Action, Terminate Action, Uninterpreted Action and Action Sequence.

12.4.9.  Activity Diagram Specific Tools

Seven tools are provided specific to UML model elements on activity diagrams. The detailed properties of these model elements are described in the section on activity diagram model elements (see Chapter 22, Activity Diagram Model Element Reference ).

  • Action State. Add an action state to the diagram.

  • Transition. Add a transition between two action states selected using button 1 motion (from the originating action state to the receiving action state).

  • Initial. Add an initial pseudostate to the diagram.

    [Caution]Caution

    There is nothing to stop you adding more than one initial state to a diagram. However to do so is meaningless, and one of the critics will complain.

  • Final State. Add a final state to the diagram.

  • Junction. Add a junction (decision) pseudostate to the diagram.

    [Caution]Caution

    A well formed junction should have one incoming transition and two or more outgoing. ArgoUML does not enforce this, but an ArgoUML critic will complain about any junction that does not follow this rule.

  • Fork. Add a fork pseudostate to the diagram.

    [Caution]Caution

    A well formed fork should have one incoming transition and two or more outgoing. ArgoUML does not enforce this, but an ArgoUML critic will complain about any fork that does not follow this rule.

  • Join. Add a join pseudostate to the diagram.

    [Caution]Caution

    A well formed join should have one outgoing transition and two or more incoming. ArgoUML does not enforce this, but an ArgoUML critic will complain about any join that does not follow this rule.

  • CallState. Add a callstate to the diagram. A call state is an action state that calls a single operation. Hence, the name of the operation being called is put in the symbol, along with the name of the classifier that hosts the operation in parentheses under it.

  • ObjectFlowState. Add a objectflowstate to the diagram. An objectflowstate is an object that is input to or output from an action.

12.4.10.  Deployment Diagram Specific Tools

Ten tools are provided specific to UML model elements on deployment diagrams. The detailed properties of these model elements are described in the section on deployment diagram model elements (see Chapter 23, Deployment Diagram Model Element Reference ).

[Note]Note

Remember that ArgoUML's deployment diagrams are also used for component diagrams.

  • Node. Add a node to the diagram. For convenience, when the mouse is over a selected node it displays four handles to left, right, top and bottom which may be dragged to form association relationships.

  • Node Instance. Add a node instance to the diagram. For convenience, when the mouse is over a selected node instance it displays four handles to left, right, top and bottom which may be dragged to form link relationships.

  • Component. Add a component to the diagram. For convenience, when the mouse is over a selected component it displays four handles to left, right, top and bottom which may be dragged to form dependency relationships.

  • Component Instance. Add a component instance to the diagram. For convenience, when the mouse is over a selected component instance it displays four handles to left, right, top and bottom which may be dragged to form dependency relationships.

  • Generalization. Add a generalization between two model elements selected using button 1 (from the child to the parent).

  • Realization. Add a realization between a class and an interface selected using button 1 motion (from the realizing class to the realized interface).

  • Dependency. Add a dependency between two model elements selected using button 1 motion (from the dependent model element).

  • Association. Add an association between two model elements (node, component, class or interface) selected using button 1 motion (from the first model element to the second model element). There are 6 types of association offered here, see Figure 12.4, “ The association tool selector.: association, aggregation and composition, and all these three can be bidirectional or unidirectional.

    [Caution]Caution

    The constraint that associations between classes and interfaces must not be navigable from the interface still applies on deployment diagrams.

  • Object. Add an object to the diagram. For convenience, when the mouse is over a selected object it displays four handles to left, right, top and bottom, which may be dragged to form link relationships.

  • Link. Add a link between two model elements (node instance, component instance or object) selected using button 1 motion.