20.2. Classifier Role

A classifier role is a specialization of a classifier, used to show its behavior in a particular context. In the UML metamodel Classifier Role is a sub-class of Classifier. Within a collaboration diagram classifier roles may be used in one of two ways:

In this latter form, classifier roles are identical to the instances used in sequence diagrams (see Chapter 18, Sequence Diagram Artifact Reference) and a collaboration diagram shows the same information as the sequence diagram, but in a different presentation.

[Caution]Caution

A collaboration diagram should not mix classifier roles used as the specifier level and the instance level.

A classifier role is represented on a sequence diagram in ArgoUML as a plain box labeled with the classifier role name (if any) and classifier, separated by a colon (:).

[Caution]Caution

A classifier role should properly also show object name (if any) preceding the classifier role name and separated from it by a slash (/). This allows classifier roles in a specification level diagram to be distinguished from instances in an instance level diagram.

This distinction is not implemented in the current release of ArgoUML.

20.2.1. Classifier Role Details Tabs

The details tabs that are active for classifier roles are as follows.

ToDoItem

Standard tab.

Properties

See Section 20.2.2, “Classifier Role Property Toolbar” and Section 20.2.3, “Property Fields For Classifier Role” below.

Documentation

Standard tab.

Style

Standard tab.

Source

Standard tab, but with no contents.

[Caution]Caution

A classifier role should not generate any code, so having this tab active is probably a mistake.

Constraints

Standard tab. ArgoUML only supports constraints on Classes and Features (Attributes, Operations, Receptions, and Methods), so this tab is grayed out.

Tagged Values

Standard tab. In the UML metamodel, Classifier Role has the following standard tagged values defined.

  • persistence (from the superclass, Classifier. Showing the permanence of the state information associated with the classifier role. Values transitory (state is destroyed when the classifier role is destroyed) and persistent (state is preserved when the classifier role is destroyed).

  • semantics (from the superclass, Classifier). The value is a specification of the semantics of the classifier role.

  • derived (from the superclass, ModelElement). Values true, meaning the classifier role is redundant—it can be formally derived from other elements, or false meaning it cannot.

    [Note]Note

    Derived classifier roles still have their value in analysis and design to introduce useful names or concepts, and in design to avoid re-computation.

[Note]Note

The UML Element metaclass from which all other artifacts are derived includes the tagged element documentation which is handled by the documentation tab under ArgoUML

20.2.2. Classifier Role Property Toolbar

Go up

Navigate up through the package structure.

Delete

This deletes the classifier role from the model

[Warning]Warning

This is a deletion from the model not just the diagram. To delete an classifier role from the diagram, but keep it within the model, use the main menu Remove From Diagram (or press the Delete key).

20.2.3. Property Fields For Classifier Role

Name

Text box. The name of the classifier role. By convention classifier role names start with a lower case letter and use bumpy caps to divide words within the name.

[Note]Note

ArgoUML does not enforce this naming convention.

Stereotype

Drop down selector. Classifier Role is provided by default with the UML standard stereotypes for a classifier (metaclass, powerType, process, thread and utility).

Navigate Stereotype

icon. If a stereotype has been selected, this will navigate to the stereotype property panel (see Section 15.4, “Stereotype”).

Namespace

Text box. Records the namespace for the classifier role, which is always the containing Collaboration.

Button 1 double click on the entry will navigate to the collaboration.

Multiplicity

Drop down selector. The default value is *, which means that there are any number of instances of this classifierrole that play a role in the collaboration. The drop down provides some different multiplicities. E.g. 1..1 would mean that only one instance plays a role in this collaboration.

[Caution]Caution

ArgoUML restricts you to a number of predefined ranges for multiplicity. There is no way to give a user defined range: typing something different seems to work, but the entered value is not remembered.

Base

List. The names of the classifiers of which this is a classifierrole. Button 1 double click navigates to the classifier. Button 2 click gives a pop up menu with the following entries.

  • Add. Allows adding or removeing classifiers to the list. To this end, a dialog box pops up, as shown in the figure below.

    Figure 20.2. The “add context” dialog box

    The add context dialog box

Generalizations

Text area. Lists any classifierrole that generalizes this classifierrole.

Button 1 double click navigates to the generalization and opens its property tab.

Specializations

Text box. Lists any specialized classifierrole (i.e. for which this classifierrole is a generalization.

button 1 double click navigates to the generalization and opens its property tab.

Association End Role

Text area. Lists the association roles that are linked to this classifier role.

Button 1 double click navigates to the selected entry.

Available Contents

Text area. Lists the subset of modelelements contained in the base classifier which is used in the collaboration.

Button 1 double click navigates to the modelelement and opens its property tab.

[Caution]Caution

ArgoUML V0.14 does not seem to provide a way to add anything in the list here.

Available Features

Text box. Lists the subset of features of the base classifier which is used in the collaboration.

button 1 double click navigates to the feature and opens its property tab.

[Caution]Caution

ArgoUML V0.14 does not seem to provide a way to add anything in the list here.