Association Properties

You can modify an object's properties from its property sheet. To open an association property sheet, double-click its diagram symbol or its Browser entry in the Associations folder. The following sections detail the property sheet tabs that contain the properties most commonly entered for associations.

The General tab contains the following properties:

Property

Description

Name

Specifies the name of the item, which should be clear and meaningful, and should convey the item's purpose to non-technical users.

Code

Specifies the technical name of the object, which is used for generating code or scripts.

Comment

Descriptive comment for the object.

Stereotype

Extends the semantics of the object beyond the core UML definition. <<implicit>> means that the relationship is not manifest, it is only conceptual

Class A/Class B

Specifies the classes at each end of the association. Use the tools to the right of the list to create, browse for, or view the properties of the currently selected class.

Type

Specifies the type of association. You can choose between:
  • Association

  • Aggregation – a part-whole relationship between a class and an aggregate class

  • Composition – a form of aggregation but with strong ownership and coincident lifetime of parts by the whole

Container

If the association is an aggregation or a composition, the container radio buttons let you define which class contains the other in the association

Association Class

Class related to the current association that completes the association definition

Detail Tab

Each end of an association is called a role. You can define its multiplicity, persistence, ordering and changeability. You can also define its implementation.

Property

Description

Role name

Name of the function of the class as viewed by the opposite class

Visibility

Specifies the visibility of the association role, how it is seen outside its enclosing namespace. When the role of an association is visible to another object, it may influence the structure or behavior of the object, or similarly, the other object can affect the properties of the association. You can choose between:
  • Private – only to the object itself

  • Protected – only to the object and its inherited objects

  • Package – to all objects contained within the same package

  • Public – to all objects (option by default)

Multiplicity

The allowable cardinalities of a role are called multiplicity. Multiplicity indicates the maximum and minimum cardinality that a role can have. You can choose between:
  • 0..1 – zero or one

  • 0..* – zero to unlimited

  • 1..1 – exactly one

  • 1..* – one to unlimited

  • * – none to unlimited

An extended attribute exists for each role of an association. It allows you to choose how the association should be implemented. They are available in your current object language, from the Profile\Association\ExtendedAttributes category, under the 'roleAContainer' and 'roleBContainer' names. Such extended attributes are pertinent only for a 'many' multiplicity (represented by *), they provide a definition for collections of associations.

For more information on the object language, see the Resource Files and the Public Metamodel chapter in the Customizing and Extending PowerDesigner manual.

Array size

Specifies an accurate array size when the multiplicity is greater than 1.

Changeability

Specifies if the set of links related to an object can be modified once the object has been initialized. You can choose between:
  • Changeable – Associations may be added, removed, and changed freely

  • Read-only – You are not allowed to modify the association

  • Frozen – Constant association

  • Add-only – New associations may be added from a class on the opposite end of the association

Ordering

The association is included in the ordering which sorts the list of associations by their order of creation. You can choose between:
  • Sorted – The set of objects at the end of an association is arranged according to the way they are defined in the model

  • Ordered – The set of objects at the end of an association is arranged in a specific order

  • Unordered – The end of an association is neither sorted nor ordered

Initial value

Specifies an instruction for initializing migrated attributes, for example 'new client ()'.

Navigable

Specifies that information can be transmitted between the two objects linked by the relationship.

Persistent

Specifies that the instance of the association is preserved after the process that created this instance terminates.

Volatile

Specifies that the corresponding migrated attributes are not members of the class, which is only defined by the getter and setter operations.

Container type

Specifies a container collection for migrated attributes of complex types.

Implementation class

Specifies the container implementation (see Association Implementation).

Migrated attribute

Specifies the name of the migrated association role.