UML

2 min read Last updated Mon Jun 08 2026 10:41:10 GMT+0000 (Coordinated Universal Time)

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.
Was this helpful?