Relationships

Relationships represent the existence of a logical connection between entities, be it classes in the class diagram, components in the component diagram or any other two elements. This chapter does not provide a complete list of all existing UML relationships. It only serves as a reference to the relationships which are frequently used throughout the Effective Analysis. A more comprehensive description could be found on Wikipedia, for instance.

Association

Association represents a relationship between two associated entities.

aa

The association above illustrates that the customer can place multiple orders, but it is also possible to have a customer who has not placed any order yet. The order always belongs only to the customer who placed it.

Composition

A composition is a "strong" type of association representing a more tight relationship between the whole and its parts. If the part is connected with the whole using composition, the parts cannot be shared with other wholes. For example, a module associated with the system belongs exclusively to this system and cannot be part of any other system.

aa

Aggregation

An aggregation represents a weaker association than composition as the parts connected to the whole using aggregation can be shared among multiple wholes. For example, computer peripherals such as mouse or keyboard could be taken out from one computer and plugged-in to another computer.

aa

Dependency

Dependency is a relationship between two entities, indicating that changing one entity might affect the other. Dependencies describe what possibly could break if we change something, so recorded dependencies significantly streamline the process of an impact analysis.

aa

For example, knowing that the Eshop system is dependent on the Warehouse System helps Warehouse System team to learn quickly with whom they need to discuss the changes they are going to implement in their system.

Dependency Types

A dependency could be used in its general form, or it could be specified using a stereotype to give it more concrete semantics.

<< use >>

A usage relationship indicates that one element requires another element for its full implementation or operation.

aa

As a specific type of dependency, the usage connection implies that a change made to the Warehouse System may impact the Eshop system because the Eshop system somehow uses the Warehouse System.

<< trace >>

Connecting two elements with a trace relationship indicates that the elements represent the same concept, either at different levels of abstraction or from different viewpoints. In other words, they represent the same concept in different models.

aa

aa

<< flow >>

An information flow shows the exchange of information between two entities. The information flow serves as an abstraction, so it does not specify the nature of the information or mechanisms by which it is conveyed. The abstraction can have various forms, from just indicating there is a certain type of information transferred between entities to the description of a concrete data file being exchanged:

aa

<< create >>

A create relationship is used when element A creates an instance of element B. In analytical models, it could represent for example that the artifact A (Invoice) is a result of activity performed by entity B (Generate Invoice).

aa

Realization

Realization is a specific type of dependency that expresses specification-implementation relationship. In the analysis, it is typically used during requirements modeling for describing the fact that an artifact or element implements/realizes a particular requirement.

aa