OBJECT ORIENTED TECHNOLOGY
Download
Report
Transcript OBJECT ORIENTED TECHNOLOGY
TEN STEPS TO OBJECT-SPEAK
Terminology & Basic Concepts
Joy Starks
September 17, 1999
OBJECTIVES
Discuss the history of Object Oriented
Technology (OT)
Describe basic concepts of OT
Define terms in Object Oriented Analysis
& Design (OAD) and Programming
(OOP)
Relate definitions to real-world examples
Mention some benefits of OT
Practice by Example
HISTORY OF OT
1969
Dr. Kristin Nygaard of Norway
Model fjord and movement of ships
passing through it
HISTORY OF OT
The Problem
structured
programming separates data
from procedures
The Solution
Object
Oriented Programming
model each component (data and
procedure) as a single unit
model relationships between components
OT BASIC CONCEPTS
Objects and Classes
Operations
Requests
Attributes
Inheritance
Encapsulation
Polymorphism
WHAT’S AN OBJECT?
Anything, real or abstract, about which
we store data
Dr. Nygaard’s objects
mathematical
models of boats
physical aspects of the fjord being analyzed
Other Examples
an
invoice, an organization, a screen with
which a user interacts, a drawing, an
airplane, an order-filling process...
WHAT’S AN OPERATION?
An activity that reads or manipulates
data of an object
Dr. Nygaard’s operations
boats
float, sink, move etc.
Other Examples
calculating
a total, checking a balance,
adding a new employee, changing an
address, deleting a customer ...
HOW OBJECTS
COMMUNICATE
An object is sent a message, which in
turn causes an operation to be invoked
Sometimes the operation returns a
response
WHAT’S AN ATTRIBUTE?
Characteristics that add detail to an
object
Dr. Nygaard’s attributes
color,
weight, size, etc.
Other Examples
someone’s
name or address, an employee’s
title, a book’s author , a part number, a
room’s dimensions
INHERITING ATTRIBUTES
Objects can be decomposed into other
objects
Generalization hierarchy
Supertype versus subtype
An object inherits the attributes in its
parent class
SAMPLE GENERALIZATION
HIERARCHY
SAMPLE PERSON OBJECT
Person
Student
Freshman
1st Semester
Employee
Sophomore
2nd Semester
WHAT ARE CLASSES?
An object type or object class is a
category of an object that has similar
characteristics and behavior
Example: employee or student
A class acts as a template or blueprint
for object instances
OBJECT INSTANCES
An object instance is a specific example
of an object type
Examples
John
P. Smith, Invoice #12356
And just to make it all really confusing,
object instances are sometimes called
objects!
ENCAPSULATION
The process of making implementation
details of an object transparent to a user
Packaging data and operations together
Also called information hiding
The black box
POLY-WHAT?
Polymorphism
the
ability of two or objects to respond to
the same message, each in its own way
an instruction is given using a generalized,
rather than specific, detailed command
while specific actions would be different,
results are the same
Example
Animal:
Speak
Dogs bark; cats meow
COMPARING SYNONYMS
OT
OAD
OOP
Object Type Class
Object Class Package
Module
Method
Operation Service
Request
Message
Event
Variable
Attribute
Object
SOME BENEFITS OF OT
Reusability
classes
Stability
over
time, classes become more stable
Easier Design
black
can be reused or inherited
box concept
Faster Design
create
applications from existing components
Practicing
is an object
Bear, buffalo, whale, and dolphin are
subtypes
Yogi, Wilbur, and Smokey are
instances of the Bear subtype
Eye color, ear size, and weight are
attributes
A mammal
Your Turn: Matching
VCR IS an object
A Sony VCR is an object type
Serial #9234 of Sony VCR is an object instance
Playback, record, and audio dubbing are
examples of VCR operations
The concept that the VCR contains complex
components you assume work is encapsulation
When you use a remote control, you are sending
requests to the VCR
One More Example
If “brunch items” is a supertype, list a
subtype.
If muffin is a subtype, list an attribute.
If muffin is a subtype, list an operation.
If muffin is a subtype, list an instance.
A MODEL . . .
represents an aspect of reality
helps us to understand reality
assists us in inventing systems or redesigning
business areas
should be simpler than reality
for example, model
cars are simpler than
a real car
OBJECT STRUCTURE
DIAGRAM
Large rectangle with
two horizontal
dividing lines
Top third
Middle third
object name
object attributes
Bottom third
object
methods
SAMPLE OBJECT
STRUCTURE DIAGRAM
TRAFFIC LIGHT
Color
Turn Red
Turn Yellow
Turn Green
The operations are described in terms of what
they do -- not how they do it.
YOU TRY ONE ...
Draw an object structure diagram for
the VCR object
VCR
Buttons
On-screen Messages
Play
Rewind
Fast Forward
Stop
Record
EVENT DIAGRAMS
Show events and the operations
triggered by the events
Operations in rounded rectangles
Events on lines with arrows
TRIGGERS
A trigger is an action that causes an
event
An operation has no knowledge of what
triggered it or why
An operation does not know what
events are triggered by its result
External triggers in shadowed rounded
rectangles
TRIGGER
SAMPLE EVENT DIAGRAM
FOR REWIND OPERATION
VCR User Presses
Rewind Button
Rewind
Requested
VCR
Starts
Rewind
Rewind
Started
VCR
Displays
“Rewinding”
VCR
Rewinds
Rewind
Complete
VCR
Displays
“Ready”
YOU TRY ONE ...
You press START on the coffee maker
The coffee maker begins heating up the
water
The “brewing” light is on
When the water is hot, coffee drips into
the pot
When the pot is full, the “brewing”
light shuts off
SAMPLE ANSWER
Push Coffee Maker
START Button
Coffee
Requested
“Brewing”
light displays
Water
begins
heating
“Brewing”
light turns
off
Coffee
is done
Water is
getting Water
hot
finishes
heating
Water
is hot
Pot is
Coffee
reaches filling up
top of pot
Water
drips
into pot
Summary of Terminology
Objects, Classes, Operations, Attributes
Inheritance, Encapsulation,
Polymorphism
Generalization Hierarchies
Object Structure Diagrams
Event Diagrams
SUMMARY OF MODELS
OAD consists of
object
structure analysis & design
object behavior analysis & design
Object-structure diagrams show the
object name, attributes, and methods
Event diagrams show the events and
the methods (operation) triggered by
the events