Parking lot
Questions & Requirements
- Who? what kind of car, what kind of parking lot/building
- What? parking, finding parking spot
- Where? parking lot
- When? Move in date, Move out date
- How? How to park(how to find empty parking spot), payment function
- Why? None
For example:
- N levels, each level has M rows of spots and each row has K spots. So each level has M*K spots
- the parking lot can park motorcycles, cars and buses
- The parking lot has motorcycle spots, compact spots, and large spots
- Each row,
- motorcycle spots ID is in range [0, K/4)
- compact spots ID is in range [K/4, K/4*3)
- large spot ID is in range [K/4*3, K)
- A motorcycle can park in any spot
- A car park in single compact spot or large spot
- A bus can park in htree large spots that are consecutive and within same row. it cannot park in small spots
Define Class (Properties, State)
- Location
- Parking spot
- ID, Spot Size,
- Available
- Level
- ID, Rows number, each Rows' spots number
- Available spots number
- Parking lot/building
- ID
- Parking spot
- Vehicle (base class)
- ID, Size
- Motorcycle
- Car
- Bus
Define Class(Relationship)
- Location
- Parking Spot
- Row number, Level number
- Level
- parking spot list
- Parking lot/building
- Level list
- Dictionary<Vehicle, Parking Spot>
- Dictionary<Parking Spot, Vehicle>
- Parking Spot
Define Class (Behavror)
- Parking Spot
- Park vehicle/Leave spot
- isAble to park
- Level
- Leave/Park in Spots
- Find Available Spots
- Parking Lot
- Leave/Park in Spots
- Find Available Spots
- Vehicle
- Move in Spot
- Move out Spot
Design Elevator
Question & Requirements
- What? Building management system?
Define Class (Object)
- Elevator
- User/Passager
- Building Management(Singleton)
- Message/Event
Define Class (properties, state)
- Elevator
- ID
- Elevator Info
- Status, running/stop/emergency
- Door Status, open/lock/working/emergency
- Current Floor
- Elevator Info
- Elevator size
- Max Weight
- User
- ID
- Message
- Status
- Elevator id
- Target Floor
- Time/Date -> Time out declare emergency
- Operation
Define Class(Relationship)
- Building Management(Singleton)
- Elevator set
- Message Queue
Define Class (Behavior)
- Elevator
- Move up, Move down
- Open door, Close door
- Get Status
- Get Current Floor
- Stop
- Enter Emergency
- User
- Call Elevator Up
- Call Elevator Down
- Get Current Floor
- Go to Floor
- Open Door
- Close Door
- Declare Emergency
- Message
- Operations: Move Up, Move, Down, Open Door, Close Door
- Building Management
- Get Message
- PerformMessageOnElevator