20
UML Class Diagram

UML Class Diagram. A class diagram shows 1.Classes 2.The relationships between them

Embed Size (px)

Citation preview

Page 1: UML Class Diagram. A class diagram shows 1.Classes 2.The relationships between them

UML Class Diagram

Page 2: UML Class Diagram. A class diagram shows 1.Classes 2.The relationships between them

A class diagram shows

1. Classes

2. The relationships between them

Page 3: UML Class Diagram. A class diagram shows 1.Classes 2.The relationships between them

Classes

Class name Class attributes (state) Class methods

(operations) Visibility

o + means publico # means protectedo − means privateo ~ means package

Course

name: Stringnumber: Integer

addStudent()

Page 4: UML Class Diagram. A class diagram shows 1.Classes 2.The relationships between them

Class Details

Abstract class: name in italics Member properties:o statico abstracto CONSTANT

Specify type of attributes Specify signature and return value of

methods

addStudent( s : Student ) : void

Page 5: UML Class Diagram. A class diagram shows 1.Classes 2.The relationships between them

Inheritance

Shape-color: Color+setColor(c: Color): void+getArea(): double

Circle-radius: double+setRadius(r: double): void+getRadius(): double +getArea(): double

Think “tree” not “arrow”

override

Page 6: UML Class Diagram. A class diagram shows 1.Classes 2.The relationships between them

Interfaces

«interface»Drawable

+draw(): void

Circle-radius: double+setRadius(r: double): void+getRadius(): double +draw(): void

implem

ent

Note dashed

line

Page 7: UML Class Diagram. A class diagram shows 1.Classes 2.The relationships between them

Associations

When one class knows about another class and may call methods of that class’s objects General association Aggregation Composition dependency

Page 8: UML Class Diagram. A class diagram shows 1.Classes 2.The relationships between them

Association

Specify that classes know each other Can be named (typically verbs)

CourseProfessorteaches

Page 9: UML Class Diagram. A class diagram shows 1.Classes 2.The relationships between them

Multiplicity

Specify the numerical relationship 1 – exactly one 0..1 – zero or one 0..* (or just *) – any number or none 1..* – one or more 3..8 – three to eight

CourseProfessor

1 0..*teaches

Page 10: UML Class Diagram. A class diagram shows 1.Classes 2.The relationships between them

Association

Classes can have role names (nouns) Typically represent attribute name in

other class

CourseProfessorteacher

Class Course { teacher: Professor; …}

Class Professor { myCourse: Course; …}

Page 11: UML Class Diagram. A class diagram shows 1.Classes 2.The relationships between them

Association

Associations can be reflexive In this case role names are required

Professormentor

mentee

1

0..2

Page 12: UML Class Diagram. A class diagram shows 1.Classes 2.The relationships between them

Navigability

The course knows the textbook(s) used The textbook does not know course(s)

which use it Alternative interpretation: navigability

from textbook to course is unspecifiedo To prohibit access use

TextBookCourse

Page 13: UML Class Diagram. A class diagram shows 1.Classes 2.The relationships between them

Association Class

A class that represents the association

CourseStudent

0..* 0..*

Enrolment

grade: integer

Page 14: UML Class Diagram. A class diagram shows 1.Classes 2.The relationships between them

Aggregation

One class contains an aggregate of objects from the other class

But aggregated objects are still independent

Implies container attribute

ProfessorDepartment

Page 15: UML Class Diagram. A class diagram shows 1.Classes 2.The relationships between them

Composition

A stronger form of aggregation One class contains objects from the

other class These objects have no existence

without the containing object

CourseProgram

1

Page 16: UML Class Diagram. A class diagram shows 1.Classes 2.The relationships between them

Aggregation Composition

Relationship has-a whole-parts

Container type references objects

Lifecycle elements are independent

elements are created with container and die with container

Elements can be in multiple aggregations

can be in only one composition

Page 17: UML Class Diagram. A class diagram shows 1.Classes 2.The relationships between them

Dependency

One class uses anothero Local in methodo Argument to methodo Creation of objects (e.g. factory)

But it is not an attribute (field) Usually many; show only important ones

CA

method(arg : B)

B «creates»

Page 18: UML Class Diagram. A class diagram shows 1.Classes 2.The relationships between them

Derived Attributes

An attribute whose value is derived from other attributes

Does not have a setter

Course

name: String/enrolment: Integer

addStudent()

Student

Page 19: UML Class Diagram. A class diagram shows 1.Classes 2.The relationships between them

Constraints and Notes

Provide additional information

Course

capacity: integer/enrolment: integer

addStudent()

Student

{enrolment capacity}

Only nice ones

Page 20: UML Class Diagram. A class diagram shows 1.Classes 2.The relationships between them

UML Class Diagrams

Object Diagrams

Similar to class diagrams Show object instances rather than

classes Reflect relationships at runtime No reflexive associationso ListNode class: next is reflexiveo ListNode object: next is reference to

another object