Professional Documents
Culture Documents
1
A Simplified Object-Oriented
Systems Analysis & Conceptual Design Methodology
Activities
2
Objects
3
Defining Class
A CLASS is a template (specification, blueprint)
for a collection of objects that share a common
set of attributes and operations.
HealthClubMember
Class attributes
operations
Objects
4
UML Class Diagram Notation 1 of 2
Class
Member
{
memberNumber
firstName Expanded view of a
lastName Class into its three
attributes telephone
address sections:
city
Top: Class Name
etc...
Middle: attributes
{
checkOutVideo
operations checkInVideo Bottom: operations
buyItem
etc...
5
UML Class Diagram Notation
6
Analysis Classes
7
Boundary Classes
8
Boundary Classes
Boundary classes are used to model the interaction
between a system and its surroundings, i.e., its
actors.
• User interface classes
– Concentrate on what information is presented to the user
– Don’t concentrate on user interface details
– Example:
• ReportDetailsForm
• ConfirmationDialog
• System / Device interface classes
– Concentrate on what protocols must be defined. Don’t
concentrate on how the protocols are implemented
9
Entity Classes
10
Control Classes
Controls and coordinates the behavior
of the system
Delegates the work to other classes
• A control class should tell other classes to
do something and should never do
anything except for directing
Control classes decouple boundary and
entity classes
Example:
• EditReportController
• AddViolationController
11
Class Diagram Relationships
Class
• Generalization
Object
• Association
• Aggregation
• Composition
12
2 of 2
Class
Generalization
Relationship
Object Object
Aggregation Composition
Object Association Association Association
n n 1..* 1
0..* 0..*
14
Generalization Example
Others:
<<abstract>> •Transactions
Role •Things
attributes • Places
operations • Etc...
Person
attributes
operations
16
Generalization Inheritance Generalization
a1
a2
Generalization
a3
a1 o1
a2 o2
One-Way
Common a3 o3
o1 Inheritance
o2 from the
o3 Specialization
Generalization
a1
to the
a2
Specialization a3
Specialization a4
a4 a5
a5 a6
a6 o1
Unique o4 o2
o5 o3
o6 o4
o5
(a = attribute; o = operation) o6
17
Generalization - Multiple Inheritance
Generalization1 Generalization2
a1 a2
a2 a4
a3 a5
o3 o1
o4 o2
o5 o3
Specialization
a6
a7 a1
a8 a2 (which one?)
inherited attributes a3
o6 a4
o1 o7 a5
o2 o8
(which one?) o3 inherited operations
o4
o5
18
UML Generalization Notation
Note
Useful text
Supertype
discriminator
Subtype 1 Subtype 2
Discriminator
Doctor
Female
role
<<abstract>>
Nurse
Person
Gender
Male {complete} patient
Physical-
#1 therapist
Patient
#3
#2 21
Example
22
Rational Rose Class Diagram Example
23
Associations
Relationships between instances (objects) of
classes
Conceptual:
• associations can have two roles (bi-directional):
– source --> target
– target --> source
• roles have multiplicity (e.g., cardinality, constraints)
• To restrict navigation to one direction only, an
arrowhead is used to indicate the navigation direction
No inheritance as in generalizations
24
Object Association Relationship Patterns
b) Object Whole
attributes
Aggregation operations
Associations
Class A x x
attributes x
operations
x x x x
c) Object Whole
attributes
Composition operations
Class A x Class B
attributes attributes
Associations
x (y may not be “1”) 1 1
operations operations 1
y y y
a) Object Associations
Part1 Part2 PartN
attributes attributes attributes
operations operations operations
25
Associations
role B
Class A Class B
role A
Example:
Employee
Company Person
Employer
26
Multiplicities
1
Class exactly one
0..* many
Class (zero or more)
0..1 optional
Class
(zero or one)
m..n numerically
Class specified
Example:
0..*
Course CourseOffering
1
27
Examples
28
Aggregation & Composition
• Aggregation (shared aggregation):
• is a specialized form of ASSOCIATION in which
a whole is related to its part(s).
• is known as a “part of” or containment
relationship and follows the “has a” heuristic
• three ways to think about aggregations:
• whole-parts
• container-contents
• group-members
• Composition (composite aggregation):
• is a stronger version of AGGREGATION
• the “part(s)” may belong to only ONE whole
• the part(s) are usually expected to “live” and
“die” with the whole (“cascading delete”)
• Aggregation vs. Composition vs. Association???
29
Aggregation Composition
Faculty SalesOrder
(team-teaching 1..* 1
is possible)
0..* 1..*
CourseTeaching SalesOrderLineItem
Person
{abstract} 1
Person FacultyRole
0..1
1
Faculty Student 0..1
StudentRole
FacultyStudent
32
Association, Aggregation and Composition
Template/Pattern Example
w
Whole 1 w
Whole 2 w
w
3
4
0..*
p
p 6
0..* p 5
p 4
p
Part p 3
Part 2
1
33
Multiplicity Example #1
Whole
3
1
5 2
Part1 PartN
•One Whole is associated with 5 Part1 •One Whole is associated with 2 PartN
•One Part1 is associated with 1 Whole •One PartN is associated with 3 Whole
P
P W
P
W P P P W
P W
P
W W
P
34
Multiplicity Example #2
Class1
max. 1 2..5
min.
1..n
0..*
Class2 Class3
1..n * C3 2..5 C1
C2 1 C1
C3
C1
C2 C3 C1
C2 C1 C3
C1 C2 C1
C2 C3
C1
C2 C3
etc... etc...
35
Multiplicity Example #3
FacultyInformation StudentInformation
1 0..* 1 1 1
1..* 0..*
0..*
DegreeHeld CommitteeAssign
CourseCompleted
0..* 0..*
CourseTeach ClubMember
36
Reflexive Association Relationships
Objects within the same class have a
relationship with each other.
Course
0..*
is pre-requisite for
0..*
has pre-requisite of
37
Case study—Courseware Management System
Problem Statement
38
The potential actors of the system
Tutors
Course administrators
Students
39
use cases of the system were:
View courses
Manage topics for a course
Manage course information
View course calendar
View tutors
Manage tutor information
Assign courses to tutors
40
First Identify the "active" entities in the system
• Course administrators
• Tutors
• Students
41
Identify business domain ("passive") entities in the
system
• Courses
• Topics that make up a course
• Course calendar generated
42
Identify
Boundary class
- Course Administrator
43
Next
44
Then
45
Class Diagram
46
UML Class Diagram
47
Video Store – UML Class Diagram
1 1
Inventory
SaleItem RentalItem
0..* 0..*
Transaction Employee StoreLocation
1 1
52