UML
for
Design
Class diagram
1
Class diagram for the SDLC
Depicts the classes
and their
dependencies for the
primary requirements Describes the classes,
of the system. their attributes and
operations and the 2
relationship between
classes.
Class diagram
• One of the most used UML diagrams.
• Provide a static view of a system.
• A UML class diagram is made up of:
- A set of classes and
- A set of relationships between classes
• Describes the structure of a system by showing the
system's classes, their attributes, methods, and the
relationships among objects.
3
Class diagram : example ATM BANK
4
Intoduction to Object Oriented
concepts
5
Real world and software objects analogy (1/2)
• Real-world objects share two characteristics: state and behavior.
Examples
• Person
• state : has age, weight, height, eye color, name, etc.
• behavior : reading, writing, communicating, etc.
• Desktop radio
• state : on, off, current volume, current station.
• behavior : turn on, turn off, increase volume, decrease
volume, seek, scan, and tune. 6
Real world and software objects analogy (2/2)
• Software objects are similar to real-world objects:
they also consist of state and related behavior.
• An object stores its state in attributes (fields or variables in
some programming languages) and exposes its behavior
through methods (operations or functions in some
programming languages).
• Methods operate on an object's internal state (Attributes)
and serve as the primary mechanism
for object-to-object communication.
7
What Is an Object?
• An object
• is a software bundle of related state and behavior.
• is often used to model the real-world objects that you find
in everyday life.
Books
8
University
What Is a Class?
• A class
• A description of a group of objects with common properties
(attributes), behavior (operations), relationships, and
semantics.
• Models the state and behavior of a real-world object.
• An object is an instance of a class.
• Example:
• When I hire a new employee “Joan” (object), he is an
instantiation of the class “employee”.
9
What is a Class?
Example 1 Example2
Class
Objects
10
Objects are instances of a class
Class Diagram : core elements
11
Class
Description: a class has three parts
• name at the top
• attributes in the middle
• methods (or operations) at the bottom.
Syntax:
Class
Attributes
Methods
12
Class attributes
• An attribute is a named property of a class that describes the
object being modeled.
• Attributes are usually listed as attribute name : data type
• In the class diagram, attributes appear in the second
compartment just below the name-compartment.
Person
ssn : number
name : string
address : string
birthdate : date
13
Class Methods
• describe the class behavior
• appear in the third compartment of the class.
Person
ssn : number
name : string
address : string
birthdate : date
getName() : string
setName(name) : void
14
Isbirthday() : boolean
Drawing Classes
• When drawing a class, you don’t need to show attributes and methods in
every diagram.
Person Person Person
ssn : number
name : string
address : string
Person birthdate : date
ssn Person
name getName() : string
address setName(name) : void
birthdate getName() : string Isbirthday() : boolean
setName(name) : void
Isbirthday() : boolean
15
Class Diagram relationships
16
Relationships: Association (1/2)
• When modeling a system, certain objects will be related to
each other
• These relationships need to be modeled for clarity using
association relationships
• There are several types of associations
17
Relationships: Association (2/2)
• If two classes in a model need to communicate with each
other, there must be link between them.
• An association denotes that link.
• Syntax
a solid line between the two classes
Student Instructor
18
Relationships: Multiplicity (1/2)
Multiplicity
• is the active logical association where the cardinality of a
class in relation to another is being depicted.
Example:
one campany may include multiple persons,
while one person may work at one company .
19
Relationships: Multiplicity (2/2)
• Multiplicity is a definition Potential Multiplicity Values
of cardinality - i.e. number of Indicator Meaning
elements - of some collection of
0..1 Zero or one
elements
1 One only
• It provides an inclusive interval of
0..* Zero or more
non-negative integers to specify the
* Zero or more
allowable number of instances of
described element 1..* One or more
3 Three only
• Multiplicity interval has some lower
bound and (possibly infinite) upper 0..5 Zero to Five
bound 5..15 Five to Fifteen
20
Relationships:
Multiplicity+association (1/2)
• We can indicate the multiplicity of an association by adding
multiplicity bounds to the line denoting the association.
Instructor
Student 1..*
a Student has one or more Instructors
Student Instructor
1..*
every Instructor has one or more Students
• We can also indicate the behavior of an object in an association
(i.e., the role of an object) using role names.
teaches learns from 21
Student Instructor
1..* 1..*
Relationships:
Multiplicity+association (2/2)
• We can also name the association.
membership
Student Team
1..* 1..*
• We can specify dual associations.
member of
1..* 1..*
Student Team
1 president of 1..* 22
Relationships: Association class
• The association between two classes may have attributes and
operations in its own represented by a class icon in the
same way as other entities: association class.
• An association class can have an association with another class,
Syntax
• The association class has its own icon, connected to the
association to which it belongs via a dashed line.
23
Relationships: Reflexive association
• Reflexive (self) association
• A class can be associated with itself
• Does not mean that a class's instance is related to itself,
• But means that an instance of the class is related to another
instance of the class.
• Example
An Employee class could be related to itself through the
manager/manages role.
24
Relationships: N-ary association
• n-ary association: It links more than two classes,
• Syntax
• a large diamond with a path starting at each participating
class. The name of the association, if any, appears near the
diamond.
25
Relationships: Aggregation
• Aggregation is used to model objects that contain other objects
• Specifies a whole-part relationship between an aggregate
(a whole) and a constituent part
• The part can exist independently from the aggregate.
Syntax
• Aggregations are denoted by a hollow-diamond adornment
on the association.
26
Relationships: Composition
• Composition (or composite aggregation)
• Indicates a strong ownership and coincident lifetime of parts
by the whole (i.e., they live and die as a whole).
Syntax
• a filled-diamond adornment on the association.
Scrollbar
1 1
Window Titlebar
1 1
Menu
1 1 .. *
27
Relationships: Generalization (1/2)
• Generalization is
• the ability of one class (child class) to inherit the identical
functionality of another class (super class), and then add
new functionality of its own.
• also known as the inheritance or "is a" relationship.
Syntax
a solid line drawn from the child class with a closed, unfilled
arrowhead (or triangle) pointing to the super class.
28
Abstract class
• An Abstract class is a class that cannot have its own (direct)
instances.
• Abstract classes exist purely to generalize common behavior that
would otherwise be duplicated across (sub)classes.
• In UML, the name of an abstract class is written in an italic font
• Example
29
DataType
• Represent value types from business domain, primitive
types or structured types of a programming language.
• example: date/time, gender, currency, address.
• A data type is shown using rectangle symbol with
keyword «dataType».
• A data type may contain attributes and operations to support
the modeling of structured data types.
30
DataType : Example
Person
ssn : number
name : string
address : Address
birthdate : date
getName() : string
setName(name) : void
Isbirthday() : boolean
31
Stereotype: Enumeration
An enumeration is a user-defined data type that consists of
a name and an ordered list of enumeration literals.
Example:
<<enumeration>>
Status Car
On
Off Color: Color
EngineStatus: Status
<<enumeration>>
Color
Status and Color are two enumeration
Blue stereotypes used as types for the attributes
Red of the car 32
Green
Class diagram rules
• The name of the class diagram should be meaningful to describe
the aspect of the system.
• Attributes and methods of each class should be clearly identified.
• For each class, a minimum number of properties should be
specified. Unnecessary properties will make the diagram
complicated.
• Use notes whenever required to describe some aspect of the
diagram. At the end of the drawing it should be understandable
to the developer/coder.
• Finally, before making the final version, the diagram should be
drawn on plain paper and reworked as many times as possible to
make it correct.
33