Unified Modeling Language
What Is Unified Modeling Language?
Unified Modeling Language (UML) is a standardized visual modeling notation for specifying, constructing, and documenting the artifacts of software-intensive systems. It provides a common vocabulary of diagrams and notation elements that development teams use to communicate system structure and behavior across organizational, disciplinary, and national boundaries. UML is maintained by the Object Management Group (OMG), an international open-membership standards consortium, and the current version, UML 2.5.1, is published as an OMG specification. It is among the most widely adopted software engineering standards in existence, used across domains ranging from enterprise information systems to embedded control software.
UML emerged in the mid-1990s from a consolidation of three competing object-oriented design methods: the Booch method, the Object Modeling Technique (OMT) developed by James Rumbaugh, and the Object-Oriented Software Engineering (OOSE) method developed by Ivar Jacobson. Grady Booch, Rumbaugh, and Jacobson, working at Rational Software, unified these methods into a single notation and submitted it to the OMG for standardization. OMG adopted UML 1.0 in 1997, and subsequent revisions have expanded the notation to support model-driven development, systems engineering, and domain-specific modeling profiles.
Structural Diagrams
UML 2.5 defines fourteen standard diagram types, organized into two broad families. Structural diagrams capture the static organization of a system. The class diagram, the most widely used structural diagram, depicts classes, their attributes and operations, and the relationships between them, including associations, dependencies, generalizations, and realizations. The component diagram shows how a system is divided into modular software components and the interfaces through which they communicate; the deployment diagram maps components onto physical hardware nodes. The OMG UML specification documents the full set of structural diagrams along with the metamodel that governs how modeling elements relate to each other.
The package diagram organizes model elements into namespaces, and the object diagram captures a snapshot of a specific object configuration at a moment in time, complementing the class diagram's static view with an instance-level view.
Behavioral Diagrams
Behavioral diagrams describe dynamic aspects of a system. The use case diagram models the interactions between external actors and the system, identifying functional requirements at a high level of abstraction. The sequence diagram shows how objects exchange messages over time, making it the primary tool for documenting detailed interaction protocols between system components. Activity diagrams represent workflows and parallel processing; state machine diagrams model the lifecycle of individual objects as a set of states and transitions triggered by events.
The interaction overview diagram composes multiple sequence diagrams into a control flow view; the timing diagram represents behavioral constraints with respect to real-time or relative time. These behavioral diagrams collectively make UML applicable to client-server system design, where the sequencing of requests, responses, and error conditions across distributed components must be precisely specified. Research published by ACM on model-driven architecture demonstrates that UML behavioral models can be transformed into executable code through model-driven engineering tools, reducing the gap between design and implementation.
Domain-Specific Profiles and Extensions
UML profiles adapt the core notation to specific technical domains through stereotypes, tagged values, and constraints. SysML, derived from UML 2, extends the language for systems engineering tasks including requirements modeling, parametric analysis, and allocation of functions to physical components. The IEC Common Information Model (CIM) for electricity uses a UML-based representation to describe the conceptual entities in power system management, enabling interoperability among energy management systems from different vendors. The OMG Systems Modeling Language (SysML) specification illustrates how the profile mechanism allows UML to address domain requirements that go beyond the original software engineering scope.
Applications
Unified Modeling Language has applications in a range of fields, including:
- Enterprise software development, for documenting object-oriented class hierarchies and service interfaces
- Client-server system design, for specifying communication sequences between tiers
- Power systems engineering, through the IEC Common Information Model profile
- Embedded systems and automotive software, through the AUTOSAR and SysML profiles
- Business process modeling, as a complement to BPMN for system-level specification