UML (Unified Modeling Language) is used for overview, visualization, communication, and analysis. It shows classes with attributes like name and type, operations like eat(), and connections between classes. Good UML style uses fewer elements and keeps the goal in mind, as overuse or including too much information can be problems. UML is not a programming language and low-tech diagrams are acceptable.