Skip to content

State model semantics

Leon Starr edited this page Sep 4, 2021 · 1 revision

State Model Semantics

With regard to state models, action language provides the ability to send a signal, possibly delayed, to a state machine instance and to access any parameter values received with a signal.

A signal must be directed to a single state machine instance.

A state machine instance is either a class instance or an association. In the case of a class instance, the state machine instance represents the lifecycle of that instance. For example, an aircraft instance takes off, flies around and then lands. An association state machine represents an assigner which manages competition on the association. For example, association R7 between classes Missile and Target executes an algorithm to bind two together since it wouldn’t be possible to let a Missile instance choose a Target or vice versa without resource locking or race conditions occurring. The assigner provides a necessary single point of control. So, yes, you can send a signal to an association (assuming it has an assigner state machine) in xUML.

An assigner is either single (identified by the association only) or multiple (identified by both the association and an instance of the assigner’s partitioning class). In the multiple assigner case, imagine that a Missile can track only those Targets within some Tracking Zone. In that case we need a separate assigner state machine instance for each Tracking Zone (the partitioning class). Each of these state machine instances is on the same association.

In the case of a lifecycle, an event is directed at a single class instance.

In the case of a single assigner, an event is directed at the association (R number).

In the case of a multiple assigner, an event is directed at the association with the target state machine identified by an instance of the partitioning class. In the Missile/Target example, we could send a signal to the R7 assigner state machine instance identified by Tracking Zone 22, let’s say.

Introduction

Model semantics

Flows (as Variables)

Constants and literals

Structure of an activity

Accessing the class model

Data flow


Grammar and parsing notes

Components

Clone this wiki locally