Polychrony is an integrated development environment and technology demonstrator for computer-aided embedded software design. It is based on the synchronous multi-clocked (polychronous) model of computation implemented in the data-flow language Signal. The toolset consists of a compiler, a model checker and control synthesizer.
Polychrony is developed by the project-team Espresso, whose scientific objectives are to define and implement models, methods and tools for the computer-aided engineering of trusted application architectures in embedded and mission-critical software. Polychrony is free software available at http://www.irisa.fr/espresso/Polychrony
Polychrony is integrated with Eclipse by a plug-in which allows for the interactive, multi-view, modelling and edition interface, transformation, verification and visualisation interface, of high-level behavioural specifications consists of hybrid mode-automata and block diagrams.
Polychrony provides a unified model-driven design environment to perform embedded software design exploration from imported heterogeneous models by using correctness-preserving transformations. Its design methodology is formally supported by the polychromous model of computation to carry out design transformations from specification to implementation and from synchrony to asynchrony.
The company Geensys supplies a commercial implementation, RT-Builder, used for industrial scale projects by several large industrial groups (see http://www.tni-software.com).
Unified model-driven design environment
Synchronous, multi-clocked, dataflow and mode automata specification language
Validation and verification with the SIGALI, SMV, CADP, Coq
Simulation of embedded software architectures
Model library for ARINC-653 services
Import of AADL specifications
Scriptable C, C++, Java code-generation strategies
Sequential, modular, distributed or clustered
Static or dynamic scheduling, OS and middleware-specific artefacts
Capability to interface and embed legacy C or interpret C functions in SSA form
Export towards scheduling tools to generate machine-specific real-time code