Unified Modeling Language (UML) is a general-purpose modeling language used in software engineering to visually represent the architecture, design, and implementation of complex software systems. UML is not a programming language, but rather a visual language used to portray the behavior and structure of a system. The Object Management Group (OMG) adopted UML as a standard in 1997, and it has been managed by OMG ever since. The International Organization for Standardization (ISO) published UML as an approved standard in 2005.
UML diagrams are used to divide a software system into components and subcomponents, making it easier to keep track of the relationships and hierarchies within the system. UML diagrams can be broadly classified into the following types:
- Use Case Diagrams: Used to describe the functionality of a system from the users perspective.
- Class Diagrams: Used to describe the structure of a system by showing the classes in the system and the relationships between them.
- Object Diagrams: Used to show a snapshot of the system at a particular point in time.
- Sequence Diagrams: Used to describe the interactions between objects in a system over time.
- Activity Diagrams: Used to describe the flow of activities in a system.
- State Machine Diagrams: Used to describe the behavior of a system in response to internal and external events.
- Component Diagrams: Used to describe the physical components of a system and their dependencies.
- Deployment Diagrams: Used to describe the physical deployment of a system on hardware.
Using UML helps project teams communicate, explore potential designs, and save time down the line by visualizing processes, user interactions, and the static structure of the system. UML is a standardized modeling language that can be used across different programming languages and development processes, so the majority of software developers will understand it and be able to apply it to their work.