The following table describes the elements that you can add to Class diagrams. The elements are grouped by Modeling Palette section and are also listed if they appear on the Context Menu.
Element | Icon | Description |
---|---|---|
Basic Section | ||
Class | ![]() |
Any regular class in your system. |
Interface | ![]() |
A stereotype of class offering only public operations, but no attributes or method bodies. |
Enumeration | ![]() |
A classifier that is a list of named values used as the range of a particular attribute type. |
Datatype | ![]() |
A type whose values have no identity, including primitive and enumeration types. |
Artifact | ![]() |
A physical piece of information that is used or produced by a software development process. This information can include models, source files, scripts, and binary executables. |
Aliased | ![]() |
A type used mostly for C++. Lets users "decorate" types, like a pointer or reference in C++. |
Utility Class | ![]() |
A set of global variables and procedures that have been grouped in the form of a class declaration. It is a named collection of non-member attributes and operations scoped by the class. A utility class represents a type that has no instances. The attributes and operations of the utility become global variables and procedures. |
Actor | ![]() |
A role played by users in your system. |
Comment | ![]() |
A Notepad notation. Use Comments to record information for a element or link in a diagram. This information is not included in generated code but is for information only. Each Comment can contain unlimited text, and can be numbered. You can also define a stereotype, and enter a noted element. |
Robustness Section | ||
Boundary Class | ![]() |
An element in which Actors use boundary objects in communicating with a system. |
Control Class | ![]() |
An element in which objects serve as the "glue" between boundary objects and entity objects. These objects connect the user to the stored data. |
Entity Class | ![]() |
An element in which objects are usually objects from the domain model. These objects often map to database tables and files. |
Templates Section | ||
Template Class | ![]() |
An abstract class that is commonly used to define a collection type of object. A Template Class contains the same information as a Class, but requires an attached Template Parameter Label. The label provides the names and possible type of the parameters used by the Template. |
Derivation Classifier | ![]() |
A classifier that can be computed from a Class, but that is shown for clarity or that is included for design purposes. |
Derivation Edge | ![]() |
An association in which the owning classifier is a derivation of the template classifier of the derivation. |
Association Section | ||
Association | ![]() |
An association relationship between two elements. |
Composition | ![]() |
The relationship between two elements in which all child elements are cascade-deleted when you delete the parent element. |
Navigable Composition | ![]() |
A composition whose originating member is responsible for specifying its destination member in the destination class. |
Aggregation | ![]() |
The relationship between two elements where one of the classes plays a more important role within the relationship. |
Navigable Aggregation | ![]() |
An Aggregation where the originating member is responsible for specifying its destination member in the destination class. |
Navigable Association | ![]() |
An Association where the originating member is responsible for specifying its destination member in the destination class. |
Association Class | ![]() |
Class information (attributes, operation, etc) about a specific association shared by two elements. |
Design Pattern Section | ||
Design Pattern | ![]() |
A commonly recurring structure of communicating elements that solves a general design problem within a particular context. |
Package | ![]() |
A grouping of class definitions. |
Role | ![]() |
A classifier role that when applied creates a datatype. It is the datatype participant of that represents a specific datatype role within a Collaboration pattern. |
Interface Role | ![]() |
A specific role within a Collaboration pattern. |
Actor Role | ![]() |
What you create by applying a pattern with an Actor role as a participant. Or, you can select an existing Actor to which the pattern should be applied. |
Class Role | ![]() |
A class participant that has a specific role within a Collaboration pattern. |
Use Case Role | ![]() |
A kind of behaviored classifier that participates within a Collaboration pattern. |
Context Palette | ||
Implementation | ![]() |
An implementation relationship between two elements. |
Generalization | ![]() |
The relationship between a subtype element and a supertype element. The elements in this relationship must possess the same attributes. For example, the subtype Manager and the supertype Employee share a generalization relationship. |
Containment | ![]() |
A relationship between nested classes. |
Link Comment | ![]() |
The connection between the comment element and the associated element. |
Role Binding | ![]() |
The mapping to a role in a classifier. |
Dependencies in Context Palette | ||
Dependency | ![]() |
The relationship between two elements whose definitions depend on one another in such a way that changes to one can result in changes to the other. For example, when one class mentions another as an operation parameter, or as part of its data, the two classes exhibit dependency. |
Realize | ![]() |
A semantic relationship between classifiers. One classifier specifies a contract that another classifier guarantees to carry out. These relationships are used in two places: between interfaces and the classes that realize them, and between Use Cases and the Collaboration that realizes them. |
Abstraction | ![]() |
An entity's essential characteristics that distinguish it from all other kinds of entities. An abstraction defines a boundary from the viewer's perspective. |
Usage | ![]() |
A dependency in which one element (the client) requires the presence of another element (the supplier) to be implemented or used correctly. |
Permission | ![]() |
A dependency that signifies granting of access rights from the supplier model element to a client model element. In this case, the client requires access to some or all of the constituent elements of the supplier. |