Association Properties

To view or edit an association's properties, double-click its diagram symbol or Browser or list entry. The property sheet tabs and fields listed here are those available by default, before any customization of the interface by you or an administrator.

The General tab contains the following properties:

Property

Description

Name/Code/Comment

Identify the object. The name should clearly convey the object's purpose to non-technical users, while the code, which is used for generating code or scripts, may be abbreviated, and should not normally include spaces. You can optionally add a comment to provide more detailed information about the object. By default the code is generated from the name by applying the naming conventions specified in the model options. To decouple name-code synchronization, click to release the = button to the right of the Code field.

Stereotype

Extends the semantics of the object beyond the core UML definition. You can enter a stereotype directly in this field, or add stereotypes to the list by specifying them in an extension file.

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

Keywords

Provide a way of loosely grouping objects through tagging. To enter multiple keywords, separate them with commas.

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, see Customizing and Extending PowerDesigner > Object, Process, and XML Language Definition Files.

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.