OBJECT ORIENTED ANALYSIS AND DESIGN
1
SOME GREAT THOUGHTS !!
 “Measuring programming progress by lines of code
is like measuring aircraft building progress by
weight.” – Bill Gates
 “Before software can be reusable it first has to be
usable.” – Ralph Johnson
 “There are two ways of constructing a software
design: One way is to make it so simple that there
are obviously no deficiencies, and the other way is
to make it so complicated that there are no
obvious deficiencies. The first method is far more
difficult.” -C.A.R. Hoare
2
Who gave QUICKSORT & DINING
PHILOSOPHERS PROBLEM
AN OVERVIEW OF OBJECT ORIENTED
SYSTEMS DEVELOPMENT
CHAPTER - 1
3
1.1 INTRODUCTION
 Software development is dynamic and
always undergoes major changes.
 Vast number of Tools & Methodologies are
available for systems development.
 Systems Development refers to all
activities that goes into producing an
information systems solution.
4
1.1 INTRODUCTION (CONTD….)
 Systems development consists of:
 Analysis
 Design
 Modeling
 Implementation
 Testing &
 Maintenance
5
1.1 INTRODUCTION (CONTD….)
 A Software development methodology is a
series of processes that, if followed can
lead to the development of an application.
 The s/w processes describe how the
work is to be carried out to achieve the goal
based on system requirements. Each process
consists of a number of steps and rules that
should be performed during development.
 Unified Approach is the methodology used
in OOSD.
6
1.2 TWO ORTHOGONAL VIEWS OF THE
SOFTWARE
 OOSD Methodology:
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.
7
1.2 TWO ORTHOGONAL VIEWS OF THE
SOFTWARE (CONTD….)
 Traditional Development Technique:
1. Views software as collection of programs
or functions and isolated data.
Algorithm + Data Structure = Program
2. It focuses on the functions of the system –
What is it doing ?
3. Primary focus is on function.
4. Data is free flowing.
8
1.3 OOSD METHODOLOGY
 OOSD is a way to develop software by
building self-contained 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.
9
1.3 OOSD METHODOLOGY (CONTD….)
 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.
10
OO APPROACH
 We live in a world of objects
 Object-Oriented view is an abstraction that models the world in ways
that help us to better understand and navigate it
 OO approach was first proposed in the late 1960s
 As time passes, object technologies are replacing classical software
development approaches. Why?
 Object technologies lead to reuse, OO software is easier to maintain,
to adapt, and to scale.
11
OO PARADIGM
 For many years, the term OO was used to denote a software
development approach that used one of a number of OO
programming languages(e.g. Ada 95, C++, Eiffel, Smalltalk)
 Today, the OO paradigm encompasses a complete view of software
engineering
 Although any one of process models, could be adapted for use with
OO, the best choice would be an evolutionary process model
12
OO CONCEPTS
 Classes and class hierarchies
 Instances
 Inheritance
 Abstraction and hiding
 Objects
 Attributes
 Methods
 Encapsulation
 Polymorphism
 Messages
13
OBJECT-ORIENTATION
Using object-orientation as a base, we model a system as a
number of objects that interacts.
Object-oriented Methods enable us to create sets of objects
that work together synergistically to produce software that
better model their problem domains than similar systems
produced by traditional techniques.
14
OBJECT-ORIENTED METHODS
 A technique for system modelling
 A technique to manage complexity inherent in analysis, design, and
implementation
 For the analysis and design of system
 Provide integrated view of hardware and
software
 Provide a methodology for system development
15
1.4 WHY AN OBJECT ORIENTATION ?
 O-O systems are :
 Easier to evolve (adapt to changing
requirements)
 Easier to maintain
 Directly related to reality - semantic gap
 More robust & promote greater design &
 Code reuse
 Systems can be developed more rapidly
at a lower cost
16
1.4 WHY AN OBJECT ORIENTATION ?
(CONTD….)
 Reasons why object orientation works:
i. Higher level of abstraction. (At object level)
ii. Seamless transition among different phases
of software development.
iii. O-O uses same language like UML(Unified
Modeling Language) to talk about all phases
of software development.
iv. It reduces complexity, redundancy, &
creating a robust system.
v. Encouragement of good programming
technique. &
vi. Promotion of reusability.
17
1.5 OVERVIEW OF THE UNIFIED APPROACH
 The Unified Approach(UA) is a
methodology for software development
 The UA is based on methodologies by
Grady Booch, Rumbaugh & Ivar Jacobson,
tries to combine the best practices,
processes & guidelines along with OMG’s
(Object Management Group’s) UML.
18
1.5 OVERVIEW OF THE UNIFIED APPROACH
(CONTD….)
 The heart of UA is Jacobson’s use-case.
 Use case represents a typical interaction
between a user and a computer system to
capture the user’s goals and needs.
 This book of OOSD uses a Layered
Architecture(LA) to develop applications.
19
1.5 OVERVIEW OF THE UNIFIED APPROACH
(CONTD….)
 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
20
GOALS FOR OOSD
 The software development process
 Building high-quality software
 Object-oriented systems development
 Use-case driven systems development
 Prototyping
21
ADVANTAGES OF OBJECT-ORIENTED
DEVELOPMENT
 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.
22
ADVANTAGES OF OBJECT-ORIENTED
DEVELOPMENT
 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% -- 50% of traditional cost of
development.
23
THE JOURNEY OF OOSD
BEGINS....
24

1-PE-I-OOAD.pptx

  • 1.
  • 2.
    SOME GREAT THOUGHTS!!  “Measuring programming progress by lines of code is like measuring aircraft building progress by weight.” – Bill Gates  “Before software can be reusable it first has to be usable.” – Ralph Johnson  “There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.” -C.A.R. Hoare 2 Who gave QUICKSORT & DINING PHILOSOPHERS PROBLEM
  • 3.
    AN OVERVIEW OFOBJECT ORIENTED SYSTEMS DEVELOPMENT CHAPTER - 1 3
  • 4.
    1.1 INTRODUCTION  Softwaredevelopment is dynamic and always undergoes major changes.  Vast number of Tools & Methodologies are available for systems development.  Systems Development refers to all activities that goes into producing an information systems solution. 4
  • 5.
    1.1 INTRODUCTION (CONTD….) Systems development consists of:  Analysis  Design  Modeling  Implementation  Testing &  Maintenance 5
  • 6.
    1.1 INTRODUCTION (CONTD….) A Software development methodology is a series of processes that, if followed can lead to the development of an application.  The s/w processes describe how the work is to be carried out to achieve the goal based on system requirements. Each process consists of a number of steps and rules that should be performed during development.  Unified Approach is the methodology used in OOSD. 6
  • 7.
    1.2 TWO ORTHOGONALVIEWS OF THE SOFTWARE  OOSD Methodology: 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. 7
  • 8.
    1.2 TWO ORTHOGONALVIEWS OF THE SOFTWARE (CONTD….)  Traditional Development Technique: 1. Views software as collection of programs or functions and isolated data. Algorithm + Data Structure = Program 2. It focuses on the functions of the system – What is it doing ? 3. Primary focus is on function. 4. Data is free flowing. 8
  • 9.
    1.3 OOSD METHODOLOGY OOSD is a way to develop software by building self-contained 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. 9
  • 10.
    1.3 OOSD METHODOLOGY(CONTD….)  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. 10
  • 11.
    OO APPROACH  Welive in a world of objects  Object-Oriented view is an abstraction that models the world in ways that help us to better understand and navigate it  OO approach was first proposed in the late 1960s  As time passes, object technologies are replacing classical software development approaches. Why?  Object technologies lead to reuse, OO software is easier to maintain, to adapt, and to scale. 11
  • 12.
    OO PARADIGM  Formany years, the term OO was used to denote a software development approach that used one of a number of OO programming languages(e.g. Ada 95, C++, Eiffel, Smalltalk)  Today, the OO paradigm encompasses a complete view of software engineering  Although any one of process models, could be adapted for use with OO, the best choice would be an evolutionary process model 12
  • 13.
    OO CONCEPTS  Classesand class hierarchies  Instances  Inheritance  Abstraction and hiding  Objects  Attributes  Methods  Encapsulation  Polymorphism  Messages 13
  • 14.
    OBJECT-ORIENTATION Using object-orientation asa base, we model a system as a number of objects that interacts. Object-oriented Methods enable us to create sets of objects that work together synergistically to produce software that better model their problem domains than similar systems produced by traditional techniques. 14
  • 15.
    OBJECT-ORIENTED METHODS  Atechnique for system modelling  A technique to manage complexity inherent in analysis, design, and implementation  For the analysis and design of system  Provide integrated view of hardware and software  Provide a methodology for system development 15
  • 16.
    1.4 WHY ANOBJECT ORIENTATION ?  O-O systems are :  Easier to evolve (adapt to changing requirements)  Easier to maintain  Directly related to reality - semantic gap  More robust & promote greater design &  Code reuse  Systems can be developed more rapidly at a lower cost 16
  • 17.
    1.4 WHY ANOBJECT ORIENTATION ? (CONTD….)  Reasons why object orientation works: i. Higher level of abstraction. (At object level) ii. Seamless transition among different phases of software development. iii. O-O uses same language like UML(Unified Modeling Language) to talk about all phases of software development. iv. It reduces complexity, redundancy, & creating a robust system. v. Encouragement of good programming technique. & vi. Promotion of reusability. 17
  • 18.
    1.5 OVERVIEW OFTHE UNIFIED APPROACH  The Unified Approach(UA) is a methodology for software development  The UA is based on methodologies by Grady Booch, Rumbaugh & Ivar Jacobson, tries to combine the best practices, processes & guidelines along with OMG’s (Object Management Group’s) UML. 18
  • 19.
    1.5 OVERVIEW OFTHE UNIFIED APPROACH (CONTD….)  The heart of UA is Jacobson’s use-case.  Use case represents a typical interaction between a user and a computer system to capture the user’s goals and needs.  This book of OOSD uses a Layered Architecture(LA) to develop applications. 19
  • 20.
    1.5 OVERVIEW OFTHE UNIFIED APPROACH (CONTD….)  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 20
  • 21.
    GOALS FOR OOSD The software development process  Building high-quality software  Object-oriented systems development  Use-case driven systems development  Prototyping 21
  • 22.
    ADVANTAGES OF OBJECT-ORIENTED DEVELOPMENT 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. 22
  • 23.
    ADVANTAGES OF OBJECT-ORIENTED DEVELOPMENT 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% -- 50% of traditional cost of development. 23
  • 24.
    THE JOURNEY OFOOSD BEGINS.... 24