Project : s4
Section: Overall Objectives
The objective of the project is the realization by algorithmic methods of reactive and distributed systems from partial and heterogeneous specifications. Methods, algorithms and tools are developed to synthesize reactive software from one or several incomplete descriptions of the system's expected behavior, regarding functionality (synchronization, conflicts, communication), control (safety, reachability, liveness), deployment architecture (mapping, partitioning, segregation), or even quantitative performances (response time, communication cost, throughput).
These techniques are better understood on fundamental models, such as automata, Petri nets, event structures and their timed extensions. The results obtained on these basic models are then adapted to those realistic but complex models commonly used to design telecommunication and embedded systems. The behavioral views of the Unified Modeling Language  (sequence diagrams and statecharts), the High-Level Message Sequence Charts  and the synchronous reactive language Signal are the heart of the software prototypes being developed and the core of the technology transfer strategy of the project.
The scientific objectives of the project can be characterized by the following elements:
- A focus on a precise type of applications:
The development of real-time software to be deployed over distributed architectures, such as telecommunication systems, complex control systems (automotive or avionics), flexible production systems, work-flow, etc.
- A specific methodology:
The development of methods and tools which assist engineers since the very first design steps of reactive distributive software. The main difficulty being the adequacy of the proposed methods with standard design methods based on components and model engineering, which most often rely on heterogeneous formalisms and require correct by construction component assembly.
- Scientific and technological foundations:
Those models and methods which encompass (i) the distributed nature of the systems being considered, (ii) true concurrency, and (iii) real-time.
- A particular effort to develop and transfer software prototypes:
Tools have been developed which demonstrate the results of our research on (i) Petri net synthesis and (ii) scenarios languages.
All these elements are detailed below:
A focus on a precise type of applications: The development of real-time software to be deployed over distributed architectures
Behavioral descriptions should be adaptable and composable. Specifications are expressed as requirements on the system to be designed. These requirements fall into four categories: (i) functional (synchronization, conflict, communication), (ii) control (safety, reachability, liveness), (iii) architectural (mapping, segregation) and (iv) quantitative (response time, communication cost, throughput, etc).
Deployment on a distributed architecture.
Domain specific software platforms, known as middleware, are now part of the usual software design process in industry, especially in telecommunication     . They offer a specialized and platform independent distributed environment to higher-level software components. Deployment of software components and services should be done in a safe and efficient manner.
Our research is focused on several problems related to the context described above:
Service adaptation and control
The telecommunication industry is often facing the problem of the integration of new features in existing protocol stacks  . This is a most difficult problem which requires costly changes to the software, and later, even more costly testing of the end-to-end service and of the possibly unexpected interactions between features. As of today, integration of new features is done directly on the implementation and not on the requirements nor on the detailed specifications.
Our research contributes to the development of methods and tools which assist the adaptation and control of services, at the level of requirement or design specifications.
Deployment on specific distributed architectures
The correctness of the synthesized communication and control depends only on generic properties of the underlying middleware. This allows to cover large classes of middlewares, instead of one middleware, specific to one application domain. We take into account simple functional properties of the middleware (for instance, reliable or lossy channels). We are also taking into account very particular temporal properties of the service to be deployed and of the middleware (periodic communications, bounded transmission time, etc.).
Component based design, using heterogeneous specification formalisms
The unified modeling language (UML)  offers a large and heterogeneous set of specification formalisms: architectural (class and deployment diagrams) or, behavioral (sequence and state diagrams). Our ambition is to provide both a formal semantics to subsets of these formalisms, and effective and correct mappings between them.
Requirements of several kinds can be expressed in these formalisms: functionality (synchronization, conflict, communication), control (safety, reachability, liveness), architectural (mapping, segregation) and quantitative performances (response time, throughput). The main problem is to analyze and transform system specifications expressed in these formalisms.
Research tracks, scientific foundations
Team S4 contributes methods, algorithms and tools producing distributed reactive software from partial heterogeneous specifications of the system to be synthesized (functionality, control, architecture, quantitative performances). This means that several heterogeneous specifications (for instance, sequence diagrams and state machines) can be combined, analyzed (are the specifications inconsistent ?) and mapped to lower level specifications (for instance, communicating automata, or Petri nets).
The scientific method of Team S4 begins with a rigorous modeling of problems and the development of sound theoretical foundations. This not only allows to prove the correctness (functionality and control) of the proposed transformations or analysis; but can also guarantee the optimality of the quantitative performances of the systems produced with our methods (communication cost, response time).
Synthesis and verification methods are best studied in fundamental models, such as automata, Petri nets, event structures, synchronous transition systems. Then, results can be adapted to more realistic but complex formalisms, such as the UML. The research work of Team S4 is divided in four tracks:
Petri net synthesis
This track follows up the main research theme of the former Team Paragraphe of Inria Rennes. In addition to further developments of the theory, applications in several fields are being investigated (automated production systems, work-flow engineering, component based software engineering).
Current research work concentrate on the composition of system views expressed in scenario formalisms such as High-Level Message Sequence Charts (HMSC) .
This track contributes to the extension, to distributed systems, of the well-established synchronous paradigm. The aim is to provide a unified framework in which both synchronous systems, and particular asynchronous systems (so-called weakly-synchronous systems) can be expressed, combined, analyzed and transformed.
Classification et resolution of control problems through the quantified mu-calculus
Many supervisory control problems can be expressed, with full generality, in the quantified mu-calculus, including the existence of optimal solutions to such problems. Algorithms computing winning strategies in parity games (associated with formulas in this logic) provide effective methods for solving such control problems. This framework offers means of classifying control problems, according to their decidability or undecidability, but also according to their algorithmic complexity.