Often we start modeling software requirements by doing Use Cases.
More specific diagrams are done using UML
Design a parking lot system with object-oriented design (in terms of classes, objects, users, and interfaces) for a very large (30k) parking lot. Assume the parking lot has four entrances and exits, one for each side of the parking lot. Assign a parking space nearest to the entrance that the car came in from. The system should not allow more cars than it has spaces. There are four kinds of parking spaces: handicap, compact, large, motorcycle. The system should be based on an hourly rate that is paid when the car exits the parking lot. The system should take cash and credit cards. It also has a system for monitoring how many cars are entering and exiting as well as video surveillance. You need to design the system so that it can be used for new parking lots with minimal work needed.
Here is a video walkthrough of these requirements when you think you have a design.