Professional Documents
Culture Documents
214
215
Objects
Objects have three responsibilities:
What they know about themselves (e.g., Attributes) What they do (e.g., Operations) What they know about other objects (e.g., Relationships)
216
Defining Class
A CLASS is a template (specification, blueprint) for a collection of objects that share a common set of attributes and operations. HealthClubMember attributes operations
Class
Objects
217
Relationships
A RELATIONSHIP is what a class or an object knows about another class or object.
[Object] Associations
FacultyInformation - CourseInformation StudentInformation - CourseInformation
218
Relationships
Exist to:
1) show relationships 2) enforce integrity 3) help produce results
In this example:
UniversityCourse
Removal of a University Course should also remove Students that are in the Course but not Student Information. Removal of a Student should also remove the Courses that the Student is in but not the University Course. Removal of a Student in a Course should not affect either University Course or Student Information.
219
StudentInformation
1 0,m
1 0,m
StudentInCourse
1 of 2
attributes
{
{
Member memberNumber firstName lastName telephone address city etc... checkOutVideo checkInVideo buyItem etc...
Expanded view of a Class into its three sections: Top: Class Name Middle: attributes Bottom: operations
operations
220
2 of 2
Object Association
n
n
Will always be 1
221
Class
Generalization
Object
Association
Aggregation
Composition
222
A Generalization follows a is a or is a kind of heuristic from a specialization class to the generalization class. (e.g., student is a person, video is a kind of inventory).
Common attributes, operations and relationships are located in the generalization class and are inherited by the specialization classes Unique attributes, operations and relationships are located in the
specialization classes.
Inherited attributes and operations may be overridden or enhanced in the specialization class depending on programming language support.
Generalization Example
<<abstract>>
Role
attributes operations
Faculty
attributes operations
Student
attributes operations
Staff
attributes operations
Visitor
attributes operations
Person
attributes operations
Arm
attributes operations
Leg
attributes
operations
Head
attributes
operations
225
Generalization Inheritance
Generalization
Generalization
Common
a1 a2 a3 o1 o2 o3
a1 a2 a3 o1 o2 o3
Specialization
Specialization
Unique
a4 a5 a6 o4 o5 o6 (a = attribute; o = operation)
a1 a2 a3 a4 a5 a6 o1 o2 o3 o4 o5 o6
226
Specialization a6 a7 a8
inherited attributes
o1 o2 (which one?) o3 o4 o5
o6 o7 o8
inherited operations
a1 a2 (which one?) a3 a4 a5
227
Supertype
discriminator
Subtype 1
Subtype 2
Doctor
role
<<abstract>>
Male #1
Gender {complete}
Person
Nurse
patient
Physicaltherapist
Patient #3
#2
229
Associations
No inheritance as in generalizations
231
x
x Part2 attributes operations
x x
a) Object Associations
232
Associations
role B Class A role A
Class B
Employer
Person
233
Multiplicities
1 0..* 0..1 Class m..n Class
exactly one
many (zero or more) optional (zero or one) numerically specified
Class
Class
CourseOffering
234
Aggregation
Faculty
Composition
SalesOrder
(team-teaching is possible)
1..* 0..*
1 1..* SalesOrderLineItem
CourseTeaching
Composition
Composition is often used in place of
Generalization (inheritance) to avoid transmuting (adding, copying, and deleting of objects)
Person
{abstract}
Person
1
FacultyRole
0..1
Faculty
Student
0..1
StudentRole
FacultyStudent
Note: Attributes may need to be considered to more-fully understand
237
Example
Whole
w 1 w 2 w w 3 4
0..*
p 6
p p 4 p 3 p 2 1
p 5
Multiplicity Example #1
Whole
3 5
Part1
1 2
PartN
One Whole is associated with 5 Part1 One Part1 is associated with 1 Whole
One Whole is associated with 2 PartN One PartN is associated with 3 Whole
P P P P P
W W
P P
W P W
239
Multiplicity Example #2
Class1
max. min.
1..n
Class2
2..5
0..*
Class3
1..n
C1
C2 C2 C2 C2 C2
1
C2
C1
*
C1
C3 C3 C3 C3 C3
2..5
C3
C1 C1 C1 C1 C1
etc...
etc...
240
Multiplicity Example #3
FacultyInformation
StudentInformation
1
1..*
DegreeHeld
0..*
1 0..*
CourseCompleted
0..*
CommitteeAssign
0..*
CourseTeach
0..*
ClubMember
241
many-to-many multiplicity
StudentInformation 0..* attributes operations
CourseInformation 0..*
attributes operations
Becomes either
StudentInformation
attributes operations 1 0..*
CourseInformation
0..* 0..*
CourseInformation
attributes operations
1 0..*
attributes operations
StudentCourseInformation
SemesterTaken GradeEarned
operations
Attributes that represent the union of the two classes are located in this association class.
StudentCourseInformation
SemesterTaken GradeEarned
operations
242
Course
0..*
0..*
has pre-requisite of
243
SaleItem
RentalItem
Video
Game 0..* 1
ConcessionItem
0..* 1
VCR
Transaction
Employee
StoreLocation
SaleTransaction 1 0..*
0..*
245
246
247
QUITTING
TIME
248