36
Class & Object Diagrams Software Design Methodology

Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

Embed Size (px)

Citation preview

Page 1: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

Class & Object Diagrams

Software Design Methodology

Page 2: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

2

UML Class Diagrams

The heart of the UMLDescribes the classes in the system and the relations among themSupports most OO concepts

associationsaggregationinheritance (including multiple)

Page 3: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

3

Classes

Classes are denoted by rectangles.AttributesOperations Responsibilities Class

attribute: type

operationoperation(parameters)

responsibility

Page 4: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

4

Classes

Attribute: A named property of a class that describes a range of values that instances of the property may hold.Operation: Implementation of a service that can be requested.Responsibility: A contract or an obligation of a class. As the model is refined the responsibilities are transformed into attributes and operations.

Page 5: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

5

Object• Object - a concept, an abstraction, a thing

meaningful to the domain • Joe Smith Person• Lassie Dog• flight #713 Flight• the top window Window

• Object Class - a collection of all objects having the same set of features.

• Each object has a unique identity and is an instance of its object class.

Page 6: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

6

Class Diagrams vs. Object Diagrams

Person

nameemployeeIDtitle

Smith:PersonJoe

p:Person

name=“Yahoo”employeeID=1212title=“VP of production”

Page 7: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

7

Relationships

A relationship is a connection among things.Common relationships: Dependencies, Associations, Generalization and Aggregations.

Page 8: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

8

DependencyA dependency states that a change in specification of one thing may effect another thing that uses it

CourseCourseSchedule

add(c:Course)

remove(c:course)

Event

Dean

Window

open()

close()

Student

grade

CalculateAverage(grade)

A class takes an object of another class as a parameter

A class accesses an object of another class

A class calls a class operation in another class

Page 9: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

9

An association is structural relationship that specifies that objects of one thing are connected to objects of another.

Association

CountryName: stringPopulation: integerArea: Km2

CityName: stringPopulation: integer

Has-capital

Binary association

Page 10: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

10

Association Name

Printed at the center of the lineDescribes the nature of the relationship (usually a verb)A direction triangle can be added

Page 11: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

11

Association Multiplicity

Used when it is important to state how many objects may be connected across an instance of an association. When a number is stated at an end of an association it is specified that for each object at the class at the opposite end there must be that many objects at the near end.An * denotes many - which can be any number between zero and infinity.

Page 12: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

12

Multiplicity Example

Office

Employee Department1..*

1..10

1

0..1

At least one employee in a departmentAn employee belongs to exactly one departmentAn employee has zero or one officeAn office is assigned to a number of one up to 10

employees

Page 13: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

13

Multiplicity symbols (participation constraints)

LineName: string

PointName: stringX-Coordinate: integerY-Coordinate: integer

Intersects0,2..* *

Is Endpoint Of 2*

Page 14: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

14

Association Classes

Denoted as a class attached to the associationSpecify properties of the associationDoes not belong to any of the connected class

CarReg. Num.ModelYear

Person

NameYear Purchased

* 1.. *Owner of

Page 15: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

15

Association Attributes

Works-forPerson

Name: stringID: stringAddress: string

Company

Name: stringAddress: string

salary: floatjob: string

1..* *

submitStudent

NameIDFaculty

AssignmentNumberSubjectSubmission date

Grade

140 4

Page 16: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

16

Association Role Names

Names may be added at each end of the associationProvide better understanding of the association meaningEspecially helpful in self-associated classes

Person

Manager

Worker

Manages

Companyemployee employer

*

1..0

*..1 *

Page 17: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

17

Role Names, Constraints and Qualifiers

Ordering

Qualifier:an attribute that reduces the association’s multiplicity.

ownerUser Directory

contents

authorized usercontainer

1

***

*

0..1

{ordered}Window Screenvisible-on

* 1

Directory Filefile name0..1*

Role

Page 18: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

18

Classes versus Objects

Class Diagram Object Diagram

Classes nameattributesoperationsresponsibility

Association namemultiplicityrole

Association Classes

Objects values forattributes

Link

Link Object

Page 19: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

19

Class Diagram Example

holdsReader

NameIDAddress

CopyCodeShelf locationStatusLoan duration

Return date

0..1 *

BookCodeNameEditionAuthor

of

reserved1

*

*

*{ordered}

Page 20: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

20

Object Diagram Example

357:ReaderName=“Joe”ID=357Address=“Jerusalem”

57168-1:CopyCode=57168-1Shelf location=681.3.06Status=“at loan”Loan duration=2 weeks

holds

Return date=16.11.00

UML:BookCode=57168Name=“The Unified Modeling

Language User Guide”Edition=1Author=“Booch, Rumbaugh,

Jacobson”

of

reserved

482:ReaderName:”Michel”ID=482Address=“Haifa”

936:ReaderName=“David”ID=936Address=“Haifa”

57168-2:CopyCode=57168-2Shelf location=681.3.06Status=“at loan”Loan duration=1 month

holds

Return date=24.11.00

of

Page 21: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

21

Aggregation

“whole-part” relationship between classesAssemble a class from other classesCombined with “many” - assemble a class from

a couple of instances of that classMay be replaced by associations...

SentenceParagraph

Picture

Documenttext fontpages

*

*

*

Page 22: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

22

Aggregation (whole-part; part-of; and)

Monitor

Microcomputer

System box Mouse Keyboard

RAM CPU Fan Chassis

aggregate; whole

constituents; parts

0..* 1 0..1 1

* 1 0..1 1

Page 23: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

23

ConstraintA functional relationship between entities

(objects, classes, attributes, links, associations) of an object model.

Employeesalary

Windowlengthwidth

boss

{salary < boss.salary} {0.8 ≤length/width≤1.5}

Company Office Person{ordered}

Member-ofPerson Committee

Chair-of{subset}

0..1

*

**

* **

Page 24: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

24

Constraint (Cont.)

Persongender:{female, male}

Portfolio

{self.wife.gender=female and self.husband.gender=male}

{secured}=Across the association communicated is encrypted.

BankAccount

Corporation{secured}

{xor}

0..1

wife

0..1

husband

Page 25: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

25

Inheritance (Generalization)Denoted by a triangle - connects one superclass to many subclassesMultiple inheritance is allowed

a subclass may be connected to more than one superclassnot recommended - hard to understand, hard to implement

Four applicable standard constraints:CompleteIncompletedisjointoverlapping

Page 26: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

26

Generalization (gen-spec; kind-of; or)Figure

colorcenter positionpen typeMoveRotateDisplay

0 Dimensional 1 DimensionalOrientationScale

2 DimensionalOrientationfill typefillScale

RadiusAngle

Arc

Display

Control pts

Spline

Display

Endpoints

Line

Display Diameter

Circle

Display

Endpoints

Polygon

Display

superclass

subclasses

Page 27: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

27

Multiple Inheritance

CheckingAccount

BankAccount

InterestBearingItem InsurableItemAsset

RealEstate Security

SavingAccount Stock Bond

Page 28: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

28

Abstract Class - a class that has no direct instances

Class

Concrete Class

subclass

Abstract Class

Non-leaf Class

Leaf Class

Instance has directinstances

superclass

has subclasses

superclass

has subclasses

1..*

1..*

1..*

1..*

Page 29: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

29

Recursive Aggregation

Program

Block

Compoundstatement

Simplestatement

2..*1..*

Page 30: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

30

Recursive Terms (Multiple Binary term use)

ConstantValue

ExpressionBinary Operator

VariableName

First OperandSecond Operand

**

11

Term

Page 31: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

31

(x+y/2)/(x/3+y)di1:ExpressionBinary op=“/”

pl2:ExpressionBinary op=“+”

pl1:ExpressionBinary op=“+”

di3:ExpressionBinary op=“/”

di2:ExpressionBinary op=“/”

y:VariableName=“y”

two:ConstantValue=2

x:VariableName=“x”

three:ConstantValue=3

2nd

1st1st1st

1st

1st

2nd

2nd2nd

2nd

Page 32: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

32

Recursive Terms(Unary &Binary & Single Term Use)

Second Operand

ConstantValue

Expression VariableName

First Operand 11

Term

Binary Unary

Page 33: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

33

Abstract Operations

HourlyEmployee

hourly rateovertime ratecompute pay

SalariedEmployee

weekly rate

compute pay

ExemptEmployee

monthly rate

compute pay

Employee

year-to-date earningscompute pay {abstract}

The origin class defines the protocol: •semantics;•attribute types;•number and type of arguments for methods

Page 34: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

34

Generalization as Extension and Restriction

Extension: addition of new features.(e.g. Person vs. Student)Restriction: constraining ancestor

attributes.(e.g. nullifying some attributes)

Page 35: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

35

Overriding Operations

Tension between use of inheritance for abstraction vs. implementation reuse.Reasons for overriding:

Extension(e.g. Person has Report_Marriage; Employee has Report_Marriage that extends the code of Report_Marriage)Restriction(e.g. Subclass operation use some of superclasssub-operations)

Page 36: Class & Object Diagrams - coltech.vnu.edu.vnhungpn/class/ASE/Lect2_3.pdf · Class Diagram Object Diagram Classes name attributes ... box Mouse Keyboard RAM CPU Fan Chassis ... Generalization

36

Reasons for overriding (cont.)

Optimization e.g. IntegerSet has findMax; SortedIntegerSet has another implementation for findMax.ConvenienceLook for a similar class and use it as superclass.This is ad hoc use which is semantically wrong.Better: define a third common class, from which both will inherit.

Rule for method overriding:All methods that implement an operation must

have the same protocol.