Title: Object Oriented Analysis
1Object Oriented Analysis Design (OOAD)
2OOAD
- It focuses on objects where system is broken down
in terms of the objects that exist within it. - Functions (behaviour) and data (state) relating
to a single object are self-contained or
encapsulated in one place.
3Objects
- Object is an abstraction of something in a
problem domain, reflecting the capabilities of
the system to keep information about it, interact
with it, or both. - Objects are entities in a software system which
represent instances of real-world and system
entities
4Objects
Object Identity Behaviors State
An employee Mr. John Join(), Retire() Joined, Retired.
A book Book with title Object Oriented Analysis Design AddExemplar, Rent, available, reserved
A sale Sale no 0015, 15/12/98 SendInvoiced(), Cancel(). Invoiced, cancelled.
5Object Class
- Class is a description of a set of objects that
share the same attributes, operations, methods,
relationship and semantics. - Object classes are templates for objects. They
may be used to create objects. - An object represents a particular instance of a
class.
6Term of objects
- Attribute data items that define object.
- Operation function in a class that combine to
form behavior of class. - Methods the actual implementation of procedure
(the body of code that is executed in response to
a request from other objects in the system).
7Employee object class
Class
Object
Employee16
name John address M Street No.23 dateOfBirth
02/10/65 employeeNo 324 socialecurityNoE342545 d
epartment Sale manager Employee1 salary
2340 stautscurrent taxCode 3432 .
Eployee16.join(02/05/1997) Eployee16.retire(03/08/
2005) Eployee16.changeDetail(X Street No. 12)
8Encapsulation and Data Hiding
- Packaging related data and operations together is
called encapsulation. - Data hiding hides the internal data from
external by methods (interface).
9Encapsulation
- private attributes and methods are encapsulated
within the class, they cannot be seen by clients
of the class - public methods define the interface that the
class provides to its clients
Customer
- numCustomers 0 - MIN_BUDGET 200 - name
String - address String - budget int
private attributes
printNumCustomer( ) void
public methods
placeOrder( ) void
Customer class
10Object communication
- Objects communicate with each other by sending
messages - a message is a method call from a message-sending
object to a message-receiving object - a message consists of
- an object reference which indicates the message
receiver - a method name (corresponding to a method of the
receiver), and - parameters (corresponding to the arguments of the
calling method) - a message-receiving object is a server to a
message-sending object, and the message-sending
object is a client of the server
11Message Passing
message
name Lawrence employeeNo 15 commission 200
takeOrder(sofa, name, address, 120799)
199
takeOrder( ) int
return value
alex
lawrence
message
lawrence.takeOrder(sofa, 1 Robinson Rd,
120799)
parameters
method name
object reference
12Message Passing
Customer
SalesPerson
- numCustomers 0 - MIN_BUDGET 200 - name
String - address String - budget int
- MAX_ PRICE 200 - name String - employeeNo
String - commission int
printNumCustomer( ) void
takeOrder( ) void
placeOrder( ) void
takeOrder
alex
lawrence
client
server
13Inheritance
- Object classes may inherit attributes and
services from other object classes. - Inheritance represents the generalization of a
class.
14A generalisation hierarchy
15Library class hierarchy
Library Item
Catalogue Number Acquisition date Cost Type Status
Number of copies
A
c
q
u
i
r
e
(
)
C
a
t
a
l
o
g
u
e
(
)
D
i
s
p
o
s
e
(
)
I
s
s
u
e
(
)
R
e
t
u
r
n
(
)
P
u
b
l
i
s
h
e
d
i
t
e
m
R
e
c
o
r
d
e
d
i
t
e
m
T
i
t
l
e
T
i
t
l
e
P
u
b
l
i
s
h
e
r
M
e
d
i
u
m
C
o
m
p
u
t
e
r
B
o
o
k
F
i
l
m
M
a
g
a
z
i
n
e
p
r
o
g
r
a
m
D
i
r
e
c
t
o
r
A
u
t
h
o
r
Y
e
a
r
D
a
t
e
o
f
r
e
l
e
a
s
e
V
e
r
s
i
o
n
E
d
i
t
i
o
n
I
s
s
u
e
D
i
s
t
r
i
b
P
l
a
t
f
o
r
m
P
u
b
l
i
c
a
t
i
o
n
d
a
t
e
I
S
B
N
16User class hierarchy
17Multiple inheritance
- Rather than inheriting the attributes and
services from a single parent class, a system
which supports multiple inheritance allows object
classes to inherit from several super-classes - Can lead to semantic conflicts where
attributes/services with the same name in
different super-classes have different semantics - Makes class hierarchy reorganisation more complex
18Multiple inheritance
19Advantages of inheritance
- It is an abstraction mechanism which may be used
to classify entities - It is a reuse mechanism at both the design and
the programming level - The inheritance graph is a source of
organisational knowledge about domains and systems
20Problems with inheritance
- Object classes are not self-contained. they
cannot be understood without reference to their
super-classes - Designers have a tendency to reuse the
inheritance graph created during analysis. Can
lead to significant inefficiency - The inheritance graphs of analysis, design and
implementation have different functions and
should be separately maintained
21Inheritance and OOD
- There are differing views as to whether
inheritance is fundamental to OOD. - View 1. Identifying the inheritance hierarchy or
network is a fundamental part of object-oriented
design. Obviously this can only be implemented
using an OOPL. - View 2. Inheritance is a useful implementation
concept which allows reuse of attribute and
operation definitions. Identifying an inheritance
hierarchy at the design stage places unnecessary
restrictions on the implementation - Inheritance introduces complexity and this is
undesirable, especially in critical systems
22Objects Association
- Modeling an association between two classes means
that there is some sort of relationship between
objects of each class that may be connected.
studies
Student
Course
0..
1..
23Object aggregation
- Aggregation model shows how classes which are
collections are composed of other classes - Similar to the part-of relationship in semantic
data models
24Object aggregation
S
t
u
d
y
p
a
c
k
C
o
u
r
s
e
t
i
t
l
e
N
u
m
b
e
r
Y
e
a
r
I
n
s
t
r
u
c
t
o
r
1
1
1
1
0 ..
1 ..
1 ..
1 ..
L
e
c
t
u
r
e
V
i
d
e
o
t
a
p
e
O
H
P
s
l
i
d
e
s
A
s
s
i
g
n
m
e
n
t
n
o
t
e
s
T
a
p
e
i
d
s
.
S
l
i
d
e
s
C
r
e
d
i
t
s
T
e
x
t
1
1
1 ..
1 ..
E
x
e
r
c
i
s
e
s
S
o
l
u
t
i
o
n
s
T
e
x
t
P
r
o
b
l
e
m
s
D
i
a
g
r
a
m
s
D
e
s
c
r
i
p
t
i
o
n
25Object Cohesion Coupling
- Cohesion of a component is a measure of how well
it fits together. Each operation provides
functionality which allows the attributes of the
object to be modified, inspected or used as a
basis for service provision. - Coupling is an indication of the strength of
interconnections between program units. Highly
coupled systems have strong interconnections,
with program units dependent on each other
(shared variables, interchange control function).
Loosely coupled system which are independent .
26Polymorphism
- the ability of different objects to perform the
appropriate method in response to the same
message is known as polymorphism. - the selection of the appropriate method depends
on the class used to create the object
27Example Polymorphism
- class Shape
- private String name
- public Shape(String aName) nameaName
- public String getName( ) return name
- public float calculateArea( ) return 0.0f
- // End Shape class
class Circle extends Shape private float
radius public Circle(String aName)
super(aName) radius 1.0f public
Circle(String aName, float radius)
super(aName) this.radius radius
public float calculateArea() return
(float)3.14fradiusradius // End Circle
class
28- class Square extends Shape
- private float side
- public Square(String aName) super(aName)
side 1.0f - public Square(String aName, float side)
- super(aName) this.side side
-
- public float calculateArea() return (float)
sideside - // End Square class
29Polymorphism Example
public class ShapeDemoClient public static
void main(String argv ) Shape c1 new
Circle("Circle C1") Shape c2 new
Circle("Circle C2", 3.0f) Shape s1 new
Square("Square S1") Shape s2 new
Square("Square S2", 3.0f) Shape shapeArray
c1, s1, c2, s2 for (int i 0 i lt
shapeArray.length i)
System.out.println("The area of "
shapeArrayi.getName( )
" is " shapeArrayi.calculateArea( )
" sq. cm.") //
End main // End ShapeDemoClient1 class
30OO Analysis and Design
- OO Analysis - examines requirements from the
perspective of the classes and objects found in
the vocabulary of the problem domain. In other
words, the world (of the system) is modelled in
terms of objects and classes. - OO Design - OO decomposition and a notation for
depicting models of the system under development.
Structures are developed whereby sets of objects
collaborate to provide the behaviours that
satisfy the requirements of the problem.
31Object Oriented Analysis
- Analyze the domain problem
- Describe the process systems
- Identify the objects
- Specify attributes
- Defining operations
- Inter-object Communication
32Identifying Object
- Objects can be
- External Entity (e.g., other systems, devices,
people) that produce or consume information to be
used by system - Things (e.g., reports, displays, letters,
signals) that are part of information domain for
the problem - Places (e.g., books room) that establish the
context of the problem and the overall function
of the system. - Organizational units (e.g., division, group,
team, department) that are relevant to an
application, - Transaction (e.g., loan, take course, buy,
order).
33Example of candidate objects
- Just a Line management wishes to increase
security, both in their building and on site,
without antagonizing their employees. They would
also like to prevent people who are not part of
the company from using the Just a Line car park. - It has been decide to issue identity cards to all
employees, which they are expected to wear while
on the Just a Line site. The cards records the
name, department and number of the member of
staff, and permit access to the Just a Line car
park. - A barrier and a card reader are placed at the
entrance to the car park. The driver of an
approaching car insert his or her numbered card
in the card reader, which then checks that the
card number is known to the Just a Line system.
If the card is recognized, the reader sends a
signal to raise the barrier and the car is able
to enter the car park. - At the exit, there is also a barrier, which is
raised when a car wishes to leave the car park. - When there are no spaces in the car park a sign
at the entrance display Full and is only
switched off when a car leaves. - Special visitors cards, which record a number
and the current date, also permit access to the
car park. Visitors cards may be sent out in
advance, or collected from reception. All
visitors cards must be returned to reception
when the visitor leaves Just a Line.
34Candidate objects
- Just a Line management security building
- site employee people company
- car park card name department
- number member of staff access barrier
- card reader entrance driver car
- system signal exit space
- sign visitor reception
35Candidate objects rejection
- duplicates if two or more objects are simply
different names for the same thing. - irrelevant objects which exists in the problem
domain, but which are not intended. - vague when considering words carefully it
sometimes becomes clear that they do not have a
price meaning and cannot be the basis of a useful
in the system. - general the meaning is too broad.
- attributes as the attribute of objects.
- associations actually represents the
relationships between objects. - roles sometimes objects referred to by the role
they play in a particular part of the system.
36Rejected Candidate objects
Candidate objects Rejection criteria
Just a Line, member of staff duplicates with company, employee respectively
management,company, building, site, visitor and reception irrelevant to the system
security, people vague
system too general
name, department, attribute
access association
driver role
37Rest Objects
- Car park Staff Card Visitors card
- Employee Entrance exit
- card reader barrier Full sign
- space sensor car
38Define class attributes
Full sign onboolean switch on() switch off()
Car Park capacity spaces inc.spaces() dec.spaces()
space left()
Barrier type upboolean raise() lower()
Card Reader valid card nos. read card() card OK()
39Data Dictionary
- Barrier type up
- type EntranceExit
- up truefalse
- raise if the barrier is not already raised,
this operation takes as argument an object of the
barrier class and returns an object of the same
class, with the up attribute set to true. If
the barrier is already up, the operation returns
the error message barrier is already raised - lower if the barrier is not already lower, this
operation takes as argument an object of the
barrier class and returns an object of the same
class, with the up attribute set to false. If
the barrier is already down, the operation
returns the error message barrier already
lowered.
40Objects Relationship
Car Park
Car Park
1 ..
2 ..
2 ..
Card Reader
Barrier
Sensor
1 ..
1
Valid cards
1 ..
Card
Visitors Card
Staff Card
41Object behaviour modelling
- A behavioural model shows the interactions
between objects to produce some particular system
behaviour that is specified as a use-case - Sequence diagrams (or collaboration diagrams) in
the UML are used to model interaction between
objects
42Sequence Diagram for Entrance
User
CarPark
Sensor
CardReader
Valid card
Barrier
Full Sign
Full Sign off
Car present
Check space left
Yes
Card number
Card number
Card OK
Card returned
Raise
Car not present
lower
Decrement Space
Check space left
Yes
43OO Analysis and Design
- Object-Oriented (OO) development is very
different from structured development - Structured approach focuses on major functions
within a system and on the data used by the
functions. - OO approach focuses on the objects in a system
and on the relationships between those objects.
44- Unlike functional decomposition, OO views a
complex problem as a meaningful collection of
objects that collaborate to achieve some higher
level behaviour gt closely mirrors how people
view complex problems gt using OO should make the
job of developing large, complex systems more
manageable.
45Object Oriented Model
46Structured Model
47Comparison
- OO
- Systems decomposed into collections of data
objects - function data in one place gt
- System components more
- independent gt more resilient
- to requirements and
- maintenance changes.
- Inheritance and polymorphism
- are possible gt reuse,
- extension, and tailoring of
- software/designs is possible.
- Closely mirrors how humans
- decompose and solve
- complex.
- Structured
- Systems decomposed into functions functions and
data modelled separately gt - System components are more
- dependent on each other gt
- requirements and
- maintenance changes more
- difficult
- Inheritance and polymorphism
- not possible gt limited reuse
- possible.
- System components do not
- map closely to real-world
- entities gt difficult to manage
- complexity.
48Comparison
- OO
- Process allows for iterative and incremental
development gt - Integration of programs is
- series of incremental
- prototypes.
- Users and developers get
- important feedback
- throughout development.
- Testing resources distributed
- more evenly.
- If time is short, coding and
- testing can begin before the
- design is finished.
- Structured
- Process less flexible and largely linear gt
- Integration of programs is big
- bang effect.
- Users or developers provided
- with little or no feedback see
- system only when it has been
- completed.
- Testing resources are
- concentrated in the
- implementation stage only.
- Coding and testing cannot
- begin until all previous stages
- are complete.