Statemachine DSL

From OS.bee documentation
Revision as of 07:15, 7 April 2017 by Riegel (Talk | contribs) (Statemachine DSL)

Jump to: navigation, search

Copyright Notice

All rights are reserved by Compex Systemhaus GmbH. In particular, duplications, translations, microfilming, saving and processing in electronic systems are protected by copyright. Use of this manual is only authorized with the permission of Compex Systemhaus GmbH. Infringements of the law shall be punished in accordance with civil and penal laws. We have taken utmost care in putting together texts and images. Nevertheless, the possibility of errors cannot be completely ruled out. The Figures and information in this manual are only given as approximations unless expressly indicated as binding. Amendments to the manual due to amendments to the standard software remain reserved. Please note that the latest amendments to the manual can be accessed through our helpdesk at any time. The contractually agreed regulations of the licensing and maintenance of the standard software shall apply with regard to liability for any errors in the documentation. Guarantees, particularly guarantees of quality or durability can only be assumed for the manual insofar as its quality or durability are expressly stipulated as guaranteed. If you would like to make a suggestion, the Compex Team would be very pleased to hear from you.

(c) 2016-2024 Compex Systemhaus GmbH

Introduction

State Machine

State Machine or extended finite-state machine (EFSM) is a mathematical model of computation and represents an abstract machine that can be in exactly one of a finite number of states at any given time. The State Machine can change from one state to another in response to external events. The change from one state to another is called a transition. A EFSM is defined by a list of its states, its initial state, and the conditions for each transition. The condition for a transition is called guard. There can be many guards protecting a transition to be triggered. Every guard is joined with a logical AND operation, so every guard must evaluate to true, to trigger a protected transition. Data operations can occur before a transition. They are called actions. Actions prepare the indicated state of the transition, calculate things or display information.


Further reading

https://en.wikipedia.org/wiki/Finite-state_machine

https://en.wikipedia.org/wiki/Extended_finite-state_machine

https://en.wikipedia.org/wiki/UML_state_machine


Statemachine DSL

Statemachine DSL implements the state pattern (https://en.wikipedia.org/wiki/State_pattern) and interconnects UI model, FunctionLibrary, DTO and peripheral services like JavaPOS, ZVT protocol and others.

The main semantic elements of the StatemachineDSL are:

  • package - The root element that contains all the other elements. A model can contain multiple packages.
  • import declarations - Used to import external models or other Java classes.
  • statemachine - The container for the implementation of the state pattern.
  • events - Contains all user defined events.
  • event - Defines a single event by id.
  • controls - The container for all beans to be controlled by the state machine.
  • control - Defines a bean (https://en.wikipedia.org/wiki/JavaBeans) to operate as event source and to be controlled by an action.
  • attribute - Defines different types for usage with control.
  • states - The container for all state definitions of this state machine.
  • state - A single state the machine can be at a point in time.
  • triggers - The container for all possible event processing blocks inside a state.
  • transistion - Starts a block where all actions are described which should be processed before the transition to the described state.
  • guards - The container for guards protecting the following transistion.
  • guard - A condition that must evaluate to true that the following transistion will be processed.
  • actions - The container for all process instructions to be done in sequence inside this block.

Keywords