Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
66 views23 pages

Oops Over

Object-Oriented Programming is a well-regarded and widely accepted programming technology Potential for much improved productivity. Objects are independent entities objects respond to messages Software Productivity Factors Modularity (separation of duties) Extensibility (responsive to future requirements) Flexibility (not cast in concrete) Maintainability (big savings) Reusability (don't reinvent the wheel) Maintenance automation OOP Languages OOP and traditional design Advantages and disadvantages.

Uploaded by

ArvindRox_
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
66 views23 pages

Oops Over

Object-Oriented Programming is a well-regarded and widely accepted programming technology Potential for much improved productivity. Objects are independent entities objects respond to messages Software Productivity Factors Modularity (separation of duties) Extensibility (responsive to future requirements) Flexibility (not cast in concrete) Maintainability (big savings) Reusability (don't reinvent the wheel) Maintenance automation OOP Languages OOP and traditional design Advantages and disadvantages.

Uploaded by

ArvindRox_
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

' $

Object-Oriented Programming
An Overview

& %
OOP-1
' $

Contents

• OOP and software productivity

• Features and characteristics of OOP

• Major concepts of OOP

• OOP languages

• OOP and traditional design

• Advantages and disadvantages

& %
OOP-2
' $

What is Object-Oriented Programming

• A well-regarded and widely accepted programming technology

• Potential for much improved productivity

• Uses interacting program objects

• Objects are independent entities

• Objects respond to messages

& %
OOP-3
' $

Software Productivity Factors

• Modularity (separation of duties)

• Extensibility (responsive to future requirements)

• Modifiability (easy to make small changes)

• Flexibility (not cast in concrete)

• Maintainability (big savings)

• Reusability (don’t reinvent the wheel)

& %
OOP-4
' $

Software Engineering Techniques

• Data abstraction (hidden data representation)

• Program encapsulation (operations married to data)

• Software libraries (fixed reusable)

• Reusable Objects (flexible, reusable)

• Polymorphism (type-related generic operations)

• Maintenance automation

& %
OOP-5
' $

OOP Central Concepts

• Data abstraction

• Encapsulation

• Classification

• Inheritance

• Polymorphism

& %
OOP-6
' $

OOP Characteristics

• Class definitions

• Inheritance and class hierarchy

• Operator and Function overloading

• Generic classes

• Class libraries

& %
OOP-7
' $

OOP Languages

• Simula

• Modula

• Smalltalk

• Ada

• Objective-C

• CLOS (Common Lisp Object Standard)

• Standard C++

• Java

• Scripting languages: Perl, Javascript, Python


& %
OOP-8
' $

Traditional vs. OOP

• Procedural Programming :

data structures + algorithms = Program

• OOP :

objects + messages = Program

& %
OOP-9
' $

Class Definition

• Blueprint for building Objects

• Members: methods and fields

• private and public

• API—application programming interface

• relation with other classes

& %
OOP-10
' $

An Object

Public
Method Internal
call working
interface

& %
OOP-11
' $

Inheritance Example

Auto Sedan

Engine 2−4 Doors


Steering 4 Wheels
Inherits
Breaks Radio

Doors Trunk

Wheels
Tires
& %
OOP-12
' $

Inheritance Example

Sedan Family Sedan

2−4 Doors 4 Doors


4 Wheels AC
Inherits Automatic
Radio
Big Trunk
Trunk Fuel Economy

& %
OOP-13
' $

Inheritance Example

Sedan Sports Sedan

2−4 Doors 2 Doors


4 Wheels AC
Inherits Manual
Radio
Tiny Trunk
Trunk Horse power
High Price

& %
OOP-14
' $

Inheritance Concepts

• Deriving new classes from old ones

• Single inheritance

• Partial inheritance

• Multiple inheritance

• Inheritance chain

& %
OOP-15
' $

Generic Classes

• Class definition for unspecified data

• Container class

• Flexible and reusable

& %
OOP-16
' $

Reusability Considerations

• Pipes / filter (ala UNIX): slow, restrictive

• Subroutine libraries: fast, inflexible

• Object libraries: flexible, and efficient

& %
OOP-17
' $

Design Approaches

• Ways to Break The Problem Down

• Procedural decomposition

• Data decomposition

• Object-oriented decomposition

& %
OOP-18
' $

Procedural Decomposition

• Also known as functional or traditional design

• Decompose the solution into major steps

• Decompose each major step further

• Decomposition procedural-oriented

& %
OOP-19
' $

Traditional Design Disadvantages

• Data and operations are separated

• No data abstraction or info hiding

• Not responsive to changes in problem space

• Inadequate for concurrent problems

& %
OOP-20
' $

Object-oriented Design Principle

• Identify interacting objects

• Characterize each object, establish attributes

• Identify the data and operations within each object

• Identify requests answered by each object

• Identity services required of other objects

• Establish relationships to other objects

• Group similar objects together

• Implement common super classes

• Implement different objects as classes


& %
OOP-21
' $

Advantages

• Responsive to changes

• Encapsulation

• Simplify Testing, debugging

• Easy to understand

• Avoid reinventing the wheel

• Easier to manage, to maintain

• Off-the-shelf software

& %
OOP-22
' $

Potential Disadvantages

• Over generalization

• Artificial class relations

• Unnecessary complications

& %
OOP-23

You might also like