Вы находитесь на странице: 1из 61

Object Oriented Analysis and Design

Using the UML


Version 4.2
Introduction to Object Orientation

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

Objectives: Introduction to Object Orientation


Understand the basic principles of object
orientation
Understand the basic concepts and terms
of object orientation and the associated
UML notation
Appreciate the strengths of object
orientation
Understand some basic UML modeling
mechanisms

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

Introduction to Object Orientation Topics


Basic Principles of Object Orientation
Basic Concepts of Object Orientation
Strengths of Object Orientation
General UML Modeling Mechanisms

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

Basic Principles of Object Orientation

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

Hierarchy

Modularity

Encapsulation

Abstraction

Object Orientation

What is Abstraction?

Salesperso
n

Customer

Not saying
Which
salesperso
n just a
salesperso
n in
general!!!

Manages Complexity
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

Product

What is Encapsulation?
Hide implementation from clients
Clients depend on interface

How does an object encapsulate


What does it encapsulate?

Improves Resiliency
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

What is Modularity?
The breaking up of something complex into
manageable pieces
Order
Entry
Order Processing
System

Order
Fulfillment

Billing
Manages Complexity
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

What is Hierarchy?
Asset

Levels of abstraction

Increasing
abstraction

Security

BankAccount

Savings Checking
Decreasing
abstraction

Stock

Bond

Elements at the same level of the hierarchy


should be at the same level of abstraction

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

RealEstate

Introduction to Object Orientation Topics


Basic Principles of Object Orientation
Basic Concepts of Object Orientation
Strengths of Object Orientation
General UML Modeling Mechanisms

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

Basic Concepts of Object Orientation


Object
Class
Attribute
Operation
Interface (Polymorphism)
Component
Package
Subsystem
Relationships
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

10

Basic Concepts of Object Orientation


Object
Class
Attribute
Operation
Interface (Polymorphism)
Component
Package
Subsystem
Relationships
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

11

What is an Object?
Informally, an object represents an entity,
either physical, conceptual, or software
Physical entity
Truck

Conceptual entity
Chemical Process

Software entity
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

Linked List

12

A More Formal Definition


An object is a concept, abstraction, or thing
with sharp boundaries and meaning for an
application
An object is something that has:
State
Behavior
Identity

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

13

Representing Objects
An object is represented as rectangles with
underlined names
: Professor
a + b = 10

ProfessorClark
Class Name Only

ProfessorClark :
Professor

Professor Clark

Object Name Only

Class and Object Name


OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

(stay tuned for classes)


14

Basic Concepts of Object Orientation


Object
Class
Attribute
Operation
Interface (Polymorphism)
Component
Package
Subsystem
Relationships
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

15

What is a Class?
A class is a description of a group of objects
with common properties (attributes),
behavior (operations), relationships, and
semantics
An object is an instance of a class

A class is an abstraction in that it:


Emphasizes relevant characteristics
Suppresses other characteristics

OO Principle: Abstraction
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

16

Sample Class
Class
Course
Properties
Name
Location
Days offered
Credit hours
Start time
End time

Behavior
Add a student
Delete a student
Get course roster
Determine if it is full

a + b = 10

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

17

Representing Classes
A class is represented using a
compartmented rectangle

a + b = 10

Professor

Professor Clark

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

18

Class Compartments
A class is comprised of three sections
The first section contains the class name
The second section shows the structure
(attributes)
The third section shows the behavior
(operations)
Class Name
Attributes
Operations

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

Professor
name
empID
create( )
save( )
delete( )
change( )
19

Classes of Objects
How many classes do you see?

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

20

The Relationship Between Classes and Objects


A class is an abstract definition of an object
It defines the structure and behavior of each
object in the class
It serves as a template for creating objects

Objects are grouped into classes


Objects

Class

Professor
Professor Smith

Professor Mellon

Professor Jones
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

21

Basic Concepts of Object Orientation


Object
Class
Attribute
Operation
Interface (Polymorphism)
Component
Package
Subsystem
Relationships
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

22

What is an Attribute?
Object

Class
Attribute

Attribute Value

:CourseOffering

CourseOffering

number = 101
startTime = 900
endTime = 1100

number
startTime
endTime

:CourseOffering
number = 104
startTime = 1300
endTime = 1500

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

23

Basic Concepts of Object Orientation


Object
Class
Attribute
Operation
Interface (Polymorphism)
Component
Package
Subsystem
Relationships
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

24

What is an Operation?

CourseOffering
Class

Operation

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

addStudent
deleteStudent
getStartTime
getEndTime

25

Basic Concepts of Object Orientation


Object
Class
Attribute
Operation
Interface (Polymorphism)
Component
Package
Subsystem
Relationships
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

26

What is Polymorphism?
The ability to hide many different
implementations behind a single interface

Manufacturer A

Manufacturer B

OO Principle:
Encapsulation
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

27

Manufacturer C

What is an Interface?
Interfaces formalize polymorphism
Interfaces support plug-and-play
architectures
Tube
<<interface>>

Shape

Pyramid
Draw
Move
Scale
Rotate

Cube

Realization relationship
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

28

(stay tuned for realization


relationships)

Interface Representations
Tube

Elided/Iconic
Representation
(lollipop)

Pyramid

Shape

Canonical
(Class/Stereotype)
Representation

Cube

Tube
<<interface>>

Shape

Pyramid

Draw
Move
Scale
Rotate
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

Cube
29

(stay tuned for realization

Basic Concepts of Object Orientation


Object
Class
Attribute
Operation
Interface (Polymorphism)
Component
Package
Subsystem
Relationships
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

30

What is a Component?
A non-trivial, nearly independent, and
replaceable part of a system that fulfills a
clear function in the context of a welldefined architecture
A component may be
A source code component
A run time components or
An executable component
Source File
Name

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

<<EXE>>
Executable
Name

31

OO Principle:
Encapsulation

Component
Interface

<<DLL>>
Component
Name

Basic Concepts of Object Orientation


Object
Class
Attribute
Operation
Interface (Polymorphism)
Component
Package
Subsystem
Relationships
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

32

What is a Package?
A package is a general purpose mechanism for
organizing elements into groups
A model element which can contain other model
elements

Package Name

OO Principle:
Modularity

Uses
Organize the model under development
A unit of configuration management
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

33

Basic Concepts of Object Orientation


Object
Class
Attribute
Operation
Interface (Polymorphism)
Component
Package
Subsystem
Relationships
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

34

What is a Subsystem?
A combination of a package (can contain
other model elements) and a class (has
behavior)
Realizes one or more interfaces which
define its behavior
Realization

<<subsystem>>
Subsystem Name

Interface

Subsystem

Interface

OO Principles: Encapsulation and Modularity


(stay tuned for realization relationship)
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

35

Subsystems and Components


Components are the physical realization of
an abstraction in the design
Subsystems can be used to represent the
component in the design
Design Model

Implementation Model

<<subsystem>>
Component Name

Component
Interface

Component
Interface

Component
Name

OO Principles: Encapsulation and Modularity


OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

36

Basic Concepts of Object Orientation


Object
Class
Attribute
Operation
Interface (Polymorphism)
Component
Package
Subsystem
Relationships
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

37

Relationships
Association
Aggregation
Composition

Dependency
Generalization
Realization

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

38

Relationships: Association
Models a semantic connection among
classes
Association Name

Professor

University

Works for

Association
Class

Role Names

University

Professor
Employee

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

39

Employer

Relationships: Aggregation
A special form of association that models a
whole-part relationship between an
aggregate (the whole) and its parts
Whole

Part

Schedule

Student

Aggregation

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

40

Relationships: Composition
A form of aggregation with strong
ownership and coincident lifetimes
The parts cannot survive the whole/aggregate
Part

Whole

Schedule

Student

Aggregation

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

41

Association: Multiplicity and Navigation


Multiplicity defines how many objects
participate in a relationships
The number of instances of one class related
to ONE instance of the other class
Specified for each end of the association

Associations and aggregations are bidirectional by default, but it is often


desirable to restrict navigation to one
direction
If navigation is restricted, an arrowhead is
added to indicate the direction of the navigation
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

42

Association: Multiplicity
Unspecified
Exactly one
1
Zero or more (many, unlimited) 0..*
*

One or more
Zero or one
Specified range
Multiple, disjoint ranges
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

43

1..*
0..1
2..4
2, 4..6

Example: Multiplicity and Navigation

Multiplicity

Student

0..*

Navigation

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

44

Schedule

Relationships: Dependency
A relationship between two model elements
where a change in one may cause a
change in the other
Non-structural, using relationship
Client

Class

Package

Supplier

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

Supplier

Client

Dependency
relationship

ClientPackage

Component

SupplierPackage

45

Dependency
relationship

Relationships: Generalization
A relationship among classes where one
class shares the structure and/or behavior
of one or more classes
Defines a hierarchy of abstractions in which
a subclass inherits from one or more
superclasses
Single inheritance
Multiple inheritance

Generalization is an is-a-kind of
relationship
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

46

Example: Single Inheritance


One class inherits from another
Ancestor
Account
balance
name
number

Superclass
(parent)

Withdraw()
CreateStatement()

Generalization
Relationship

Subclasses

Checking

Savings

Withdraw()

GetInterest()
Withdraw()

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

Descendents
47

Example: Multiple Inheritance


A class can inherit from several other
classes
FlyingThing

Animal
multiple
inheritance

Airplane

Helicopter

Bird

Wolf

Horse

Use multiple inheritance only when needed, and


always with caution !
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

48

What Gets Inherited?


A subclass inherits its parents attributes,
operations, and relationships
A subclass may:
Add additional attributes, operations,
relationships
Redefine inherited operations (use caution!)

Common attributes, operations, and/or


relationships are shown at the highest
applicable level in the hierarchy
Inheritance leverages the similarities among classes
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

49

Example: What Gets Inherited

GroundVehicle

Superclass
(parent)

weight
licenseNumber

owner
0..*

Person

register( )

generalization

Subclass

Truck

Car
size

tonnage
getTax( )

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

50

Trailer

Relationships: Realization
One classifier serves as the contract that
the other classifier agrees to carry out
Found between:
Interfaces and the classifiers that realize them
Class
Subsystem

Interface

Interface

Component
Interface

Elided form

Use cases and the collaborations that realize


Canonical form
them
Use Case
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

Use-Case Realization
51

Class Diagram for the Sales Example

Sale

seller

buyer

Salesperson

item sold

Customer

Corporate

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

Product

Individual

54

shipping mechanism

Vehicle

Truck

Train

Effect of Requirements Change


Suppose you need a
new type of shipping
vehicle ...

seller

Salesperson

Sale

buyer

item sold

Customer

Corporate

Product

Truck

Individual

shipping mechanism

Vehicle

Train

Airplane

Change involves adding a new subclass


OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

55

Introduction to Object Orientation Topics


Basic Principles of Object Orientation
Basic Concepts of Object Orientation
Strengths of Object Orientation
General UML Modeling Mechanisms

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

56

Stereotypes
Classify and extend the UML notational
elements
Define a new model element in terms of
another model element
May be applied to all modeling elements
Represented with name in guillemets or as
a different icon
<<boundary>>
MyBoundaryClass
MyBoundaryClass

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

57

Example: Stereotypes
<<boundary>>

<<boundary>>
<<trace>>
DesignClass

Sample boundary class (stereotyp


Stereotype of dependency relatio
Stereotype of <<Processor>>
These create new symbols using
accustomed graphics.

<<Processor>>
Processor #1

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

Processor #1

58

Notes
A note can be added to any UML element
Notes may be added to add more
information to the diagram
It is a dog eared rectangle
The note may be anchored to an element
with a dashed line
There can be up to one
MaintainScheduleForm per
user session.

MaintainScheduleForm

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

59

Tagged Values
Extensions of the properties, or specific
attributes, of a UML element
Some properties are defined by UML
Persistence
Location (e.g., client, server)

Properties can be created by UML


modelers for any purpose
PersistentClass
{persistence}

OOAD Using the UML - Introduction to Object Orientation, v 4.2


Copyright 1998-1999 Rational Software, all rights reserved

anObject : ClassA
{location=server}

60

Constraints
Supports the addition of new rules or
modification of existing rules

Professor

Member

1..*
Department Head
1

Department

{subset}
1

This notation is used to capture two relationships between Professor-type objects


and Department-type objects; where one relationship is a subset of another.
Shows how UML can be tailored to correctly modeling exact relationships.
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

61

Review: Introduction to Object Orientation


What are the four basic principles of object
orientation? Provide a brief description of
each.
What is an Object and what is a Class?
What is the difference between them?
What is an Attribute?
What is an Operation?
What is an Interface? What is
Polymorphism?
What is a Component?
(continued)
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

62

Review: Introduction to Object Orientation (cont.)


What is a Package?
What is Subsystem? How does it relate to a
Component? How does it relate to a
package? How does it relate to a class?
Name the 4 basic UML relationships and
describe each.
Describe the strengths of object orientation.
Name and describe some general UML
mechanisms.
What are stereotypes? Name some common
uses of stereotypes.
OOAD Using the UML - Introduction to Object Orientation, v 4.2
Copyright 1998-1999 Rational Software, all rights reserved

63

Вам также может понравиться