/ˌjuː ɛm ˈɛl/
noun — “the blueprint for software that keeps developers from drawing spaghetti diagrams on sticky notes.”
UML, or Unified Modeling Language, is a standardized visual language used to specify, visualize, construct, and document software systems. It provides a set of diagram types and symbols that allow developers, architects, and analysts to communicate designs clearly, bridging the gap between abstract concepts and implementable code. UML is often used alongside CI/CD, Source Control, and Package Management to plan, communicate, and maintain complex systems.
UML includes various diagram categories:
- Class Diagrams — show the structure of a system in terms of classes, attributes, operations, and relationships.
- Sequence Diagrams — depict how objects interact in a particular sequence over time.
- Use Case Diagrams — illustrate system functionality from a user’s perspective.
- Activity Diagrams — model workflows or business processes.
- State Diagrams — represent the states of an object and transitions based on events.
UML diagrams can be used for communication among stakeholders, documentation for maintenance, or as blueprints for generating code in some environments. Tools like PlantUML, Lucidchart, and StarUML allow developers to create diagrams that are both human-readable and machine-processable.
// PlantUML class diagram example
@startuml
class User {
+String name
+String email
+login()
}
class Account {
+int id
+float balance
+deposit(amount)
+withdraw(amount)
}
User --> Account : owns
@endumlUML is like the universal language for software architects: you don’t need telepathy to explain your brilliant design, just a few boxes, lines, and arrows.
See Software Architecture, Design Patterns, CI/CD, Source Control, Package Management.