Why This Module Exists
Most developers know how to write classes:
class User
{
};Very few know:
Why User exists
What responsibilities User should have
How User collaborates with other objects
How to discover User from requirements
Whether User should even be a classThis module teaches the process of transforming:
Business Requirements
↓
Domain Understanding
↓
Object Discovery
↓
Responsibility Assignment
↓
Object Model
↓
DesignObject-Oriented Analysis & Design (OOAD)
It is the software engineering approach for analyzing requirements and designing a system using objects, classes, and their interactions.
It is typically divided into two phases:
1 Object-Oriented Analysis (OOA)
The goal is to understand what the system should do.
During analysis, you identify:
- Requirements
- Actors (users or external systems)
- Use cases
- Domain objects
- Relationships between objects
Example: Library Management System
Requirements:
- A user can borrow books.
- A librarian can add books.
- The system tracks due dates.
Posisble domain objects:
- Book
- Member
- Loan
- Librarian
At this stage, you don't worry about implementation details.
2 Object-Oriented Design (OOD)
The goal is to determine how the system will be implemented.
You define:
- Classes
- Attributes
- Methods
- Interfaces
- Inheritance
- Design patterns
- Object interactions
Example:
class Book {
private:
string title;
bool available;
public:
void borrow();
void returnBook();
};Here you are designing the actual software structure.
Leave a comment
Your email address will not be published. Required fields are marked *


