Sie sind auf Seite 1von 61

Introduction to Object Modeling

Object-oriented analysis (OOA) – an approach used


to
1. study existing objects to see if they can be reused or adapted
for new uses
2. define new or modified objects that will be combined with
existing objects into a useful business computing application

Object modeling – a technique for identifying objects


within the systems environment and the relationships
between those objects.

Object Oriented Analysis and Design 1


Introduction to the UML
Unified Modeling Language (UML)
– a set of modeling conventions that
is used to specify or describe a
software system in terms of objects.
– The UML does not prescribe a method
for developing systems—only a notation
that is now widely accepted as a
standard for object modeling.

Object Oriented Analysis and Design 2


Analysis and Design
• Analysis • Design
– Captures requirements – Makes strategic and
and problem domain tactical decisions to
meet requirements
– What to do – How to do it (above
code level)

– Creates analysis – Creates design models


models • Static class view
• Use case view • State machine view
• Static class view • Interaction view
Object Oriented Analysis and Design 3
Contributions to the UML
Harel
Meyer Gamma, et al
Statecharts
Before and after Frameworks and patterns,
conditions
HP Fusion
Booch
Operation descriptions and
Booch method message numbering

Embley
Rumbaugh
Singleton classes and
OMT
high-level view

Jacobson Wirfs-Brock
OOSE
Responsibilities

Shlaer - Mellor Odell

Object lifecycles Classification

Object Oriented Analysis and Design 4


Basic Principles of Object
Orientation

Object Orientation

Encapsulation
Abstraction

Modularity

Hierarchy
Object Oriented Analysis and Design 5
What is Abstraction?

Salesperso
n
Not saying
Which
salesperso
n – just a
salesperso
n in Product
Customer
general!!!

Manages Complexity
Object Oriented Analysis and Design 6
What is Encapsulation?
• Hide implementation from clients
– Clients depend on interface

How does an object encapsulate?


What does it encapsulate?

Improves Resiliency
Object Oriented Analysis and Design 7
What is Modularity?
• The breaking up of something complex
into manageable pieces
Order
Entry
Order Processing
System Order
Fulfillment

Billing

Manages Complexity
Object Oriented Analysis and Design 8
What is Hierarchy?
Increasing • Levels of abstraction Asset
abstraction

BankAccount Security RealEstate

Savings Checking Stock Bond


Decreasing Elements at the same level of the hierarchy
abstraction should be at the same level of abstraction
Object Oriented Analysis and Design 9
Objects, Attributes, & Instances
Object – something that is or is capable of being seen,
touched, or otherwise sensed, and about which users store
data and associate behavior.
– Person, place, thing, or event
– Employee, customer, instructor, student
– Warehouse, office, building, room
– Product, vehicle, computer, videotape

Attribute – the data that represent characteristics of interest


about an object.
Object instance – each specific person, place, thing, or
event, as well as the values for the attributes of that object.
Object Oriented Analysis and Design 10
What is an Object?
• Informally, an object represents an entity, either
physical, conceptual, or software
– Physical entity

Truck

– Conceptual entity
Chemical Process

– Software entity Linked List

Object Oriented Analysis and Design 11


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

Object Oriented Analysis and Design 12


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

Professor Clark
Class Name Only
Object Name Only

ProfessorClark :
Professor

Class and Object Name Object Oriented Analysis and Design 13


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
Object Oriented Analysis and Design 14
Sample Class
Class
Course
Properties Behavior
Name Add a student
Location Delete a student
a + b = 10
Days offered Get course roster
Credit hours Determine if it is full
Start time
End time

Object Oriented Analysis and Design 15


Representing Classes
• A class is represented using a
compartmented rectangle

a + b = 10
Professor

Professor Clark

Object Oriented Analysis and Design 16


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 Professor


name
Attributes empID

Operations create( )
save( )
delete( )
change( )

Object Oriented Analysis and Design 17


Exercise: How many classes could you find here?

Jet Drone
VTOL

Military Space Shuttle


Glider

Helicopter Object Oriented Analysis and Design


Turboprop Airship 18
What is an Attribute?
Object
Class

Attribute Attribute Value


:CourseOffering
number = 101
startTime = 900
CourseOffering endTime = 1100
number
startTime
endTime :CourseOffering
number = 104
startTime = 1300
endTime = 1500

Object Oriented Analysis and Design 19


What is an Operation?

CourseOffering
Class
addStudent
deleteStudent
getStartTime
getEndTime
Operation

Object Oriented Analysis and Design 20


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

Manufacturer B
Manufacturer A Manufacturer C

OO Principle:
Encapsulation

Object Oriented Analysis and Design 21


What is an Interface?
• Interfaces formalize polymorphism
• Interfaces support “plug-and-play”
architectures
Tube
<<interface>>
Shape
Pyramid
Draw
Move
Scale
Rotate Cube

Object Oriented Analysis and Design 22


Inheritance (cont.)

Object Oriented Analysis and Design 23


Generalization/Specialization,
Supertype, and Subtype
Generalization/specialization – a technique wherein the attributes and
behaviors that are common to several types of object classes are grouped
(or abstracted) into their own class, called a supertype. The attributes and
methods of the supertype object class are then inherited by those object
classes.
Supertype – an entity that contains attributes and behaviors that are
common to one or more class subtypes.
– Also referred to as abstract or parent class.

Subtype – an object class that inherits attributes and behaviors from a


supertype class and then may contain other attributes and behaviors that
are unique to it.
– Also referred to as a child class and, if it exists at the lowest level of the
inheritance hierarchy, as concrete class.
Object Oriented Analysis and Design 24
UML Representation of
Generalization/Specialization

Object Oriented Analysis and Design 25


Exercise: Refine the number of classes here?

Jet Drone
VTOL

Military Space Shuttle


Glider

Helicopter Object Oriented Analysis and Design


Turboprop Airship 26
Inheritance Relationship
• A class can Inherit the instance variables, interfaces, and
instance methods of another class.
• The class inherit them as if they were defined in the
class.
– A class providing the inheritance is a base class
– The class getting the inheritance is a derived class
• A derived class can override/extend the base class
– The base class methods can be redefined
– The base class can define new variables and methods
• A derived class can be used anyplace a base class can
be used.
– The derived class ISA a base class.

Object Oriented Analysis and Design 27


Multiple Inheritance
Relationship
• A derived class can inherit from multiple base
classes
– It will contain all the variables and methods of every
base class.
– The derived class ISA base class for every base class
inherited
• This class can be used any place any of the original base
classes could be used.

Object Oriented Analysis and Design 28


Object/Class Relationships
Object/class relationship – a natural business association
that exists between one or more objects and classes.

Object Oriented Analysis and Design 29


Multiplicity and UML Multiplicity Notations
Multiplicity –
the minimum
and maximum
number of
occurrences of
one
object/class for
a single
occurrence of
the related
object/class.
Object Oriented Analysis and Design 30
Aggregation
Aggregation – a relationship in which one larger “whole” class contains
one or more smaller “parts” classes. Conversely, a smaller “part” class is
part of a “whole” larger class.

Object Oriented Analysis and Design 31


Composition
Composition – an
aggregation
relationship in
which the “whole”
is responsible for
the creation and
destruction of its
“parts.” If the
“whole” were to
die, the “part”
would die with it.
Object Oriented Analysis and Design 32
Contains Relationship
• A class can contain another class.
• The class contains another class by having an Instance Variable
of the class in it’s specification
• The composition of classes into a single class allow a simpler
abstraction to be defined for a highly complex group of classes.
• Example: HomeStereoSystem
Class HomeStereoSystem
{
Tuner itsTuner;
CDPlayer itsCDPlayer;
Equalizier itsEqualizer;
};

Object Oriented Analysis and Design 33


Messages
Message – communication that occurs when one object invokes another
object’s method (behavior) to request information or some action

Object Oriented Analysis and Design 34


Polymorphism
• Polymorphism means “Many Form”
• Two objects are polymorphic if they have
the same interface and different behavior.
• This allows clients to use them without
knowing their true behavior.

Object Oriented Analysis and Design 35


Polymorphism
Polymorphism – literally
meaning “many forms,” the
concept that different
objects can respond to the
same message in different
ways.

Override – a technique
whereby a subclass
(subtype) uses an attribute
or behavior of its own
instead of an attribute or
behavior inherited from the
class (supertype).

Object Oriented Analysis and Design 36


Relationships: Association
• Models a semantic connection among
classes
Association
Name

Professor University
Works for

Association Role Names

Class University
Professor
Employee Employer
Object Oriented Analysis and Design 37
Uses Relationship

• A class uses another class without containing it.


• The class gets access to the object when it’s
passed to a class interface as an argument.
• Example:
HomeStereoSystem::Play(CD&)
• The play interface of HomeStereoSystem takes
a Compact Disc (CD) object which it can use.

Object Oriented Analysis and Design 38


Abstract Classes
• Used to hold common operations and data
• Used in inheritance hierarchy
– Derived (child) classes provide implementations
• Documented with class name in italics
– Can also use {abstract} property
Shape Shape
+move() {abstract}
+erase() : void +move()
+draw() : void +erase() : void {abstract}
+draw() : void {abstract}

Circle Rectangle Triangle


+draw() : void +draw() : void +draw() : void
+erase() : void +erase() : void +erase() : void

Object Oriented Analysis and Design 39


UML Interfaces
• Abstract class with 0 methods or data is
an interface
• Defines public behavioral contract
• Says nothing about the implementation
– May be implemented by one or more classes
– Implementation called a realization
– This is how COM works
• Documented with <<interface>> keyword
Object Oriented Analysis and Design 40
Operation Signatures
• The "signature" of an operation is the
combination of its:
– name
– parameters
• Operations with the same signature are the same
operation
– Must be in different classes
• Operations with different signatures are different
operations
– Can be in the same class
Object Oriented Analysis and Design 41
Overloading Operations
• Many OO languages allow operations to be
overloaded
– The name is the same, but the parameters are
different
• A class can implement an operation in different
ways depending on the number and type of
parameters
• Example
void print(String& text){…}
void print(String& text,
ostream& output){…}
Object Oriented Analysis and Design 42
Modeling with UML Interaction
Diagrams
• Two types of Interaction Diagrams
– Communication Diagrams
• In UML 1.x, called Collaboration Diagrams
– Sequence Diagrams
• The two types are semantically equivalent
• Difference is on what each emphasizes
– Communication – Class relationships
– Sequence – Time sequences

Object Oriented Analysis and Design 43


UML Communication Diagrams

• Visually shows object relationships


• Useful for showing the structure of an
algorithm
– i.e. Nested interactions are clearly shown

Object Oriented Analysis and Design 44


Diagram Elements
• Objects • Sequence numbers
• Messages • Conditionals
– One-way • Iteration
communication
– Messages to other
objects
– Messages to self

Object Oriented Analysis and Design 45


UML Communication Diagram
Example
comm Load Initial State

Menu select (Load 2 : Verify file exists


World )

: User IO : File IO
1 : Start use case 3 : Open file

4 : Pass open file stream

: World CO

5 : Create new world

6 : Read world contents : World

Object Oriented Analysis and Design 46


UML Communication Diagram
Options
• Sequence numbers
– Can be flat or nested
• 1, 2, 3, … or 1, 2, 2.1, 2.2, 2.2.1, 3, …
• Nested (Dewey decimal) specified by UML
– Can contain letters indicating thread of control
• A2, A3, B2, B3
• Messages can contain guards
– Conditional execution
– 4 : [condition] some operation
• Classes can communicate with themselves

Object Oriented Analysis and Design 47


Using Communication Diagrams

• Model a single instance through a


scenario
• Use separate diagrams or parts of
diagrams to model alternate scenarios

Object Oriented Analysis and Design 48


Sequence Diagram Elements
• Time • Messages
• Objects – Messages to other
objects
• Object Lifelines
– Messages to self
– Object creation
– Object destruction
• Synchronization
• Object Activity • Returns
• Conditionals
• Iteration

Object Oriented Analysis and Design 49


Sequence Diagram Basics
• Time moves down
– Time is relative
– Exact timings require a Timing Diagram
• Lifeline shows when object is active on
stack
– Dashed line when inactive
– Double line when active

Object Oriented Analysis and Design 50


UML Sequence Diagram
Example
Use Case Name
sd Load Initial State
Partic ipant
: User IO : File IO : World CO

Lifeline
ow
Specify File Name
ll (m ay sh )
a n
Sel f-c d acti vati o
ke
Ac tiv stac
at ion
Verify File Exists

ga
Passi n er
et
Open File par am

ReadNewWorld
( Open File Handle)

<<create>>
: World

Read World Contents


n
etur
Object Oriented Analysis
R and Design 51
Sequence Diagram Options
• Return arrows are optional
– Data on return arrows is optional
• Stack activation lines for recursion or self-calls
• Arrow format is important
– Synchronous flow: solid line, filled arrowhead
– Asynchronous flow: solid line, stick or half arrowhead
(UML 1.3)
– Return: dashed line, stick arrowhead
• Messages can have guards
• Variable names
• Parameter values
Object Oriented Analysis and Design 52
Using Sequence Diagrams

• Model a single instance through a


scenario
• Use separate diagrams or parts of
diagrams to model alternate scenarios

Object Oriented Analysis and Design 53


When to use Sequence
Diagrams
• Model the behavior of collaborating
objects over time
• Model behavior of several objects in a
single use case
• Visualizing collaborations between several
objects

Object Oriented Analysis and Design 54


UML Activity Diagrams

• Diagram elements:
– Start and End symbols
– Activities
– Forks and Joins
– Branches and Merges
– Guards
– Swimlanes

Object Oriented Analysis and Design 55


Activity Diagram Example
Fulfullment Customer Service Finance
Partition Start
(swim lane )

Receive Order

Fork

rners
Rounded co
(not a class)

Cond Fill Order Send Invoice


itiona n
l sio
D eci
[priority order ]
[else]
Receive Payment
Overnight Delivery Regular Delivery

ge
Mer

gate)
Join (AND

Close Order

End

Object Oriented Analysis and Design 56


Example of an Activity Diagram

Object Oriented Analysis and Design 57


When to Use Activity Diagrams

• Analyzing a use case


• Understanding workflow
• Describing a complicated algorithm
• Modeling multithreaded or parallel
behavior

Object Oriented Analysis and Design 58


UML State Diagrams

• Diagram elements:
– Start and End symbols
– States
• May have an associated activity
– Transitions
• Event
• Guard
• Action

Object Oriented Analysis and Design 59


State Diagram Example
Start End

order processing order processing


system started system stopped

n
io
s it
an
Tr
order processed order cancelled
Waiting
Tr ig
ge r
receive order[amount<= $25] receive order[amount> $25]

C
on
di
ti o
n
e
Tr

i ty

at
ig

tiv

St
ge

Ac
r

approved/ debit account credit rejected


Processing Order Checking Credit Canceling Order
Object Oriented Analysis and Design 60
When to use State Diagrams

• DON'T use them for every class in the


system
• Describing the behavior of an object
across several use cases
• When a system is heavily event-driven

Object Oriented Analysis and Design 61

Das könnte Ihnen auch gefallen