You are on page 1of 47

Introduction to Object

Orientation System Analysis and


Design
Objectives
 Understand the basic characteristics of object-
oriented systems.
 Understand the object orientation notation
 Understand how to analyze and design with OO
paradigm
What’s Object Orientation?
 A new technology based on objects and classes
 A paradigm (way of thingking) to organize software
as a collection of discrete objects that incorporate
both data and process.
 An abstraction of the real world based on objects
and their interactions with other objects.
Basic Characteristic
(1) Classes and Objects
 OO focus on capturing structure and behaviour in
little modules that encompass both data and process.
These modules are known as OBJECTs.
 Class is a general template we use to define and
create specific instances or objects.
 An object is an instantiation of a class.
 Each object has attributes (describe the object) and
behaviors (what an object can do).
Class Car
<<instanceOf>>

Attributes
 Model
 Location
<<instanceOf>>  #Wheels = 4

Operations
 Start
<<instanceOf>>
 Accelerate
Basic Characteristic (2)
(2) Methods and Messages
 Methods implement an object’s behaviour
 In other languages, method is known as procedure or
function.
 A message is a function or procedure call from one
object to another object.
Basic Characteristic (3)
Basic Characteristic (4)
(3) Encapsulation and Information Hiding
 Encapsulation : how to wrap process and data into a
single entity.
 Only the information required to use a software
module is published to the user. Exactly how the
module implements the required information is
unnecessary.
Basic Characteristic (5)
(4) Inheritance
 Is a mechanism to create a class from other class.
 Related terms : superclass and subclass
 Subclass inherit the appropriate attributes and
methods from its superclass.
 Avoid repeating of writing attributes or methods.
 The relationship between the class and its superclass
is known as the A-Kind-Of relationship.
Basic Characteristic (6)
(5) Polymorphism and Dynamic Binding
 Polymorphism : the same message can be interpreted
differently by different classes of objects.
 For example : sent message “draw” to an circle
object, a square object, and a triangle object will
make a different result.
 Dynamic Binding : determining the exact
implementation of a request based on both the
request (operation) name and the receiving object
at run-time
Various Methodologies
 Shlaer/Mellor methods (Shlaer-1988)
 Coad/Yourdon methods (Coad-1991)
 Booch methods (Booch-1991)
 OMT methods (Rumbaugh-1991)
 Wirfs-Brock methods (Wirfs-Brock-1990)
 OOSE Objectory methods (Jacobson-1992)
 Unified Modelling Languages (UML-1997)
OBJECT ORIENTED
NOTATION GUIDE
Class and Object
 Class  Object instance
Class Name
Class name

Attributes
Attributes

Methods
Methods

 Instantiation relationship

Class Name Class Name


Generalization and Inheritance
Aggregation
 Aggregation 1  Aggregation 2
Association
 Association

 Multiplicity of association
Ternary Association
OBJECT ORIENTED ANALYSIS
AND DESIGN
Analysis and Design Process
1. Problem statement
2. System architecture
3. Object modelling
1. Identifying object classes
2. Preparing a data dictionary for classes
3. Identifying association
4. Identifying attributes
5. Refining with inheritance
6. Grouping classes into model
4. Dynamic modelling
5. Functional modelling
PROBLEM STATEMENTS
Problem Statement
 Requirements statement
 Problem scope
 What’s needed
 Application context
 Assumptions
 Performance needs
Example : ATM Network
System Architecture
Identifying Object Classes
Example : ATM Network
Preparing a Data Dictionary
Example
 Account : a single account in a bank against which
transactions can be applied. Account may be of
various types, at least checking or savings. A
customer can hold more than one account.
 Bank : A financial institution that holds accounts for
customers and that issues cash cards authorizing
access to accounts over the ATM network.
 ATM : …
 Bank Computer : ….
 Customer : …
 etc
Identifying Associations
Example
Identifying Attributes
Example
Refining with Inheritance
 This step is to organize classes by using inheritance
to share common structure
 Inheritance can be added in two directions :
 Bottom Up : By generalizing common aspect of
existing classes into a superclasses
 By searching for classes with similar attributes,
associations, or operations
 For each generalization, define a superclass to share
common features
 Top Down : By refining existing classes into
specialized subclasses
Example
Grouping Class into Modules
 A module is a set of classes that captures some
logical subset of entire model
 For example: a model of computer operating system
might contain modules for process control, device
control, file maintenance, and memory management
Example
 Tellers : Cashier, Entry Station, Cashier Station, ATM
 Account: Account, Cash Card, Card Authorization,
Customer, Transaction, Update, Cashier
Transaction, Remote Transaction
 Banks: Consortium, Bank
DYNAMIC MODEL
Dynamic Model
 The dynamic model shows the time-dependent
behavior of the system and the objects in it.
 Begin dynamic analysis by looking for event,
externally visible stimuli and responses.
 The dynamic model is important for interactive
systems, but insignificant for purely static data
repository, such as database.
 The following steps are performed in constructing a
dynamic model :
1. Prepare scenarios of typical interaction sequences
2. Identify events between objects
3. Prepare an event trace for each scenario
4. Build a state diagram
5. Match events between objects to verify consistency
Example
FUNCTIONAL MODEL
Functional Model
 The functional model shows how values are
computed, without regard for sequencing, decisions,
or object structure
 The functional model shows which values depend
on which other values and the functions that relate
them
 Data flow diagrams are useful for showing
functional dependencies
Example
OBJECT ORIENTATION
IMPLEMENTATION
Implementation Process
 Class Definition
 Creating Objects
 Calling Operations
 Using Inheritance
 Implementing Association

You might also like