Class Diagram

The Class diagram captures the logical structure of the system - the Classes - and things that make up the model. It is a static model, describing what exists and what attributes and behavior it has, rather than how something is done. On a Class diagram you can Illustrate relationships between Classes and Interfaces using Generalizations, Aggregations and Associations, which are valuable in reflecting inheritance, composition or usage, and connections respectively.

You generate Class diagram elements and connectors from the Class pages of the Toolbox.

Example Diagram

In this example Class diagram, there are two forms of the Aggregation relationship:

  • The pale form indicates that the Class Account uses AddressBook, but does not necessarily contain AddressBook
  • The dark Composite Aggregation form indicates ownership or containment by the target Classes (at the diamond end) of the source Classes

Class Diagram Element Toolbox Items

Icon

Description

See also

Packages are used to organize your project contents, but when added onto a diagram they can be use for structural or relational depictions.

Package

A Class is a representation of a type of object that reflects the structure and behavior of such objects within the system.

Class

An Interface is a specification of behavior (or contract) that implementers agree to meet.

Interface

A Data Type is a specific kind of classifier, similar to a Class except that a Data Type cannot own sub Data Types, and instances of a Data Type are identified only by their value.

Data Type

An Enumeration is a data type, whose instances can be any of a number of user-defined enumeration literals.

Enumeration

A Primitive element identifies a predefined data type, without any relevant substructure (that is, it has no parts in the context of UML).

Primitive

A Table is a stereotyped Class typically used in Data Modeling.

Table

A Signal is a specification of Send request instances communicated between objects, typically in a Class or Package diagram.

Signal

An n-Ary A ssociation element is used to model complex relationships between three or more elements, typically in a Class diagram.

Association

Class Diagram Connector Toolbox Items

Icon

Description

See also

An Association implies that two model elements have a relationship, usually implemented as an instance variable in one or both Classes.

Associate

A Generalization is used to indicate inheritance.

Generalize

A Composition is used to depict an element that is made up of smaller components, typically in a Class or Package diagram.

Compose

An Aggregation connector is a type of association that shows that an element contains or is composed of other elements.

Aggregate

An Association Class is a UML construct that enables an Association to have attributes and operations (features).

Association Class

An Assembly connector bridges a component's required interface (Component1) with the provided interface of another component (Component2), typically in a Component diagram.

Assembly

A source object implements or Realizes its destination object.

Realize

You create a Template Binding connector between a binding Class and a parameterized Class.

Template Binding

The Nesting Connector is an alternative graphical notation for expressing containment or nesting of elements within other elements.

Nesting

In a Package diagram, a Package Merge indicates a relationship between two Packages whereby the contents of the target Package are merged with those of the source Package.

Package Merge

A Package Import relationship is drawn from a source Package to a Package whose contents are to be imported.

Package Import

An Abstraction is a relationship between two elements that represent the same concept, either at different levels of abstraction or from different viewpoints.

Abstraction

A Substitution is a relationship between two Classifiers, signifying that the substituting Classifier complies with the contract specified by the contract Classifier.

Substitution

A Usage is a Class diagram relationship in which one element requires another element for its full implementation or operation.

Usage

Learn more