61
Object Oriented Analysis and Design 1 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.

Lecture 9 - OOAD

Embed Size (px)

Citation preview

Object Oriented Analysis and Design 1

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 2

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 3

Analysis and Design

• Analysis– Captures requirements

and problem domain

– What to do

– Creates analysis models• Use case view• Static class view

• Design– Makes strategic and

tactical decisions to meet requirements

– How to do it (above code level)

– Creates design models• Static class view• State machine view• Interaction view

Object Oriented Analysis and Design 4

Meyer

Before and after conditions

Harel

StatechartsGamma, et al

Frameworks and patterns,

HP Fusion

Operation descriptions and message numbering

Embley

Singleton classes andhigh-level view

Wirfs-Brock

Responsibilities

Odell

Classification

Shlaer - Mellor

Object lifecycles

Rumbaugh

OMT

Booch

Booch method

Jacobson

OOSE

Contributions to the UML

Object Oriented Analysis and Design 5

Object Orientation

Enca

psul

atio

n

Abs

trac

tion

Hie

rarc

hy

Mod

ular

ity

Basic Principles of Object Orientation

Object Oriented Analysis and Design 6

Salesperson

Not saying Which salesperson – just a salesperson in general!!!

CustomerProduct

Manages Complexity

What is Abstraction?

Object Oriented Analysis and Design 7

Improves Resiliency

What is Encapsulation?

• Hide implementation from clients– Clients depend on interface

How does an object encapsulate?What does it encapsulate?

Object Oriented Analysis and Design 8

Order Processing System

Billing

OrderEntry

OrderFulfillment

Manages Complexity

What is Modularity?

• The breaking up of something complex into manageable pieces

Object Oriented Analysis and Design 9

Decreasing abstraction

Increasing abstraction

Asset

RealEstate

Savings

BankAccount

Checking Stock

Security

Bond

Elements at the same level of the hierarchy should be at the same level of abstraction

What is Hierarchy? • Levels of abstraction

Object Oriented Analysis and Design 10

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 11

Truck

Chemical Process

Linked List

What is an Object?• Informally, an object represents an entity, either

physical, conceptual, or software– Physical entity

– Conceptual entity

– Software entity

Object Oriented Analysis and Design 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

Object Oriented Analysis and Design 13

: Professor

Professor Clark

a + b = 10

ProfessorClark : Professor

ProfessorClark

Class Name OnlyObject Name Only

Class and Object Name

Representing Objects

• An object is represented as rectangles with underlined names

Object Oriented Analysis and Design 14

OO Principle: Abstraction

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

Object Oriented Analysis and Design 15

a + b = 10

ClassCourse

PropertiesName

LocationDays offeredCredit hours

Start timeEnd time

BehaviorAdd a student

Delete a studentGet course roster

Determine if it is full

Sample Class

Object Oriented Analysis and Design 16

Professor

Professor Clark

a + b = 10

Representing Classes

• A class is represented using a compartmented rectangle

Object Oriented Analysis and Design 17

ProfessornameempID

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

Class Name

Attributes

Operations

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)

Object Oriented Analysis and Design 18

VTOLJet Drone

GliderMilitary Space Shuttle

Helicopter Turboprop Airship

Exercise: How many classes could you find here?

Object Oriented Analysis and Design 19

:CourseOffering

number = 101startTime = 900endTime = 1100

:CourseOffering

number = 104startTime = 1300endTime = 1500

CourseOffering

numberstartTime endTime

Class

Attribute

Object

Attribute Value

What is an Attribute?

Object Oriented Analysis and Design 20

CourseOffering

addStudent deleteStudentgetStartTimegetEndTime

Class

Operation

What is an Operation?

Object Oriented Analysis and Design 21

Manufacturer AManufacturer B Manufacturer C

OO Principle:Encapsulation

What is Polymorphism?

• The ability to hide many different implementations behind a single interface

Object Oriented Analysis and Design 22

Tube

Pyramid

Cube

Shape

DrawMoveScaleRotate

<<interface>>

What is an Interface?

• Interfaces formalize polymorphism

• Interfaces support “plug-and-play” architectures

Object Oriented Analysis and Design 23

Inheritance (cont.)

Object Oriented Analysis and Design 24

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 25

UML Representation of Generalization/Specialization

Object Oriented Analysis and Design 26

VTOLJet Drone

GliderMilitary Space Shuttle

Helicopter Turboprop Airship

Exercise: Refine the number of classes here?

Object Oriented Analysis and Design 27

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 28

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 29

Object/Class Relationships

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

Object Oriented Analysis and Design 30

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 31

AggregationAggregation – 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 32

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 33

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: HomeStereoSystemClass HomeStereoSystem{Tuner itsTuner;

CDPlayer itsCDPlayer;Equalizier itsEqualizer;

};

Object Oriented Analysis and Design 34

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 35

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 36

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 37

Professor UniversityWorks for

Class

Association

Association Name

Professor University

EmployerEmployee

Role Names

Relationships: Association

• Models a semantic connection among classes

Object Oriented Analysis and Design 38

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 39

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

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

Circle

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

Rectangle

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

Triangle

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

Shape Shape{abstract}

+move()+erase() : void {abstract}+draw() : void {abstract}

Object Oriented Analysis and Design 40

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 41

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 42

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

• Examplevoid print(String& text){…}void print(String& text,

ostream& output){…}

Object Oriented Analysis and Design 43

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 44

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 45

Diagram Elements

• Objects• Messages

– One-way communication

– Messages to other objects

– Messages to self

• Sequence numbers• Conditionals• Iteration

Object Oriented Analysis and Design 46

UML Communication Diagram Example

comm Load Initial State

: User IO : File IO

: World

Menu select(Load World)

1 : Start use case

2 : Verify file exists

3 : Open file

: World CO

4 : Pass open file stream

5 : Create new world

6 : Read world contents

Object Oriented Analysis and Design 47

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 48

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 49

Sequence Diagram Elements

• Time• Objects• Object Lifelines

– Object creation– Object destruction

• Object Activity

• Messages– Messages to other

objects– Messages to self

• Synchronization• Returns• Conditionals• Iteration

Object Oriented Analysis and Design 50

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 51

UML Sequence Diagram Example

sd Load Initial State

<<create>>

ReadNewWorld( Open File Handle )

: User IO : World CO: File IO

: World

Specify File Name

Verify File Exists

Open File

Read World Contents

Participant

Return

Activation

Lifeline

Self-call (may show

stacked activation)

Use Case Name

Passing a

parameter

Object Oriented Analysis and Design 52

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 53

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 54

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 55

UML Activity Diagrams

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

Object Oriented Analysis and Design 56

Activity Diagram ExampleFinanceCustomer ServiceFulfullment

Receive Order

Fill Order

Close Order

Regular DeliveryOvernight Delivery

Send Invoice

Receive Payment

[priority order]

[else]

Fork

Partition (swim lane)

Start

End

Object Oriented Analysis and Design 57

Example of an Activity Diagram

Object Oriented Analysis and Design 58

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 59

UML State Diagrams

• Diagram elements:– Start and End symbols– States

• May have an associated activity

– Transitions• Event• Guard• Action

Object Oriented Analysis and Design 60

State Diagram Example

Waiting

Canceling OrderChecking CreditProcessing Ordercredit rejectedapproved / debit account

receive order [amount <= $25] receive order [amount > $25]

order cancelledorder processed

order processingsystem started

order processingsystem stopped

State

EndStart

Trans

ition

Trigger

Condition

Activit

y

Trigger

Object Oriented Analysis and Design 61

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