Problem Statement
When developers start coding without clearly identifying the main classes, the design becomes messy and hard to maintain. This leads to duplicated code, unclear responsibilities, and difficulty in extending the system later.
This diagram shows the flow from requirements to identifying nouns and then defining classes with clear responsibilities.
### Before: No clear classes, everything in one function def process_order(order_data): print(f"Processing order for {order_data['customer_name']}") # code mixes customer and order logic ### After: Classes identified from requirements class Customer: def __init__(self, name): self.name = name class Order: def __init__(self, customer): self.customer = customer def process(self): print(f"Processing order for {self.customer.name}") # Usage customer = Customer("Alice") order = Order(customer) order.process()