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 OF OBJECT ORIENTED
SYSTEMS DEVELOPMENT
CHAPTER - 1
3
4. 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
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 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
8. 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
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
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
12. 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
13. OO CONCEPTS
Classes and class hierarchies
Instances
Inheritance
Abstraction and hiding
Objects
Attributes
Methods
Encapsulation
Polymorphism
Messages
13
14. 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
15. 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
16. 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
17. 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
18. 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
19. 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
20. 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
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