21.4. Component

A component is a physical part of the system (source code, object code, database, library, documentation) that realizes a set of interfaces. In the UML metamodel it is a sub-class of Classifier.

A component is represented on a class diagram as a box with two small rectangles protruding from its left side, labeled with its name.

21.4.1. Component Details Tabs

The details tabs that are active for components are as follows.

ToDoItem

Standard tab.

Properties

See Section 21.4.2 and Section 21.4.3 below.

Documentation

Standard tab.

Style

Standard tab. The Bounds: field defines the bounding box for the component on the diagram.

Warning

When typing or making any other change to a component on the diagram, its left edge will jump to the left.

Source

Standard tab, but with no contents.

Caution

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

Constraints

Standard tab. There are no standard constraints defined for Component within the UML metamodel.

Tagged Values

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

  • persistence (from the superclass, Classifier). Values transitory, indicating state is destroyed when an instance is destroyed or persistent, marking state is preserved when an instance is destroyed.

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

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

    Note

    Derived components may have value to indicate that the component represents an optimization.

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

21.4.2. Component Property Toolbar

Go up

Navigate up through the package structure.

Go back

Navigate back to the previous artifact.

Warning

This feature is currently broken within ArgoUML and there is no guarantee where (if anywhere) this button will take you.

Go forward

Navigate forward to the next artifact.

Warning

This feature is currently broken within ArgoUML and there is no guarantee where (if anywhere) this button will take you.

Delete

This deletes the component from the model

Warning

This is a deletion from the model not just the diagram. To delete a component from the diagram, but keep it within the model, use the main menu Edit/Remove From Diagram (Ctrl-R).

21.4.3. Property Fields For Component

Name

Text box. The name of the component. The name of a component has a leading capital letter, with words separated by “bumpy caps”.

Note

ArgoUML does not enforce this naming convention.

Stereotype

Drop down selector. Package is provided by default with the UML standard stereotypes for component (document, executable, file, library and table). ArgoUML also provides the stereotypes, machine, organization and person.

Caution

ArgoUML also provides the stereotype realize for components. This appears to be an error, since this stereotype properly belongs to the Abstraction metaclass.

Warning

Component is a type of classifier, and should be provided with the stereotypes for a classifier, however these are missing in the current release of ArgoUML.

Navigate Stereotype

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

Namespace

Text box. Records the namespace for the component. This is the package hierarchy.

Button 1 click on the entry will navigate to the package defining this namespace (or the model for the top level namespace).

Extends

Text box. Lists any component that generalizes this component.

Caution

ArgoUML is incorrect in using the designation “Extends” for this field. It should correctly be called “Generalizations”.

Button 1 click navigates to the selected entry, button 2 gives a pop up menu with five entries.

  • Open. Navigate to the selected generalization.

  • Add. Add a new generalization.

    Caution

    In the current release of ArgoUML generalizations of components are not properly implemented. This button will add a generalization, named null with no parent, that can not be added to the diagram. Its value is somewhat limited!

  • Delete. Removes the link to the selected generalization.

  • Move Up. Only available where there are two or more generalizations, and the generalization selected is not at the top. It is moved up one.

  • Move Down. Only available where there are two or more generalizations listed, and the generalization selected is not at the bottom. It is moved down one.

Modifiers

Check box, with entries abstract, final and root.

  • abstract is used to declare that this component cannot be instantiated, but must always be specialized.

  • final indicates that this component cannot be further specialized.

  • root indicates the node can have no generalization.

Derived

Text area. Lists any derived components, i.e those for which this component is a generalization.

Caution

ArgoUML is incorrect in using the designation “Derived” for this field. It should correctly be called “Specializations”.

Button 1 click navigates to the selected entry, button 2 gives a pop up menu with one entry.

  • Open. Navigate to the selected specialization.

    Caution

    In the current release of ArgoUML generalizations of components are not properly implemented, and this button is always grayed out.