Updated on 30 Jun, 20266 mins read 144 views

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 class

This module teaches the process of transforming:

Business Requirements
            ↓
Domain Understanding
            ↓
Object Discovery
            ↓
Responsibility Assignment
            ↓
Object Model
            ↓
Design

Object-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.

Buy Me A Coffee

Leave a comment

Your email address will not be published. Required fields are marked *