Skip to content

Lifecycle or Assigner

Leon Starr edited this page Aug 4, 2026 · 5 revisions

The line right after the domain name specifies the state model usage.

Shlaer-Mellor Executable UML defines two state machine use cases:

  • A lifecycle of a class — the behavior of any instance of a class, abstracted as a lifecycle
  • An assigner — resolves conflict for an association where instances compete to link together

You can learn more about each of these use cases in the Shlaer-Mellor metamodel state subsystem wiki. Links to specific terms in that wiki appear below.

Whereas a lifecycle is defined on a class, an assigner is defined on an association.

Here's the top level grammar rule:

statemodel = EOL* metadata? domain_header (lifecycle / assigner) events? initial_transitions* state_block* EOF

The (lifecycle / assigner) term is a choice, so one of the two must appear and neither may be repeated.

Here is how each choice is structured:

lifecycle = "class" SP name EOL*
assigner = "relationship" SP rnum (SP '/' SP name)? EOL*

See the wiki sidebar for an example of each state model use case.

Clone this wiki locally