ARTES
-------------------------------------------------

 

Software Engineering for Real-Time Systems:
the Synchronous Approach can help.

Florence Maraninchi
VERIMAG lab
Pr. INPG/ENSIMAG
www-verimag.imag.fr/~maraninx

Abstract
The synchronous approach to the development of real-time safety-critical systems has been studied for 20 years now, and has given birth to several languages, among which Lustre and Esterel, in France. Telelogic sells the programming environment Tau-Scade, based upon Lustre; Esterel is now developed by Esterel Technologies. They are both used for operational projects.

The basic models of concurrency and time, as defined by the synchronous paradigm, are now very well understood. However, there is still ongoing research in this area.

In the talk, we briefly review the main principles of the synchronous approach, and how it can be instanciated in two very different programming styles (with examples in Esterel for event-driven systems, in Lustre for sampled systems). We also explain how formal validation (testing, model-checking, connection to provers, etc.) can be applied to synchronous programs.

Then we show the new directions of research (mixing synchronous systems with asynchronous ones, focusing on properties related to the numerical aspects of systems, extending the languages with new constructs, ...).

The last part of the talk is devoted to the presentation of the SeeS project at Verimag (``Software Engineering for Embedded Systems''). The goal of the project is to define a software development methodology for embedded real-time systems, powered by a very early use of formal specification and verification techniques, and able to produce efficient embeddable code.

The general idea is to try and adapt the more traditional software engineering methods to the case of embedded systems. For this purpose, there are mainly two approaches.

The first one starts from very high level design techniques, and introduces some elements related to the constraints imposed by the implementation (timing, memory, etc.). For instance, a lot of real-time patterns have been proposed, in the UML framework. The main problem with this approach is that the models used at this very high level are far from the well-formalized models of time and concurrency needed for the validation of real-time safety-critical systems. Even if these methods help in taking timing constraints into account at a very early stage of development, there is little support for formal validation of these constraints.

SeeS adopts the second approach, which is in some sense bottom-up. Starting from the well-understood techniques that we use for implementing and validating real-time software in the synchronous approach, we propose to define the higher level design phases, in an object-oriented style. For instance, one of the goals is to apply the ``design by contract'' principles to real-time components. This requires that we extend the notion of contract to accomodate real-time aspects; we also need to understand how objects can fit in a synchronous language; and finally we need to apply validation tools for the proofs induced by the definition of contracts.

  ---------------------line----------------------------
  Strategic Research