uml class diagram 3 relationships

35
1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS

Upload: thanhluantink30c

Post on 17-Nov-2014

877 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UML Class Diagram 3 Relationships

1

CONCEPTUAL DESIGN:

UML CLASS DIAGRAM

RELATIONSHIPS

Page 2: UML Class Diagram 3 Relationships

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: UML Class Diagram 3 Relationships

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: UML Class Diagram 3 Relationships

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: UML Class Diagram 3 Relationships

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: UML Class Diagram 3 Relationships

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: UML Class Diagram 3 Relationships

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: UML Class Diagram 3 Relationships

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: UML Class Diagram 3 Relationships

9

Class Diagram Relationships

Class

• Generalization

Object

• Association

• Aggregation

• Composition

Page 10: UML Class Diagram 3 Relationships

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: UML Class Diagram 3 Relationships

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: UML Class Diagram 3 Relationships

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: UML Class Diagram 3 Relationships

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: UML Class Diagram 3 Relationships

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: UML Class Diagram 3 Relationships

15

UML Generalization Notation

Supertype

Subtype 2Subtype 1

discriminator

Useful text

Note

Note: Supertype = Superclass; Subtype = Subclass

Page 16: UML Class Diagram 3 Relationships

16

Generalization - Multiple Classification

<<abstract>>

Person

Female

Male

Physical-therapist

Nurse

Doctor

role

Patient

patient

Gender{complete}

Discriminator

#1

#2

#3

Page 17: UML Class Diagram 3 Relationships

17Rational Rose Class Diagram Example

Page 18: UML Class Diagram 3 Relationships

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

No inheritance as in generalizations

Page 19: UML Class Diagram 3 Relationships

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: UML Class Diagram 3 Relationships

20

Associations

Class A Class Brole A

role B

Company PersonEmployer

Employee

Example:

Page 21: UML Class Diagram 3 Relationships

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: UML Class Diagram 3 Relationships

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: UML Class Diagram 3 Relationships

23

Aggregation Composition

0..*

1..*

Faculty

CourseTeaching

1..*

1

SalesOrder

SalesOrderLineItem

(another: hand --> finger)(another: assembly --> part)

(team-teaching is possible)

Page 24: UML Class Diagram 3 Relationships

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) to avoid “transmuting” (adding, copying, and deleting of objects)

Page 25: UML Class Diagram 3 Relationships

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

(association, aggregation & composition look the same)

Page 26: UML Class Diagram 3 Relationships

26

Whole

51

2

3

Multiplicity Example #1

• One Whole is associated with 5 Part1

• One Part1 is associated with 1 Whole

W

P

P

P

P

P

WPW

PP WP

W

W

• One Whole is associated with 2 PartN• One PartN is associated with 3 Whole

Part1 PartN

Page 27: UML Class Diagram 3 Relationships

27

Multiplicity Example #2

1..n

1

0..*

2..5

C1

C2

C2

C2

C2

C2

etc...

min.max.

C1

C3

C3

C3

C3

C3

etc...

C3

C1

C1C1

C1

C11..n * 2..5

Class1

Class2 Class3

C2

C11

Page 28: UML Class Diagram 3 Relationships

28

FacultyInformation

1

0..*

1 11

1..* 0..*

0..*

0..*

Multiplicity Example #3

StudentInformation

DegreeHeld CommitteeAssign

CourseTeach ClubMember

CourseCompleted

0..*

Page 29: UML Class Diagram 3 Relationships

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: UML Class Diagram 3 Relationships

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: UML Class Diagram 3 Relationships

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: UML Class Diagram 3 Relationships

32

Page 33: UML Class Diagram 3 Relationships

33

Page 34: UML Class Diagram 3 Relationships

34

Page 35: UML Class Diagram 3 Relationships

35

QUITTING TIME