ATM Machine — Simple#
Problem statement (interviewer prompt)
Design the software inside an ATM: authenticate by card + PIN, present a menu (balance / withdraw / deposit / transfer), validate balance + daily limits, dispense cash, print receipts, and handle exceptions (no cash, no network, card retained).
classDiagram
class ATM
class CardReader
class CashDispenser
class Display
class Keypad
class BankSwitch
class State
ATM --> CardReader
ATM --> CashDispenser
ATM --> Display
ATM --> Keypad
ATM --> BankSwitch
ATM --> State