You are on page 1of 21

CHAP-1

OBJECT ORIENTED
SYSTEM DESIGN
(IT-703)
Text Books:

1. Object Oriented System Development


Ali Bahrami (TMH)
2. Object-Oriented Modeling & Design with UML
Blaha & Rambaugh (Pearson)
3. Object-Oriented Analysis & Design using UML
D Jeya Mala, S Geetha(TMH)
4. Object-Oriented Analysis, Design and Implementation
Brahma Dathan, Sarnath Ramnath (University Press)

OOSD- Introduction

An overview of
object-Oriented
Systems Development

OOSD- Introduction

Q. What major problems have you encountered during past


software projects?
o
o
o
o
o
o

Project estimation (under estimation)


Time, effort estimation
Premature implementation
Quick prototyping the problem
Feeling of understanding problem but really not
Changing requirements

(Waterfall model,
Incremental model,
Evolutionary development model,
Agile model)
OOSD- Introduction

Introduction
Software development is dynamic
1. Always undergoes major changes
2. Current and future practice will be different
3. Anticipate the methods and tools to succeed
4. Can not predict the future

Today, vast number of tools and methodologies are


available for systems development.
System development activity consists of
Systems analysis,
modeling,
design,
testing,
implementation, and
maintenance.
OOSD- Introduction

A software (SW) development methodology is a series of


processes, if followed, can lead to the development of an
application.
Each process consists of number of steps and rules to
be followed during development.

Unified Approach is the methodology used


by Dr. Ali Bahrami for learning OOSD.

OOSD- Introduction

Two Orthogonal views of the SW


Object-Oriented systems development differs from
Traditional development techniques. Traditional
technique view the SW as a collection of programs (or
functions) and isolated data.
What is a program?
Niklaus Writh, inventor of Pascal, sums it up
Algorithm + Data Structure = Program
A SW system is a set of mechanism for performing
certain action on certain data
There are two different ways to view software
constructions either on functions or on data
OOSD- Introduction

Data centered - data store (e.g. file or database) lies at the


center of this architecture and is accessed frequently by other
components that modify data

Data flow - input data is transformed by a series of


computational or manipulative components into output data

Object-oriented - components of system encapsulate data and


operations, communication between components is by message
passing
Layered - several layers are defined, each accomplishing
operations that progressively become closer to the machine
instruction set

The distinction between Traditional system development


methodologies and newer Object-oriented methodologies lies in
their primary focus.
1. Traditional approach focuses on the functions of the system
What is it doing ?
2. Data is free flowing.

OOSD Methodology:
Object-oriented system development centers on the

object.
1.Views software in the form of objects which are discrete
and grouped.
2.OOSD focuses on the object, which combines data
and
functionality
3. Primary focus is on data.
4. Data security is given utmost attention.
OOSD- Introduction

10

OOSD Methodology
OOSD is a way to develop software by building selfcontained modules or objects that can be easily
replaced, modified and reused.
OOSD encourages views of the world as a system of
cooperative and collaborating objects. (e.g. Window)
In an O-O environment software is a collection of
discrete objects that encapsulate their data as well as
the functionality, to model real-world entity.
In an O-O system everything is an object and each
object is responsible for itself.
Dont say system is computing the payroll of employee, you tell the
employee object compute your payroll.
OOSD- Introduction

11

Why an Object Orientation?

O-O systems are :


Easier to adapt to changing requirements
Easier to maintain
More robust and promote greater design
Code reuse

Say
System, compute the payroll of this employee (Traditional way)
Now tell the employee object
Compute your payroll (In object orientation way)
OOSD- Introduction

12

Object Orientation is
appropriate

To develop complex systems


Systems that are prone to change
Systems with user interfaces
Systems that are based on client/server
model
To build e-commerce / web based
applications
For enterprise application integration
(EAI)
OOSD- Introduction

13

Reasons why object orientation works:


Higher level of abstraction. (at object level)
Traditional: Top down approach supports abstraction at function level)
Data is now attributes and function is method

Seamless transition among different phases of software


development.
O-O uses same language like UML (Unified Modeling
Language) to talk about all phases of software
development.
It reduces complexity, redundancy, and creating a robust
system.
Encouragement of good programming technique.
Promotion of reusability.
OOSD- Introduction

14

Overview of the Unified Approach


The Unified Approach (UA) is a methodology for
software development that is proposed by the author
Dr. Ali Bahrami. (and used in this book of OOSD)
The UA is based on methodologies by Grady Booch,
James Rumbaugh & Ivar Jacobson. They tried to
combine the best practices, processes & guidelines
along with OMGs(Object Management Groups) UML.
The heart of UA is Jacobsons use-case. Use case
represents a typical interaction between a user and a
computer system to capture the users goals and needs.
This book of OOSD uses a Layered Architecture (LA) to
develop applications.
OOSD- Introduction

15

Layered Architecture (LA)


LA is an approach to software development that allows us
to create objects, that represents tangible elements of the
business, independent of how they are represented to the
user through an interface or physically stored in a database.
Layered Approach consists of:
i. View or UI (User Interfaces) Layer
ii. Business Layer
iii. Access Layer

OOSD- Introduction

16

The Unified Approach Road Map


Analysis

Design

1. Identify the user 6. Apply design axioms


2. Develop a simple
to design classes
business model 7. Design the access
3. Develop use case
layer
4. Interaction diagram
8. Design view layer
Develop sequence diagrams
classes
Develop collaboration diagram

5.

Classification

Macro level UI design

Micro level UI design

Identify classes
Usability and user satisfaction
Identify relationships
Refine and iterate
Identify attributes
Identify methods
(Fig.1.1 pg.7, Ali Bahrami)
OOSD- Introduction

17

Goals for OOSD


The software development process
Building high-quality software
Object-oriented systems development
Use-case driven systems development
Prototyping

OOSD- Introduction

18

Advantages of OOSD
Code and design reuse
Increased productivity
Ease of testing (?) and maintenance
Better understandability
Elegant design:

Loosely coupled, highly cohesive objects

Essential for solving large problems.

OOSD- Introduction

19

Initially incurs higher costs

After completion of some projects, reduction in cost


become possible

Using well-established OO methodology and


environment:

Projects can be managed with 20% to 50% of


traditional cost of development.

OOSD- Introduction

20

Summary
The OOSD is an iterative process and is divided into
analysis, design, prototyping/implementation, and
testing.
The UA, Layered Architecture and UML are used by
Dr. Ali Bahrami for OOSD.

OOSD- Introduction

21

You might also like