You are on page 1of 17

Object-Oriented

Modelling and Design

Introduction
It is a new way of thinking about problems
using models based on real world
concepts.
The basic construct is object which
combines both data structure and
behavior in a single entity.

What is object-oriented?
Software is organized as a collection of
discrete objects that incorporate both data
structure and behavior.
In general it includes- identity,
classification, polymorphism and
inheritance.

Identity
Identity means that data is organized into
discrete, distinguishable entities called
objects.
Objects can be concrete or conceptual.
In real world an object simply exist but
within a programming language each
object has a unique handle by which it can
be uniquely referenced.
The handle can be implemented by
address, array index or unique value of an
attribute.
4

Classification
It means that objects with same data
structure (attribute) and behavior
(operations) are grouped into a class.
A class is an abstraction that describes
important properties and ignores the rest.
Each class describes infinite set of objects.
An object has its own value for each
attribute but shares the attribute name
and operation with other instances of the
class
5

Polymorphism
It means that the same operation (i.e.
action or transformation that the object
performs) may behave differently on
different classes.
Specific implementation of an operation by
a certain class is called a method.
In oops, language automatically selects
the correct method to implement an
operation based on the name of the
operation and class of the object being
operated on

Inheritance
It is the sharing of attributes and operations
among classes based on a hierarchical
relationship.
Subclasses can be formed from broadly
defined class.
Each subclass incorporates or inherits all the
properties of its super class and adds its own
unique properties.
The ability to factor out common features of
several classes into a super class can reduce
repetition within designs and programs
7

Object-oriented
development?
Development refers to the software lifecycle: analysis, design and implementation
The theme is the identification and
organization of application concepts rather
than final representation in a programming
Language.

Modeling concepts, not


implementation
Design flaws that surface during
implementation are more costly to fix than
those found earlier.
It is a conceptual process independent of a
programming language until the final
stage.
It benefits specifiers, developers and
customers from expressing abstract
concepts clearly and communicate them
to each other
9

Object-oriented
methodology
Stages System conception
Analysis
System design
Class design
Implementation

10

System Conception
Software development begins with
business analysts or users conceiving
an application and formulating
tentative requirements

11

Analysis
The analyst scrutinizes and rigorously
restates the requirements from system
conception by constructing models
The analysts must work with the requestor
to understand the problem, because
problem statements are rarely complete or
correct
The analysis model is a concise, precise
abstraction of what the desired system
must do, not how it will be done.
12

Analysis model has two parts


Domain model description of real world
objects reflected within the system
Application model description of the
parts of the application system itself that
are visible to the users
Ex: in a stock broker application, domain
objects are stock, bond, trade and
application objects are control of execution
of trades, present the results etc.
13

System Design
The development team devise a high level
strategy the system architecture for
solving application problems.
The system designer must decide what
performance characteristics to optimize,
choose a strategy of attacking the
problem, and make tentative resource
allocations

14

Class Design
Class designer adds details to the analysis
model in accordance with the system
design strategy.
The class designer elaborates both domain
and application objects using OO concepts
and notations
The focus of class design is the data
structures and algorithms needed to
implement each class
15

Implementation
Implementers translate the classes and
relationships developed during class
design into a particular programming
language / database / hardware
It is important to follow good software
engineering practice so that traceability to
the design is apparent and so that the
system remains flexible and extensible.

16

Developers must check analysis models


against reality. They must verify design
models against various kinds of errors, in
addition to testing implementations for
correctness.
Confining quality control to a separate
step is more expensive and less effective.

17