Estelle is an extension of ISO standard Pascal. The extensions
are mainly concerned with expressing Finite State
Machines and their associated States, Transitions and Events.
-
State identifiers are chosen by the user, according to some
understanding of a particular system. They form an enumerated
set of constants, and each is associated with some module or
modules.
-
Transitions are specified between states, and have
associated transition blocks which contain almost
standard Pascal definitions of the Actions to be
performed on a transition.
-
A specification is made up from Modules, which
interact via Channels and Interaction Points.
-
A Module is essentially either a process (which may be a system
(top level) process), or else an activity. The intention behind
this is to enable the specification of active chunks of a
system, and passive (i.e. event handling) pieces of a system.
In implementation, this might be
reflected in the difference between modules that are scheduled and run continuously
til they explictly complete, and modules that are fired up on a one off basis.
-
A module definition contains a list of interaction points that
events will occur on. These are essentially a list of the
Channels that the module will accept events on, or will
generate events on.
-
A channel is essentially a queue which a process or activity
can generate events on. The channel definition says what the
relationship of any modules using the channel should be (i.e.
which module will generate what events on a channel, and which
will accept events on a channel).
-
The association of modules via channels, with interaction at
the end points is controlled by connecting and
disconnecting the modules to and from a channel.
Modules may be paramaterised. Process type modules are
dynamic, and are initialized (created/instatiated) or destroyed
as a system runs.
A module may have a separate Body and Header, so
that we can define a consistent service supported by a module
without going into detail of how the service is provided. (E.g.
a train or a plane will get you to Edinburgh, but work in a
totally different way. They might be parameterised by cost -
e.g. the plane is usually cheaper, but not during the festival,
and certainly have internal interactions that are different
e.g. with the railway tracks provider or runway providers).