Introduction To Object Orientation System Analysis and Design
Introduction To Object Orientation System Analysis and Design
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
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