MSML Enhancements

MSML provides certain enhancements beyond the generalized blocks and spaces that can be utilized when building out specifications.

Block Enhancements

  • All the squares in the following graph are blocks with specialized features.
  • We will use white lines to denote regular transmission channels / wiring, red lines to denote the special case of state update where a mechanism is changing some value of a state variable and blue lines to just show a relationship that suggests a block is called by a class of entities
  • This graphic shows all the paths that a block COULD take, not that they will take, one can have a policy which has a kill switch to do nothing or return void
graph LR
V1[(Entity)]-->B
A[Control Actions] -->C[Policy]
B[Boundary Actions] -->C
C-->C
C-->D[Mechanisms]
C-->E[KPIs]
D-->V2[(Entity\nState)]
linkStyle 0 stroke:blue
linkStyle 6 stroke:red

Control Actions

  • Are meant to represent actions in the system not triggered by any specific entity such as time passing or any actions not associated with an entity
  • Domain is always none
  • Is one block that starts action chains

Boundary Actions

  • Represents specific actions associated with an entity or entities that can call it such as buying an item, joining a group, etc.
  • Domain is always none
  • Is the other block that starts action chains

Policy

  • Uses both domain and codomain
  • Handles all the logic within the specification such as policies for determing the price of an item bought
  • Can call other policies or move into calling KPIs or mechanisms

KPIs

  • No codomain and is a terminating block
  • Used to keep track of important system KPIs and compute the representation

Mechanisms

  • No codomain and is a terminating block
  • Handles all updates to state
  • Meant to be a way to standardize variable updates