Estelle language Estelle language
 


Overview

An Estelle specification describes a collection of communicating components. Each component is in fact an instance of a module defined within the Estelle specification by a module definition. A module definition in Estelle may textually include definitions of other modules. Applied repeatedly, this leads to a hierarchical tree structure of module definitions. The hierarchy of module instances is dynamic in the sense that the instances may be created or destroyed, while the system is functioning.

A generic module in Estelle (and its instances) is characterized by its interface and its internal behavior.

The communication interface of a module is specified by a number of input / output access points called interaction points. The modules are able to exchange interactions, via separately specified bi-directional communication links between modules' interaction points.

An interaction received by a module instance at its interaction point is appended to an unbounded FIFO queue associated with this interaction point. A module instance can always send an interaction. This principle is sometimes known as non-blocking send (or asynchronous) communication.

Certain variables can be shared between a module and its parent module. The simultaneous access to these variables by both the module and its parent is excluded because the execution of the parent's actions have always priority (so called parent / children priority principle of Estelle).

The behavior of a module is determined by its internal structure (definition of children submodules, their interconnections and their behavior) and the set of transitions (of an extended state transition model) that the module itself may perform.

Two kinds of parallelism between modules can be expressed in Estelle. Asynchronous parallelism is permitted only between subsystems (subtrees whose roots are modules attributed systemprocess or systemactivity), or more precisely, between actions of different modules' instances belonging to different subsystems. The synchronous parallelism is permitted only within a systemprocess-subsystem, or more precisely, between actions of different modules' instances belonging to the same systemprocess-subsystem.


For more information about Estelle please download the short estelle tutorial or consult the appendix 1 of the ISO 9074 document that contains (from its 1997 edition) the official ISO Estelle Tutorial (an extension of the short estelle tutorial) available from the ISO Secretariat and from national standard organizations participating in ISO.