Object Oriented Analysis - PowerPoint PPT Presentation

1 / 48
About This Presentation
Title:

Object Oriented Analysis

Description:

Object Oriented Analysis & Design (OOAD) * – PowerPoint PPT presentation

Number of Views:391
Avg rating:3.0/5.0
Slides: 49
Provided by: kass153
Category:

less

Transcript and Presenter's Notes

Title: Object Oriented Analysis


1
Object Oriented Analysis Design (OOAD)
2
OOAD
  • 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.

3
Objects
  • 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

4
Objects
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.
5
Object 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.

6
Term 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).

7
Employee 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)
8
Encapsulation and Data Hiding
  • Packaging related data and operations together is
    called encapsulation.
  • Data hiding hides the internal data from
    external by methods (interface).

9
Encapsulation
  • 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
10
Object 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

11
Message 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
12
Message 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
13
Inheritance
  • Object classes may inherit attributes and
    services from other object classes.
  • Inheritance represents the generalization of a
    class.

14
A generalisation hierarchy
15
Library 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
16
User class hierarchy
17
Multiple 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

18
Multiple inheritance
19
Advantages 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

20
Problems 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

21
Inheritance 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

22
Objects 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..
23
Object aggregation
  • Aggregation model shows how classes which are
    collections are composed of other classes
  • Similar to the part-of relationship in semantic
    data models

24
Object 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
25
Object 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 .

26
Polymorphism
  • 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

27
Example 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

29
Polymorphism 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
30
OO 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.

31
Object Oriented Analysis
  • Analyze the domain problem
  • Describe the process systems
  • Identify the objects
  • Specify attributes
  • Defining operations
  • Inter-object Communication

32
Identifying 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).

33
Example 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.

34
Candidate 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

35
Candidate 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.

36
Rejected 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
37
Rest Objects
  • Car park Staff Card Visitors card
  • Employee Entrance exit
  • card reader barrier Full sign
  • space sensor car

38
Define 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()
39
Data 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.

40
Objects Relationship
Car Park
Car Park
1 ..
2 ..
2 ..
Card Reader
Barrier
Sensor
1 ..
1
Valid cards
1 ..
Card
Visitors Card
Staff Card
41
Object 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

42
Sequence 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
43
OO 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.

45
Object Oriented Model
46
Structured Model
47
Comparison
  • 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.

48
Comparison
  • 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.
Write a Comment
User Comments (0)
About PowerShow.com