Introduction
Process ofanalyzing and designing a system using the object-oriented paradigm.
It looks at how these real-world things are connected and how they interact with each
other
It breaks down software development into 3 main phases:
OOA(Object Oriented Analysis)
OOD (Object Oriented Design)
OOP( Object Oriented Programming)
3.
OOA (Object OrientedAnalysis)
Process of analyzing the problem domain and identifying the objects (entities) that
are relevant to the system being built.
Focuses on understanding what the system needs to do
Identify and Define Classes and Objects:
Classes are templates that define the structure and behavior of objects.
Objects are instances of classes that represent real-world entities
Example: In an online shopping system, objects could be Customer, Product,
Shopping Cart.
Determining Relationships Between Objects:
Identify how objects are connected or interact with each other.
Defining Attributes and Behaviors of Objects:
Attributes are the characteristics or properties of an object (e.g., a Product may
have attributes like price and name).
4.
Process ofdesigning how the objects will interact with each other and how the system
will be structured
Define the System’s Architecture and Class Structure:
Identify the high-level structure of the system (e.g., modules, components).
Design the class structure (how the classes will be organized, including their
attributes and methods).
Specify How Objects Will Interact:
Design the interactions between objects Use diagrams like sequence diagrams and
collaboration diagrams to show how objects will exchange information.
Define Relationships and Behaviors:
Define any inheritance or polymorphism between objects
OOD (Object Oriented Design)
5.
OOP( Object OrientedProgramming)
Process of translating the design (from OOD) into actual working code.
Focuses on implementing the system using object-oriented programming languages like
Java, Python, C++, etc.
Key Concepts in OOP:
Encapsulation:
Inheritance:
Polymorphism:
Abstraction:
6.
Basic Concepts :Class
A class is a blueprint or template for creating objects.
It defines attributes (data) and methods (behavior).
It does not hold real data — only structure.
You can create multiple objects from a single class.
Used to represent real-world entities in code.
Example
7.
Object
An objectis a real instance of a class.
It holds actual values in its attributes.
Objects use methods defined in the class to perform actions.
Each object has its own identity, state, and behavior.
Created using the new keyword (in languages like Java, C++).
Example:
8.
Abstraction
Abstraction meanshiding unnecessary details and showing only the essential features.
It helps in reducing complexity by focusing on what an object does instead of how it does
it.
Used to design systems in a simpler and cleaner way.
It Improves code readability and enhances security by hiding internal code.
Example :
makeSound() is defined in the abstract class, but actual behavior is provided in the
subclass.
9.
Encapsulation
Encapsulation meansbinding data and methods that operate on the data into a single unit (i.e., a
class).
It helps in protecting data from unauthorized access.
It ensures data security and prevents unauthorized access
Example :
Here, the name variable is hidden and can be accessed only via getName() and setName() methods.
10.
Polymorphism
Polymorphism means"many forms".
It allows one interface to be used for different types of actions.
The same method name can behave differently depending on the object or
context.
Promotes code reusability and supports extensibility (easy to add new
features).
Real-World Example : Same individual can act as a teacher, parent, or friend
depending on the situation.
11.
Hierarchy
Hierarchy refersto the organization of classes in a parent-child (superclass-subclass)
structure.
It shows inheritance relationships where subclasses inherit features from superclasses.
Helps in classifying and organizing objects in a structured way.
Types of Inheritance (Hierarchy)
Single Inheritance
One class inherits from another.
Multilevel Inheritance
Class A → Class B → Class C
Hierarchical Inheritance
One parent class → multiple child classes.
12.
Hierarchy
Example :
Dog inherits the eat() method from Animal — shows a hierarchical relationship.
13.
Modularity
Modularity meansdividing a system into separate independent
units (called modules or components).
Each module represents a specific functionality or part of the
system.
Enables team collaboration — different people can work on
different modules.
Real-World Example : A car has different modules: engine,
brakes, steering, music system. Each can function independently
but contributes to the whole system.
14.
Object Interaction
Objectinteraction refers to how objects communicate with each other in a system.
Done through method calls, where one object uses the methods or services of another.
It shows the collaboration between objects to complete tasks or achieve goals.
Makes system dynamic and flexible and supports reusability of objects across different
interactions.
Example :
The Car object interacts with the Engine object to perform its task.
15.
Interface
An interfacedefines a contract that classes must follow.
It contains method signatures only – no implementation.
Any class that implements the interface must provide the actual method
definitions.
Promotes abstraction and loose coupling in object-oriented design.
Real-World Example : Remote control interface: Defines buttons like power(),
volumeUp(), channelDown() – but different brands implement them
differently.
16.
Implementation
Implementation refersto the actual coding of classes, objects, methods, and
logic based on the design.
It converts the abstract design into a working system.
Leads to a reliable and efficient system and makes the system easier to test,
debug, and upgrade.
Real-World Analogy :
Design: Architectural blueprint of a house.
Implementation: Actual construction using bricks, cement, plumbing, etc.
17.
Conclusion
Oriented Analysisand Design (OOAD) helps break down complex systems into
manageable, modular, and reusable parts.
Objects and Classes form the foundation of any object-oriented system.
Key principles like Abstraction, Encapsulation, Polymorphism, and Hierarchy
guide how objects behave and relate.
Concepts such as Modularity, Object Interaction, and Interfaces enhance
system structure, collaboration, and flexibility.
Finally, Implementation transforms design blueprints into functional software.