The Polychrony toolset, based on Signal, constitutes a development environment for critical systems, from abstract specification until deployment on distributed systems. It relies on the application of formal methods, allowed by the representation of a system, at the different steps of its development, in the Signal polychronous semantic model. It provides a formal framework:
Signal is based on synchronized data-flow (flows + synchronization): a process is a set of equations on elementary flows describing both data and control, the variables of the system are signals. A signal is a sequence of values which has a clock associated with; this clock specifies the instants at which the values are available.
The Signal formal model provides the capability to describe systems with several clocks (polychronous systems) as relational specifications. Relations are useful as partial specifications and as specifications of non-deterministic devices (for instance a non-deterministic bus) or external processes (for instance an unsafe car driver).
Using Signal allows to specify an application, to design an architecture, to refine detailed components down to RTOS or hardware description. The Signal model supports a design methodology which goes from specification to implementation, from abstraction to concretization, from synchrony to asynchrony.
The principal application areas for the Signal language are that of embedded, real-time, critical systems. Typical domains include:
It constitutes a development environment for critical systems, from abstract specification until deployment on distributed systems. It relies on the application of formal methods, allowed by the representation of a system, at the different steps of its development, in the Signal polychronous semantic model.
For more information concerning the INRIA Polychrony environment, consult the ESPRESSO team website:http://www.irisa.fr/espresso/Polychrony