18.2. Package

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

[Note]Note

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

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.

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 Bounds: field defines the bounding box for the package on the diagram.

Source

Standard tab. This contains a template package declaration appropriate to the entire package. In the future this would be part of the code generation activity.

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 Stereotype

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

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 periods.

[Note]Note

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

Stereotype

Drop down selector. Package is provided by default with the UML standard stereotypes for package ( facade, framework, metamodel, stub, topLevel, systemModel).

Navigate Stereotype

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

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 and stereotypes within the package.

Button??1 double click on any item listed here navigates to that artifact.