Class Diagrams: Previous Home Next
Class Diagrams: Previous Home Next
Class diagrams are widely used to describe the types of objects in a system and their relationships.
Class diagrams model class structure and contents using design elements such as classes, packages
and objects.2 Class diagrams describe three different perspectives when designing a system, conceptual,
specification, and implementation.1 These perspectives become evident as the diagram is created and
help solidify the design. This example is only meant as an introduction to the UML and class diagrams. If
you would like to learn more see the Resources page for more detailed resources on UML.
Classes are composed of three things: a name, attributes, and operations. Below is an example of a
class.
Class diagrams also display relationships such as containment, inheritance, associations and
others.2 Below is an example of an associative relationship:
The association relationship is the most common relationship in a class diagram. The association shows
the relationship between instances of classes. For example, the class Order is associated with the class
Customer. The multiplicity of the association denotes the number of objects that can participate in then
relationship.1 For example, an Order object can be associated to only one customer, but a customer can
be associated to many orders.
Another common relationship in class diagrams is a generalization. A generalization is used when two
classes are similar, but have some differences. Look at the generalization below:
In this example the classes Corporate Customer and Personal Customer have some similarities such as
name and address, but each class has some of its own attributes and operations. The class Customer is
a general form of both the Corporate Customer and Personal Customer classes.1 This allows the
designers to just use the Customer class for modules and do not require in-depth representation of each
type of customer.
Before drawing a class diagram consider the three different perspectives of the system the diagram will
present; conceptual, specification, and implementation. Try not to focus on one perspective and try see
how they all work together.
When designing classes consider what attributes and operations it will have. Then try to determine how
instances of the classes will interact with each other. These are the very first steps of many in developing
a class diagram. However, using just these basic techniques one can develop a complete view of the
software system.
This example is only meant as an introduction to the UML and use cases. If you would like to learn more
see the Resources page for more detailed resources on