BIP -- Incremental Component-based Construction of Real-time Systems
Objectives
The aim is to develop theory, methods and tools for building real-time systems consisting of heterogeneous components. The focus is on the following challenging problems :
- Develop a framework for the incremental composition of heterogeneous components. Three different sources of heterogeneity are considered related to interaction, execution and abstraction.
- Develop results ensuring correctness-by-construction for essential system properties such as mutual exclusion, deadlock-freedom and progress in order to minimize a posteriori validation.
- Provide automated support for component integration and generation of glue code meeting given requirements.
Main results
Theory on modelling real-time systems
has been developed over the past five years. It includes results on the
expression of urgency, parallel composition, the use of priorities to
model scheduling policies, deadlock-freedom by construction.
The modelling framework has provided a basis for the design of the IF
language and the underlying execution platform.
Recently, applications of these results led to the development of the BIP (Behavior, Interaction, Priority) language and the associated tool chain. The tool-chain consists of a parser that generates from a system described in the BIP language, a model (an instance of the BIP Meta-model). The deparser can produce BIP description source, back from the model.
From the model, the code-generator generates C++ code, executable on a dedicated engine, the BIP Engine. The code-generator can also produce THINK specification, from which the Think tool-chain can generate code to be executed over a choice of target platforms. The BIP Engine can perform execution and enumerative state-space exploration. The generated state graphs can be analyzed by using model-checking tools like Aldebaran, Evaluator, and also the IF-platform.
Additional tools being developed to enrich the BIP tool-chain includes the following:
- D-Finder tool, to detect deadlocks in BIP models by static analysis of the model.
- Model-to-model transfomation tools, in order to perform useful transformations such as from a timed BIP model to a basic BIP model.
About the modelling approach
Our approach considers that components are the superposition of three distinct layers describing, respectively Behavior, Interaction and Priority. Interaction involves synchronization between components behaviour with possible transfer of data. Priority is an elementary control mechanism for conflict resolution which can be used to restrict non-determinism due to concurrency and allows direct expression of scheduling policies. Composition of components consists in composing separately the corresponding layers by using associative and commutative operators parameterized by "glue".
The main characteristics are the following:
- Behavior description encompasses non determinism, action triggering on local conditions and events as well as untimed and timed aspects.
- Description of heterogeneous interaction including strong synchronization by rendezvous as well as weak synchronization by broadcast.
- Architecture is a first class entity, characterized as the combination of interaction and priority.