Lecture 9 - OOAD
-
Upload
k-ranjith-reddy -
Category
Documents
-
view
1.390 -
download
20
Transcript of Lecture 9 - OOAD
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 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 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 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