You are on page 1of 2

What is Object-Oriented Programming

1. A well-regarded and widely accepted programming technology


2. Potential for much improved productivity
3. Uses interacting program objects
4. Objects are independent entities
5. Objects respond to messages

 Polymorphism
Enables “programming in the general”
The same invocation can produce “many forms” of
results
 Interfaces
Implemented by classes to assign common
functionality to possibly unrelated classes

Software Productivity Factors


1. Modularity (separation of duties)
2. Extensibility (responsive to future requirements)
3. Modifiability (easy to make small changes)
4. Flexibility (not cast in concrete)
5. Maintainability (big savings)
6. Reusability (don’t reinvent the wheel)

Software Engineering Techniques


1. Data abstraction (hidden data representation)
2. Program encapsulation (operations married to data)
3. Software libraries (fixed reusable)
4. Reusable Objects (flexible, reusable)
5. Polymorphism (type-related generic operations)
6. Maintenance automation

Object-oriented Design Principle


1. Identify interacting objects
2. Characterize each object, establish attributes
3. Identify the data and operations within each object
4. Identify requests answered by each object
5. Identity services required of other objects
6. Establish relationships to other objects
7. Group similar objects together
8. Implement common super classes
9. Implement different objects as classes
OOP Languages
1. Simula
2. Modula
3. Smalltalk
4. Ada
5. Objective-C
6. CLOS (Common Lisp Object Standard)
7. Standard C++
8. Java
9. Scripting languages: Perl, Javascript, Python

Advantages
1. Responsive to changes
2. Encapsulation
3. Simplify Testing, debugging
4. Easy to understand
5. Avoid reinventing the wheel
6. Easier to manage, to maintain
7. Off-the-shelf software
Traditional Design Disadvantages
1. Data and operations are separated
2. No data abstraction or info hiding
3. Not responsive to changes in problem space
4. Inadequate for concurrent problems

Potential Disadvantages
1. Over generalization
2. Artificial class relations
3. Unnecessary complications

Student - BSNN Priyadharshana


Date -18 sep 2010

You might also like