Aka. Unified Modeling Language. A standard visual language for modeling software systems. Describes both static structure and dynamic behavior.
Used to:
- Design a system before coding.
- Document system architecture.
- Communicate design with stakeholders.
- Analyze business processes.
Stereotype Labels
A keyword in guillemets (<<...>>) that refines an existing model element. Placement follows what the stereotype classifies:
- On the line
Qualifies a relationship. Goes on the connecting arrow or dashed line. - Inside the element box
Qualifies a classifier. Placed above the element name inside its rectangle.
Types
Executable UML
Aka. xUML. A subset of UML that allows automatic transformation of models into executable code.
Core model types:
- Domain models
Partition the system into subject-matter areas; define what entities exist and how they relate. - Class models
Define objects within a domain: attributes, operations, and associations. - State models
Capture the lifecycle of each class through states and transitions triggered by events.
Supporting technologies:
- Object Constraint Language (OCL)
Formal language for specifying constraints, invariants, and queries on UML models. - UML action language
Specifies the behavior of operations and state machine actions in executable form.
Constrained to structured, formal model inputs. Natural language specifications cannot be processed directly.
Disadvantages:
- Steep learning curve
Requires mastery of both UML modeling and formal action language before any executable output is possible. - Model complexity mirrors code complexity
For large systems, xUML models grow as large and as difficult to maintain as the code they replace. - Generated code inefficiency
Automatically generated code is typically less optimized than hand-written code for the target platform. - Narrow domain fit
Works well only for well-bounded, formally specifiable domains. Ill-suited to systems with heavy UI, hardware integration, or emergent behavior. - Incomplete models block compilation
Every state, transition, and action must be fully specified. Partial models cannot produce output, unlike informal UML diagrams. - Limited tool support
Few mature, production-grade xUML compilers exist compared to mainstream development toolchains.