Skip to main content

Is OOP enough in OOAD

Short answer

No, OOP only covers programming constructs; OOAD also requires analysis (finding what to build), design (assigning responsibilities using GRASP, patterns), requirements capture, UML modeling, and an iterative process.

Is OOP concept enough in OOAD? Prepare an explanatory note about OOAD introduction.

No, OOP concepts alone are not enough for OOAD. OOP (classes, objects, inheritance, polymorphism, encapsulation) is programming knowledge: it tells us how to write code with objects. OOAD is the engineering process that decides which objects and classes should exist, what responsibilities they have and how they collaborate, before programming begins. A person who knows Java syntax can still produce a poor design.

Introduction to OOAD

  • Object-Oriented Analysis (OOA) studies the problem domain and finds the objects, concepts and use cases that matter. It focuses on what the system does.
  • Object-Oriented Design (OOD) defines the software objects, their responsibilities, collaborations and architecture to meet the requirements. It focuses on how.
  • Both use the UML to model and communicate, and follow a process such as the Unified Process, which is iterative.

What OOAD needs beyond OOP

Needed in OOADWhy OOP does not give it
Requirements capture (use cases)OOP assumes the problem is already known
Domain modellingFinding the right classes needs analysis
Responsibility assignment (GRASP)OOP does not tell which class should do what
UML modellingCommunication with team and customer
Design patterns, architectureSolve recurring design problems
Iterative process, testing, risk managementProject-level activities
 Problem -> OOA -> OOD -> OOP (code)
           (what)  (how)  (write)

Example: For a "library system", OOP lets us write class Book. OOAD tells us that Loan is a separate class, that Member should create Loan (Creator), that fine calculation belongs to Loan (Information Expert), and shows these in class and sequence diagrams.

So OOP is a necessary tool for implementation, but OOAD (analysis, modelling, design principles, patterns and process) is needed to build good systems.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Object Oriented Analysis and Design chapter 1 questions →