18.2.  Package

The package is the main organizational model element within ArgoUML. In the UML metamodel it is a sub-class of both Namespace and GeneralizableElement.

[Note]Note

ArgoUML also implements the UML Model model element as a sub-class of package, but not the Subsystem model element.

ArgoUML also implements some less common aspects of UML model management. In particular the relationship UML 1.4 defines as Generalization and the sub-class dependency Permission for use between packages.

18.2.1.  Package Details Tabs

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

ToDoItem

Standard tab.

Standard-Register.

Properties

See Section 18.2.2, “ Package Property Toolbar and Section 18.2.3, “ Property Fields For Package below.

Documentation

Standard tab. See Section 13.4, “ Documentation Tab.

Presentation

Standard tab. The editable Bounds field defines the bounding box for the package on the diagram.

Stereotype

Standard tab.

Tagged Values

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

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

    [Note]Note

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

18.2.2.  Package Property Toolbar

Go up

Navigate up through the package structure.

New Package

This creates a new package within the package (which appears on no diagram), navigating immediately to the properties tab for that package.

New Datatype

This creates a new Datatype (see Section 16.3, “ Datatype) for the selected package, navigating immediately to the properties tab for that datatype.

New Enumeration

This creates a new Enumeration (see Section 16.4, “ Enumeration) for the selected package, navigating immediately to the properties tab for that enumeration.

New Stereotype

This creates a new Stereotype (see Section 16.6, “ Stereotype) for the selected package, navigating immediately to the properties tab for that stereotype.

New Tag Definition

This creates a new tag definition (see Section 16.7, “ Tag Definition) within the package (which appears on no diagram), navigating immediately to the properties tab for that tagdefinition.

Delete Package

Deletes the package from the model.

[Warning]Warning

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

18.2.3.  Property Fields For Package

Name

Text box. The name of the package. The name of a package, like all packages, is by convention all lower case, not containing any punctuation marks.

[Note]Note

By default a new package has no name defined. The package will appear with the name (Unnamed Package) in the explorer.

Namespace

Drop down selector. Records the namespace for the package. This is the package hierarchy.

Visibility

Radio box, with four entries public, private, protected, and package. Indicates whether the package is visible outside the package.

Modifiers

Check box, with entries abstract, leaf and root.

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

    [Tip]Tip

    The meaning of abstract applied to a package if not that clear. It might mean that the package contains interfaces or abstract classes without realizations. This is probably better handled through stereotyping of the package (for example «facade»).

  • Leaf indicates that this package can have no further subpackages.

  • Root indicates that it is the top level package.

    [Tip]Tip

    Within ArgoUML Root only meaningfully applies to the Model, since all packages sit within the model. This could be used to emphasize that the Model is at the top level.

Generalizations

Text area. Lists any package that generalizes this package.

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

Specializations

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

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

Owned Elements

Text area. A listing of all the packages, classes, interfaces, datatypes, actors, use cases, associations, generalizations, stereotypes, etc. within the package.

Button 1 double click on any item listed here navigates to that model element.

Imported Elements

Text Area. A listing of all imported elements, i.e. elements that are owned by a different package, but are explicitely made visible in this package.

Button 1 double click on any item listed here navigates to that model element. Button 2 gives a pop up menu with the following entries.

  • Add. The “Add/Remove Imported Elements” window opens. In this window it is possible to build a list of imported elements.

  • Remove. Removes the import.