Sie sind auf Seite 1von 15

Object Oriented Methodology,

Themes, Evidences and History

1. OO Methodology
 A process of building a model of an application and

then adding details to it during design


 OO development stages:


System Conception

Analysis

System Design

Class Design

Implementation

a) System Conception
 Development begins with Business Analysts + Users

(Clients)
 Formulates tentative requirements

b) Analysis
 Analysts scrutinizes and re-states the requirements from

system conception


By constructing models

 Analysts works with requester (client)


 Problem statement will be rarely complete and correct!!!
 Creates Analysis Model:


A Concise, abstraction of what the system does, how it will be done

Should not contain implementation decisions

Analysis Model
 Has 2 parts


Domain Model A description of the real-world objects reflected


within the system


E.g.., Payroll Systems domain objects  employee, employer, bank

Application Model A description of the parts of the application


system that are visible to the user


E.g.., Payroll Systems application objects  compute gross, display


pay-band, generate report

 Developed by Application experts Not programmers!!

c) System Design
 Develops System Architecture for solving application

problem
 System designers will:


Decides how to optimize the performance

Choose how to attack the problem

Make tentative resource allocations

GUI screen design and changes are considered

Suitable communication protocols and memory management are


decided

d) Class Design
 Class designer will


Add details to analysis model

Elaborate both domain and application objects with same


notation

 Mandatorily, focus on data structures and algorithms

needed to implement each class




E.g.., How to save employee details; How to calculate pay for


Professor, Associate professors, Technical Assistants

 Finally, Classes and Relationships are generated

e) Implementation
 Implementers


Translate the output of class design (classes + relationship) 


into a particular programming language + database + hardware

 A good methodology/ practice should be followed for

this translation


To enhance traceability to the design apparently

To make the system flexible and extensible.

2. OO Themes
 Abstraction


Focus on the essential aspects of an application ignoring in-depth


details

Avoids taking decisions too early and premature commitments

 Encapsulation


Also called as Information Hiding

Separates external aspects of an objects from internal implementation


(that are to be hidden)

Supports changing an objects implementation without affecting the


application; E.g.., improve performance, fix a bug, consolidate code

2. OO Themes
 Combining Data and Behavior


Polymorphism User need not consider how many


implementations exists.

E.g, Non OO code uses separate draw functions for each shape

OO Code uses single draw for all shapes; the data to be passed
should be different (function overloading)

Area (l,b)

Area=
l*b

Area (h,b)

Area =
*h*b

Area (a)

Area =
a*a

Area (l,b)
Area (h,b)
Area (a)

Area=l*b
or
Area =*h*b
or
Area = a * a

2. OO Themes
 Sharing


Inheritance Sharing attributes and behavior

Code Library Library of codes/ components are created hence


sharing between two projects

Achieves Reusability

 Emphasis on the Essence of an object




Use of object depends on the application

Features of objects are always stable




Hence OO gives more emphasis for data and less for procedure

2. OO Themes
 Synergy


Interaction/ collaboration of Identity + Classification +


Polymorphism + Inheritance

The resulting system after using these will be = clean, generic


and robust

3. Evidences for Usefulness of OOD


 General Electric Research and Development Center


OO techniques are used to develop:




Compilers, Graphics, UI, databases, CAD systems, simulations, meta-models,


control systems, etc..,

 Forums that disseminates new OO ideas and results:




OOPSLA (Object Oriented Programming Systems, Languages and


Applications)

ECOOP (European Conference on Object Oriented Programming)

TOOLS (Technology of Object Oriented Languages and Systems)

4. OO Modeling History
 1991 Development of Object Modeling Technique (OMT)


Success. But resulted in the usage of various notations (symbols)

 1994 Rambaugh + Booch + Jacobson worked for unification


 1996 and 1997 OMG (Object Management Group), through

Rational of IBM, released UML (unified Modeling Language)




A standard model for notations and symbols UML version 1

UML is highly successful and replaced other notation

 2001 OMG revised UML by adding features - UML version 2

Reference
 Bernd Bruegge and Allen H. Dutoit, Object-Oriented

Software Engineering: Using UML, Patterns and Java,


Third Edition, Pearson Education Asia, 2010.
 Michael Blaha, James Rumbaugh Object-Oriented

Modeling and Design with UML, Second Edition,


Pearson Education, Fifth impression 2009