0% found this document useful (0 votes)
72 views

Class Diagram Tutorial

The document explains what a class diagram is in UML and how to construct one. It details the key components of a class diagram including classes, attributes, operations, and relationships like association, generalization, and dependency.

Uploaded by

Nhung
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
72 views

Class Diagram Tutorial

The document explains what a class diagram is in UML and how to construct one. It details the key components of a class diagram including classes, attributes, operations, and relationships like association, generalization, and dependency.

Uploaded by

Nhung
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

Class Diagram Tutorial

What is a Class Diagram in UML?


A class diagram describes the structure of an object-oriented system by showing the
classes in that system and the relationships between the classes. A class diagram also
shows constraints, and attributes of classes.

Class Diagram Notations


Class
The UML representation of a class is a rectangle containing three compartments stacked
vertically, as shown in the Figure:
Attribute
The attribute section of a class lists each of the class's attributes on a separate line. The
attribute section is optional, but when used it contains each attribute of the class displayed
in a list format. The line uses this format: name : attribute type (e.g. cardNumber : Integer).

Operation
The operations are documented in the bottom compartment of the class diagram's
rectangle, which also is optional. Like the attributes, the operations of a class are
displayed in a list format, with each operation on its own line. Operations are documented
using this notation: name (parameter list) : type of value returned (e.g. calculateTax
(Country, State) : Currency).

Relationships
Association
Some objects are made up of other objects. Association specifies a "has-a" or
"whole/part" relationship between two classes. In an association relationship, an object
of the whole class has objects of part class as instance data.
In a class diagram, an association relationship is rendered as a directed solid line.
Unidirectional association - In a unidirectional association, two classes are related, but
only one class knows that the relationship exists.
A unidirectional association is drawn as a solid line with an open arrowhead pointing to
the known class.

Bidirectional (standard) association - An association is a linkage between two classes.


Associations are always assumed to be bi-directional; this means that both classes are
aware of each other and their relationship, unless you qualify the association as some
other type.
A bi-directional association is indicated by a solid line between the two classes.

Multiplicity
Place multiplicity notations near the ends of an association. These symbols indicate the
number of instances of one class linked to one instance of the other class. For example,
one company will have one or more employees, but each employee works for one
company only.
Visibility
Visibility is used to signify who can access the information contained within a class
denoted with +, -, # and ~ as show in the figure:

Generalization
A generalization is a relationship between a general thing (called the superclass) and a
more specific kind of that thing (called the subclass). Generalization is sometimes called
an "is a kind of" relationship and is established through the process of inheritance.
In a class diagram, generalization relationship is rendered as a solid directed line with a
large open arrowhead pointing to the parent class.

Abstract Classes and methods


In an inheritance hierarchy, subclasses implement specific details, whereas the parent
class defines the framework its subclasses. The parent class also serves a template for
common methods that will be implemented by its subclasses.

The name of an abstract Class is typically shown in italics; alternatively, an abstract


Class may be shown using the textual annotation, also called stereotype {abstract} after
or below its name.
An abstract method is a method that do not have implementation. In order to create an
abstract method, create a operation and make it italic.

Realization
A realization is a relationship between two things where one thing (an interface) specifies
a contract that another thing (a class) guarantees to carry out by implementing the
operations specified in that contract.
In a class diagram, realization relationship is rendered as a dashed directed line with an
open arrowhead pointing to the interface.

Dependency
Dependency indicates a "uses" relationship between two classes. In a class diagram, a
dependency relationship is rendered as a dashed directed line.
If a class A "uses" class B, then one or more of the following statements generally hold
true:

1. Class B is used as the type of a local variable in one or more methods of class A.
2. Class B is used as the type of parameter for one or more methods of class A.
3. Class B is used as the return type for one or more methods of class A.
4. One or more methods of class A invoke one or more methods of class B.

When to Draw Class Diagram?


Most of the UML diagrams can not be mapped directly with any object-oriented
programming languages except class diagrams. In other words, class diagram ideally can
have one to one mapping to UML class diagrams. Besides, class diagrams are useful in
the following situations:

1. Describing the static view of the system.


2. Modeling the collaboration among the elements of the static view.
3. Describing the functionalities performed by the system.
4. Construction of software applications using object oriented languages.
5. Performing code forward engineering for the target systems
6. Classifying classes or components as library for future reuses

How to Draw a Class Diagram?


1. Identify the objects in the problem domain, and create classes for each of them. (e.g. Teacher,
Student, Course for an enrollment system)
2. Add attributes for those classes (e.g. name, address, telephone for the Student class)
3. Add operations for those classes (e.g. addStudent(student) for the Course class)
4. Connect the classes with appropriate relationships (e.g. Relate Teacher and Course with an
association)
5. Optionally specify the multiplicities for association connectors' ends (e.g. Input 0..3 for the Course
side of the association that connects Teacher and Course, to signify that one teacher can teach
multiple up to three courses)

You can also:

1. Draw packages for logical categorization of classes


Class Diagram Examples
The class diagram example below shows the classes involved in a sales order system.
Notice the use of <<enumeration>> class in the class model.
The class diagram example below shows a set of classes related to flight management.
The classes are grouped under a package.

You might also like