1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.
-
Upload
magnus-garrett -
Category
Documents
-
view
221 -
download
1
Transcript of 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.
![Page 1: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/1.jpg)
1
CONCEPTUAL DESIGN:
UML CLASS DIAGRAM
RELATIONSHIPS
![Page 2: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/2.jpg)
2
1. Identify the information system’s purpose
2. Identify the information system’s actors and features
3. Identify Use Cases and create a Use Case Diagram
4. Identify Objects and their Classes and create a Class Diagram
5. Create Interaction/Scenario Diagrams
6. Create Detail Logic for Operations
7. Repeat activities 1-6 as required to refine the “blueprints”
A Simplified Object-OrientedSystems Analysis & Conceptual Design Methodology
Activities
![Page 3: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/3.jpg)
3
• 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)
Objects
![Page 4: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/4.jpg)
4
Defining ClassA CLASS is a template (specification, blueprint)for a collection of objects that share a commonset of attributes and operations.
HealthClubMemberClass
Objects
attributesoperations
![Page 5: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/5.jpg)
5
• RelationshipsA RELATIONSHIP is what a class or an object
knows about another class or object.
Generalization (Class-to-Class) (Superclass/Subclass)
• Inheritance• Ex: Person - FacultyPerson, StudentPerson, Staff...
• Ex: ModesOfTravel - Airplane, Train, Auto, Cycle, Boat...
[Object] Associations• FacultyInformation - CourseInformation• StudentInformation - CourseInformation
[Object] Aggregations & Composition (Whole-Part)
• Assembly - Parts• Group - Members• Container - Contents
F o
u r
T
y p
e s
![Page 6: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/6.jpg)
6
• Relationships
1) show relationships 2) enforce integrity 3) help produce results
• 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.
1
0,m
UniversityCourse
StudentInCourse
StudentInformation
1
0,m
Exist to:
In this example:
![Page 7: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/7.jpg)
7
UML Class Diagram Notation
Member
memberNumberfirstNamelastNametelephoneaddresscityetc...
checkOutVideocheckInVideobuyItemetc...
attributes
operations
{{
Expanded view of a
Class into its three
sections:
Top: Class Name
Middle: attributes
Bottom: operations
Class
1 of 2
![Page 8: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/8.jpg)
8
Object Association
n n
ClassGeneralizationRelationship
ObjectAggregationAssociation
0..*
1..*
Object CompositionAssociation
0..*
1
UML Class Diagram Notation 2 of 2
Will always be “1”
![Page 9: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/9.jpg)
9
Class Diagram Relationships
Class
• Generalization
Object
• Association
• Aggregation
• Composition
![Page 10: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/10.jpg)
10
Generalization (Class-to-Class) (superclass – subclass; supertype – subtype)
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. Inherited operations in the specialization classes may be polymorphic. Only use when objects do NOT “transmute” (add, copy, delete) Multiple inheritance is allowed in the UML but can complicate the class model’s
understanding and implementation (e.g., C++ supports but Java and Smalltalk do
not).
![Page 11: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/11.jpg)
11
<<abstract>>
Role
attributes
operations
Generalization Example
Faculty
attributes
operations
Student
attributes
operations
Staff
attributes
operations
Visitor
attributes
operations
Note: <<abstract>> = no objects
Others:•Transactions•Things• Places• Etc...
![Page 12: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/12.jpg)
12
Person
attributes
operations
Poor Generalization Example(violates the “is a” or “is a kind of” heuristic)
Arm
attributes
operations
Leg
attributes
operations
Head
attributes
operations
![Page 13: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/13.jpg)
13
Generalization Inheritance
Generalization
a1a2a3o1o2o3
Specialization
a4a5a6o4o5o6
One-WayInheritance
from theGeneralization
to theSpecialization
Specialization
a1a2a3a4a5a6
o1o2o3o4o5o6(a = attribute; o = operation)
Common
Unique
Generalization
a1a2a3o1o2o3
![Page 14: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/14.jpg)
14
Generalization - Multiple Inheritance
Generalization1
a1a2a3
o3o4o5
Specialization
a6a7a8
o6o7o8
Generalization2
a2a4a5
o1o2o3
inherited attributes
a1a2 (which one?)a3a4a5
inherited operations
o1o2o3o4o5
(which one?)
![Page 15: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/15.jpg)
15
UML Generalization Notation
Supertype
Subtype 2Subtype 1
discriminator
Useful text
Note
Note: Supertype = Superclass; Subtype = Subclass
![Page 16: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/16.jpg)
16
Generalization - Multiple Classification
<<abstract>>
Person
Female
Male
Physical-therapist
Nurse
Doctor
role
Patient
patient
Gender
Discriminator
#1
#2
#3
![Page 17: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/17.jpg)
17Rational Rose Class Diagram Example
![Page 18: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/18.jpg)
18
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
![Page 19: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/19.jpg)
19
x
x
x
x
x
x
Wholeattributesoperations
PartNattributesoperations
Part2attributesoperations
Part1attributesoperations
1
y
1
y
1
y
Wholeattributesoperations
PartNattributesoperations
Part2attributesoperations
Part1attributesoperations
Class Aattributesoperations
Class Battributesoperations
Class Aattributesoperations
Class Battributesoperations
x
x
x
x
Object Association Relationship Patterns
a) Object Associations
b) ObjectAggregationAssociations
c) ObjectCompositionAssociations(y may not be “1”)
![Page 20: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/20.jpg)
20
Associations
Class A Class Brole A
role B
Company PersonEmployer
Employee
Example:
![Page 21: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/21.jpg)
21
Multiplicities
Class
Class
Class
Class
1
0..*
0..1
m..n
exactly one
many(zero or more)
optional(zero or one)
numericallyspecified
Course CourseOffering1
0..*
Example:
![Page 22: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/22.jpg)
22
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???
![Page 23: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/23.jpg)
23
Aggregation Composition
0..*
1..*
Faculty
CourseTeaching
1..*
1
SalesOrder
SalesOrderLineItem
(another: hand --> finger)(another: assembly --> part)
(team-teaching is possible)
![Page 24: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/24.jpg)
24
Composition
Person{abstract}
Faculty Student
FacultyStudent
Person
Note: Attributes may need to be considered to more-fully understand
FacultyRole
StudentRole
1
10..1
0..1
Composition is often used in place of Generalization (inheritance)
![Page 25: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/25.jpg)
25
Association, Aggregation and Composition
Whole
Part
Whole
Part
0..*
0..*
w1 w
2 w3 w
4
p6
p4
p5
p3p
1
p2
Template/Pattern Example
(
![Page 26: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/26.jpg)
26
Whole
51
2
3
Multiplicity Example #1
•One Whole is associated with 5 Part1•One Part1 is associated with 1 Whole
WW
PP
PPPPPPPP
WWPPWW
PPPP WWPP
WW
WW
•One Whole is associated with 2 PartN•One PartN is associated with 3 Whole
Part1 PartN
![Page 27: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/27.jpg)
27
Multiplicity Example #2
1..n
1
0..*
2..5
C1C1
C2C2
C2C2C2C2C2C2C2C2
etc...etc...
min.min.max.max.
C1C1
C3C3
C3C3C3C3C3C3C3C3
etc...etc...
C3C3
C1C1
C1C1C1C1
C1C1C1C11..n * 2..5
Class1
Class2 Class3
C2C2
C1C11
![Page 28: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/28.jpg)
28
FacultyInformation
1
0..*
1 11
1..* 0..*
0..*
0..*
Multiplicity Example #3
StudentInformation
DegreeHeld CommitteeAssign
CourseTeach ClubMember
CourseCompleted
0..*
![Page 29: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/29.jpg)
29
CourseInformation0..*
0..*
“many-to-many” multiplicity
attributesoperations
StudentInformation
attributesoperations
Becomes either
0..* 0..*
SemesterTakenGradeEarned
1 1
StudentInformation
attributes
operations
CourseInformation
attributes
operations
StudentCourseInformation
operations
Attributes that represent the “union” of the two classes are located in this “association” class.
StudentInformation
attributes
operations
CourseInformation
attributes
operations
0..*
0..*
SemesterTakenGradeEarned
StudentCourseInformation
operations
![Page 30: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/30.jpg)
30
Reflexive Association Relationships
Objects within the same class have arelationship with each other.
Course
0..*
0..*
has pre-requisite of
is pre-requisite for
![Page 31: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/31.jpg)
31
Inventory
Video Store – UML Class Diagram
SaleItem RentalItem
Video Game ConcessionItem VCR
Transaction Employee StoreLocation
SaleTransaction RentalTransaction Suplier
Member PurchaseOrder
SaleRentalLineItemPurchaseOrderLineItem
1
0..*
0..* 0..1 10..*
1..*
1 1
1..*
10..*
1
0..*
11..*
10..*
0..*
1
![Page 32: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/32.jpg)
32
![Page 33: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/33.jpg)
33
![Page 34: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/34.jpg)
34
![Page 35: 1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS.](https://reader036.fdocuments.us/reader036/viewer/2022062315/5697c0281a28abf838cd6e2f/html5/thumbnails/35.jpg)
35
QUITTING TIME