📘 OOAD Overview (Object-Oriented Analysis & Design)
🔹 1. Definition
Object-Oriented Analysis and Design (OOAD) is a software development approach that focuses on analyzing and designing a system using objects and classes.
- Object-Oriented Analysis (OOA): Understanding the problem domain
- Object-Oriented Design (OOD): Creating the solution/design
👉 Simple idea:
OOAD helps you go from “What is needed?” → “How will it be built?”
🔹 2. Key Concepts in OOAD
- Object: Real-world entity (e.g., Student, Car)
- Class: Blueprint of objects
- Attributes: Data of objects
- Methods: Behavior/functions
- Relationships: How objects interact
🔹 3. Phases of OOAD ⭐
🔸 3.1 Object-Oriented Analysis (OOA)
Goal: Understand requirements and identify key objects.
🔹 Steps:
- Identify actors (users or external systems)
- Identify use cases (what system should do)
- Identify objects/classes
- Define relationships
Output:
- Use Case Diagram
- Conceptual Class Diagram
Example:
Library system → Actors: Member, Librarian
🔸 3.2 Object-Oriented Design (OOD)
Goal: Transform analysis into a detailed design.
🔹 Steps:
- Define class structure
- Add attributes and methods
- Design interactions
- Apply design principles
Output:
- Detailed Class Diagrams
- Sequence Diagrams
- Activity Diagrams
🔹 4. OOAD Process Flow
Requirements → Analysis → Design → Implementation → Testing
👉 OOAD mainly focuses on Analysis + Design
🔹 5. Important OOAD Models (UML Diagrams)
🔸 5.1 Use Case Diagram
- Shows interaction between actors and system
Diagram Description:
Stick figures (actors) connected to oval shapes (use cases)
🔸 5.2 Class Diagram
- Shows classes, attributes, methods, relationships
🔸 5.3 Sequence Diagram
- Shows object interactions over time
🔸 5.4 Activity Diagram
- Shows workflow or process flow
🔸 5.5 State Diagram
- Shows state changes of an object
🔹 6. Principles Used in OOAD
- Abstraction → Focus on essential features
- Encapsulation → Hide data
- Inheritance → Reuse code
- Polymorphism → Many forms
🔹 7. Example (Library System)
🔹 Analysis Phase:
- Actors: Member, Librarian
- Use Cases: Issue Book, Return Book
🔹 Design Phase:
Class: Book
- title
- author
+ issue()
+ return()
🔹 Interaction:
Member → requestBook() → Librarian → issueBook()
🔹 8. Advantages of OOAD
- Better system understanding
- Reusability
- Easy maintenance
- Scalability
- Real-world mapping
🔹 9. OOAD vs Traditional Approach
| Feature |
OOAD |
Traditional |
| Focus |
Objects |
Functions |
| Reuse |
High |
Low |
| Flexibility |
High |
Limited |
🔹 10. Key Rules / Guidelines
- Identify real-world objects first
- Keep design modular
- Use UML diagrams
- Maintain low coupling & high cohesion
- Refine design iteratively
🔹 11. Likely Exam Questions
- Define OOAD and explain its importance.
- Differentiate between OOA and OOD.
- Explain phases of OOAD.
- What are UML diagrams? Explain types.
- Describe the OOAD process flow.
- Explain use case diagram with example.
- What is class diagram?
- Advantages of OOAD over traditional methods.
- Explain role of objects in OOAD.
- Draw and explain sequence diagram.
🔹 12. Quick Revision Summary 🧠
- OOAD = Analysis + Design using objects
- OOA → What system should do
- OOD → How system will work
- Uses UML diagrams
- Based on 4 pillars of OOP
👉 Shortcut Trick:
"AD → Analyze then Design"