214 conceptual design: uml class diagram relationships 12/9/20151

35
1 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 07/04/22 1

Upload: charity-alexander

Post on 17-Jan-2016

218 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

1

CONCEPTUAL DESIGN:

UML CLASS DIAGRAM

RELATIONSHIPS

04/21/23 1

Page 2: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

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

04/21/23 1

Page 3: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

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

04/21/23 1

Page 4: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

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

04/21/23 1

Page 5: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

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

04/21/23 1

Page 6: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

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:

04/21/23 1

Page 7: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

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

04/21/23 1

Page 8: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

8

Object Association

n n

ClassGeneralizationRelationship

ObjectAggregationAssociation

0..*

1..*

Object CompositionAssociation

0..*

1

UML Class Diagram Notation 2 of 2

Will always be “1”04/21/23 1

Page 9: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

9

Class Diagram Relationships

Class

• Generalization

Object

• Association

• Aggregation

• Composition

04/21/23 1

Page 10: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

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).

04/21/23 1

Page 11: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

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...

04/21/23 1

Page 12: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

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

04/21/23 1

Page 13: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

13

Generalization Inheritance

Generalization

a1a2a3o1o2o3

Specialization

a4a5a6o4o5o6

One-WayInheritance

from theGeneralization

to theSpecialization

Specialization

a1a2a3a4a5a6

o1o2o3o4o5o6(a = attribute; o = operation)

Common

Unique

Generalization

a1a2a3o1o2o3

04/21/23 1

Page 14: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

14

Generalization - Multiple Inheritance

Generalization1

a1a2a3

o3o4o5

Specialization

a6a7a8

o6o7o8

Generalization2

a2a4a5

o1o2o3

inherited attributes

a1a2 (which one?)a3a4a5

inherited operations

o1o2o3o4o5

(which one?)

04/21/23 1

Page 15: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

15

UML Generalization Notation

Supertype

Subtype 2Subtype 1

discriminator

Useful text

Note

Note: Supertype = Superclass; Subtype = Subclass04/21/23 1

Page 16: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

16

Generalization - Multiple Classification

<<abstract>>

Person

Female

Male

Physical-therapist

Nurse

Doctor

role

Patient

patient

Gender{complete}

Discriminator

#1

#2

#304/21/23 1

Page 17: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

17Rational Rose Class Diagram Example04/21/23 1

Page 18: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

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 generalizations04/21/23 1

Page 19: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

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”)

04/21/23 1

Page 20: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

20

Associations

Class A Class Brole A

role B

Company PersonEmployer

Employee

Example:

04/21/23 1

Page 21: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

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:

04/21/23 1

Page 22: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

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???04/21/23 1

Page 23: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

23

Aggregation Composition

0..*

1..*

Faculty

CourseTeaching

1..*

1

SalesOrder

SalesOrderLineItem

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

(team-teaching is possible)

04/21/23 1

Page 24: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

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)

04/21/23 1

Page 25: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

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)

04/21/23 1

Page 26: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

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

04/21/23 1

Page 27: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

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

04/21/23 1

Page 28: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

28

FacultyInformation

1

0..*

1 11

1..* 0..*

0..*

0..*

Multiplicity Example #3

StudentInformation

DegreeHeld CommitteeAssign

CourseTeach ClubMember

CourseCompleted

0..*

04/21/23 1

Page 29: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

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

04/21/23 1

Page 30: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

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

04/21/23 1

Page 31: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

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

04/21/23 1

Page 32: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

3204/21/23 1

Page 33: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

3304/21/23 1

Page 34: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

3404/21/23 1

Page 35: 214 CONCEPTUAL DESIGN: UML CLASS DIAGRAM RELATIONSHIPS 12/9/20151

35

QUITTING TIME

04/21/23 1