object modeling (2)

22
Object Modeling (2) Chapter 3 (2) Part 1: Modeling Concepts Object-Oriented Modeling and Desig n Byung-Hyun Ha ([email protected] )

Upload: jena

Post on 12-Feb-2016

59 views

Category:

Documents


0 download

DESCRIPTION

Object Modeling (2). Chapter 3 (2) Part 1: Modeling Concepts Object-Oriented Modeling and Design Byung-Hyun Ha ( [email protected] ). Lecture Outline. Introduction Links and associations Advanced link and association concepts Generalization and inheritance Remaining parts. Introduction. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Object Modeling (2)

Object Modeling (2)

Chapter 3 (2)

Part 1: Modeling Concepts

Object-Oriented Modeling and Design

Byung-Hyun Ha ([email protected])

Page 2: Object Modeling (2)

Lecture Outline Introduction Links and associations Advanced link and association concepts Generalization and inheritance Remaining parts

Page 3: Object Modeling (2)

Introduction Class and objects

A class is abstraction or specification of a group of similar objects e.g. Person vs. Joe, Mary, …

e.g. Every instance of our Vector has x, y, and length().

Person (Person)Joe Smith

24

(Person)Mary Sharp

52name: stringage: integer

public class Vector {

double x;double y;

double length() {double len = Math.sqrt(x * x + y * y);return len;

}}

Page 4: Object Modeling (2)

Introduction Association vs. links

An association is abstraction or specification of a group of similar links

e.g. Has-capital

Countryname

Cityname

Has-capital

(Country)Canada

(City)Ottawa

Has-capital

(Country)France

(City)Paris

Has-capital

(Country)Senegal

(City)Dakar

Has-capital

Page 5: Object Modeling (2)

Introduction Association vs. links (cont’)

e.g. Intersects

Linename

Pointname

Intersects2+

Page 6: Object Modeling (2)

Links and Associations (cont’) Multiplicity specification

How many instances of one class may related to a single instance of an associated class

One or many

Optional

Numbers

Playboy Girlloves

Romanticist Girlloves

Boy Girlloves 1+3-5

Page 7: Object Modeling (2)

Links and Associations Multiplicity depends on problem

e.g. tax collection application

e.g. auto workers’ union

It exposes hidden assumption built into the model

Person CompanyWorks-for

Person CompanyWorks-for

Page 8: Object Modeling (2)

Advanced Link and Association Concepts Role

One end of association

Role name A name that uniquely identifies one end of an association

Person CompanyWorks-for

employee employer

User Directory container

contents

owner

authorized user

Page 9: Object Modeling (2)

Advanced Link and Association Concepts Role name

All role names on the far end of associations attached to a class must be unique

The role name is a derived attribute of the source class

Role name for n-ary association Association of degree 3 or more cannot simply be traversed from

one end to another as binary associations can

Project Language

Person

Page 10: Object Modeling (2)

Advanced Link and Association Concepts Link attributes

Properties of a link in an association

File UserAccessible by

access permission

/etc/termcap (read) John Doe/etc/termcap (read-write) Mary Brown/usr/doe/.login (read-write) John Doe

Page 11: Object Modeling (2)

Advanced Link and Association Concepts Link attributes for one-to-many association

e.g. works-for and manages

Personnamesocial security no.address

Companynameaddress

Works-for

salaryjob title

Manages worker

boss

performance rating

Page 12: Object Modeling (2)

Advanced Link and Association Concepts Folding link attributes

It is possible to fold link attributes for one-to-one and one-to-many associations into the class opposite the “one” site

How is it possible and which one is preferred?

Personnamesocial security no.address

Companynameaddress

Works-for

salaryjob title

Personnamesocial security no.addresssalaryjob title

Companynameaddress

Works-for

Page 13: Object Modeling (2)

Advanced Link and Association Concepts Link attributes for ternary association

Pitcher Year

Team

winslosses

W LHarry Eisenstat Cleveland Indians 1939 6 7Harry Eisenstat Detroit Tigers 1939 2 2Willis Hudlin Cleveland Indians 1939 9 10Willis Hudlin Cleveland Indians 1940 2 1Willis Hudlin Washington Senators 1940 1 2Willis Hudlin St. Louis Browns 1940 0 1

Page 14: Object Modeling (2)

Advanced Link and Association Concepts Modeling an associations as a class

Each link becomes one instance of the class It is useful when links can participate in associations with other

objects or when links are subject to operations

User WorkstationAuthorized on

Authorizationpriorityprivileges

start session

Directorhome directory

Page 15: Object Modeling (2)

Advanced Link and Association Concepts Ordering

A special kind of constraint

Window ScreenVisible-on

{ordered}

Page 16: Object Modeling (2)

Advanced Link and Association Concepts Qualification

A qualified association relates two object classes and a qualifier The qualifier distinguishes among the set of objects at the many

end of an association

Directory File

Directory Filefile name

Page 17: Object Modeling (2)

Advanced Link and Association Concepts Examples

Ticker symbol of company in stock exchange

Company and office

Stockexchange

Company

ticker symbol

lists

Stockexchange

Company

ticker symbol

lists

Company Personofficeofficerorganization

Page 18: Object Modeling (2)

Advanced Link and Association Concepts Aggregation

“Part-whole” or “a-part-of” relationship Used for components and assembly

• Existence of a part depends on existence of whole Tightly coupled form of association extra semantics

• Transitivity• If A is part of B and B is part of C, then A is part of C

• Antisymmetric• If A is part of B, then B is not part of A

• Propagation of properties• e.g. location of a door handle is obtained from the door; door obt

ains its properties from the car, …

Document Paragraph Sentence

Page 19: Object Modeling (2)

Generalization and Inheritance Generalization

The relationship between a class and one or more refined version of it

• superclass and subclass “is-a” relationship Transitive

• ancestor and descendant• An instance of a subclass is simultaneously an instance of all its anc

estor classesEquipment

namemanufacturerweightcost

Pump Tank

flow rate volume …

Page 20: Object Modeling (2)

Generalization and Inheritance Examples

Fig. 3.23 and 3.24

Some guidelines Do not nest subclasses too deeply “An inheritance hierarchy that is two or three levels deep is certai

nly acceptable; ten levels deep is probably excessive; five or six levels may or may not proper”

Inheritance, generalization, and specialization Different viewpoints of the same relationship

A subclass is a special case of its superclass Don’t borrow a class using inheritance, when the new class is not

really a special case of the original class!

Page 21: Object Modeling (2)

Remaining Parts Grouping constructs

Module and sheet

A sample object model Fig. 3.25: object model for window system

Practical tips …

Page 22: Object Modeling (2)

Homework HW7

Exercise 3.6 (p. 50)

HW8: extend E3.6a. Modify the class diagram in Figure E3.6 (p. 51) so as to handle u

nary minus and functions (e.g., sqrt(x) for calculating square root of x) with arbitrary number of arguments.

b. Prepare an instance diagram for the class diagram you made for the expression -(B + sqrt(B*B – 4*A*C))/(4*A*A).