Object-Oriented Analysis (OOA), CRC Cards & Use Case Modeling
Idea in plain words
Requirement Engineering: Eliciting Functional Requirements (what the system does) and Non-Functional Requirements (performance, memory, crash safety).
Exam tip
High-yield exam topic (Very High).
Explanation
Object-Oriented Analysis focuses on understanding the problem domain without making premature implementation or storage commitments. Noun identification uncovers entities (Customer, Account, Transaction), while verb analysis identifies candidate member functions (deposit, authenticate, displayStatement).
Key points
- Actor Identification: Primary actors (users, administrators) and external systems interacting across system boundaries.
- Use Case Modeling: Use cases capture interactions; diagrams show actors, use cases, <> and <> relationships.
- Domain Modeling: Noun-verb analysis on problem descriptions to identify candidate classes and operations.
- Class Responsibility Collaborator (CRC) Cards: Lightweight index-card technique defining Class Name, Responsibilities (what it knows/does), and Collaborators (other classes it relies upon).
Example
Example
Use Case relationship: 'Process Loan' <> 'Verify Credit History'. 'Generate Overdraft Alert' <> 'Withdraw Cash' on condition of insufficient funds.
Code examples
// CRC Card Layout Example for Banking System:
// -------------------------------------------------------------
// Class Name: BankAccount
// Superclass: (None) Subclasses: SavingsAccount, CurrentAccount
// -------------------------------------------------------------
// Responsibilities: | Collaborators:
// - Maintain account number & balance | - TransactionLogger
// - Validate deposit amounts | - InterestCalculator
// - Check overdraft limits on debit |
// - Provide formatted balance report |
// -------------------------------------------------------------
Exam questions
- [8 Marks] Draw a Use Case Diagram and write a detailed Use Case description for a Library Management System.
- [7 Marks] Explain CRC modeling and demonstrate how candidate classes and responsibilities are extracted from requirement specifications.