Bird
Raised Fist0
LLDsystem_design~12 mins

Identifying classes from requirements in LLD - Architecture Diagram

Choose your learning style10 modes available
System Overview - Identifying classes from requirements

This system helps to identify classes from given software requirements. It breaks down requirements into meaningful objects (classes) that represent real-world entities or concepts. The goal is to organize requirements into a clear structure for easier design and development.

Architecture Diagram
User
  |
  v
Requirement Parser
  |
  v
Class Identifier
  |
  v
Class Repository
  |
  v
Output Generator
  |
  v
User
Components
User
actor
Provides software requirements input and receives identified classes output
Requirement Parser
service
Analyzes raw requirements text to extract key nouns and verbs
Class Identifier
service
Determines candidate classes based on parsed requirements
Class Repository
database
Stores identified classes and their attributes
Output Generator
service
Formats and delivers the list of identified classes back to the user
Request Flow - 5 Hops
User → Requirement Parser
Requirement Parser → Class Identifier
Class Identifier → Class Repository
Class Identifier → Output Generator
Output Generator → User
Failure Scenario
Component Fails:Class Repository
Impact:Identified classes cannot be saved or retrieved, causing loss of data and inability to provide output
Mitigation:Use database replication and backups to ensure availability and data recovery
Architecture Quiz - 3 Questions
Test your understanding
Which component first processes the raw requirements text?
AOutput Generator
BRequirement Parser
CClass Identifier
DClass Repository
Design Principle
This architecture separates concerns by parsing requirements, identifying classes, storing them, and formatting output in distinct components. This modular design improves clarity, scalability, and maintainability.

Practice

(1/5)
1. Which of the following is most likely a class when designing a library management system?
easy
A. Return
B. Borrow
C. Book
D. Search

Solution

  1. Step 1: Identify nouns in the requirement

    Classes usually come from nouns. Here, 'Book' is a noun representing an object.
  2. Step 2: Differentiate between nouns and verbs

    'Borrow', 'Return', and 'Search' are actions (verbs), so they are methods, not classes.
  3. Final Answer:

    Book -> Option C
  4. Quick Check:

    Class = Noun = Book [OK]
Hint: Pick the noun as class, verbs become methods [OK]
Common Mistakes:
  • Choosing verbs as classes
  • Confusing actions with objects
  • Ignoring nouns in requirements
2. In a ride-sharing app, which of these is the correct way to represent a class in code?
easy
A. class Driver {}
B. function Driver() {}
C. var Driver = 5;
D. let driver = 'John';

Solution

  1. Step 1: Understand class syntax in LLD context

    Classes are defined with the keyword 'class' followed by the class name.
  2. Step 2: Check options for class declaration

    class Driver {} uses 'class Driver {}' which is correct syntax for a class.
  3. Final Answer:

    class Driver {} -> Option A
  4. Quick Check:

    Class syntax uses 'class' keyword [OK]
Hint: Look for 'class' keyword to identify class declaration [OK]
Common Mistakes:
  • Using function instead of class
  • Assigning class name to variable
  • Confusing variables with classes
3. Given the requirement: "A hotel booking system must manage Guests, Rooms, and Bookings." Which of these is the correct set of classes identified?
medium
A. [Booking, Book, GuestList]
B. [Guest, Room, Booking]
C. [Guest, Book, RoomBooking]
D. [Room, Guest, ReservationList]

Solution

  1. Step 1: Extract nouns from the requirement

    The nouns are Guests, Rooms, and Bookings, which represent objects.
  2. Step 2: Match nouns to class names

    Classes should be singular nouns representing entities: Guest, Room, Booking.
  3. Final Answer:

    [Guest, Room, Booking] -> Option B
  4. Quick Check:

    Classes = Nouns = Guest, Room, Booking [OK]
Hint: Pick singular nouns as class names from requirements [OK]
Common Mistakes:
  • Using verbs as classes
  • Using plural or combined names incorrectly
  • Adding unrelated terms
4. You have a requirement: "The system should allow Users to login and logout." Which of the following is an error in identifying classes and methods?
medium
A. Class: User; Methods: login(), logout()
B. Class: UserAccount; Methods: login(), logout()
C. Class: User; Methods: authenticate(), logout()
D. Class: Login; Methods: user(), logout()

Solution

  1. Step 1: Identify nouns and verbs

    'User' is a noun (class), 'login' and 'logout' are actions (methods).
  2. Step 2: Check option correctness

    Class: Login; Methods: user(), logout() incorrectly uses 'Login' as a class and 'user()' as a method, which reverses noun and verb roles.
  3. Final Answer:

    Class: Login; Methods: user(), logout() -> Option D
  4. Quick Check:

    Class = noun, Method = verb [OK]
Hint: Classes are nouns; methods are verbs [OK]
Common Mistakes:
  • Using verbs as classes
  • Naming methods as nouns
  • Mixing class and method roles
5. A food delivery app requirement states: "Customers place Orders, Restaurants prepare Meals, and DeliveryAgents deliver Orders." Which classes should be created to model this system correctly?
hard
A. [Customer, Order, Restaurant, Meal, DeliveryAgent]
B. [Customer, PlaceOrder, Restaurant, Meal, Deliver]
C. [CustomerOrder, RestaurantMeal, Delivery]
D. [Order, Meal, DeliveryAgent, Place]

Solution

  1. Step 1: Identify all nouns in the requirement

    Nouns are Customers, Orders, Restaurants, Meals, DeliveryAgents.
  2. Step 2: Use nouns as class names and verbs as methods

    Classes should be Customer, Order, Restaurant, Meal, DeliveryAgent. Actions like 'place' and 'deliver' become methods.
  3. Final Answer:

    [Customer, Order, Restaurant, Meal, DeliveryAgent] -> Option A
  4. Quick Check:

    Classes = Nouns only, verbs become methods [OK]
Hint: Classes = nouns; actions = methods in those classes [OK]
Common Mistakes:
  • Using verbs as classes
  • Combining nouns incorrectly
  • Omitting important entities
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard