I'm interested in the design of distributed realtime & embedded systems applied to high-integrity domains such as spatial, avionics, etc. I'm particularly focused on innovative approaches and technologies based on model-driven engineering (analysis, transformation, code generation). I've a strong background in programming and modeling languages to support high-integrity applications, and I tend to be more interested by building model-based process and toolchain driven both analysis and code generation. Problematics addressed here are to ensure the consistency between the various models (and their different abstraction level) involved in the toolchain and to reduce the semantic gap between models and implementation.
My recent works concern the design and the simulation of cyber-physical systems where heterogeneous system modeling introduces complexities. Combination of model-of-computations (MoC), distributed simulation and network integration are challenges involved here.
Most of my publications are available on line or here.
I'm or I've contributed to the following open-source software projects:
PtolemyII: an open source modeling and simulation tool for heterogeneous systems, developed by the CHESS team at UC-Berkeley. I have implemented the Ptolemy-HLA/CERTI co-simulation tool and the AFDX network actors (based on quantity manager and decorators)
AADL Behavior annex compiler: I have implemented the AADL behavior annex in Osate2
AADL-HI: an AADL model-based refinement toolset to validate and generate high-integrity systems. I have developed this prototype during my Ph.D. thesis at TELECOM ParisTech, using Osate2 as front-end and the ATL framework as model-based transformation technologies (rules description, engine, etc). For recent and similar works you can consult the RAMSES tool
Osate2: an open source toolset to model and analyze distributed and realtime systems from AADL models, developed by the Software Engineering Institute. I have improved the annex extension mechanism, and integrated the AADL Behavior annex
PolyORB-HI-Ada: a dedicated middleware targeting high-integrity applications and supporting AADL components
Ocarina: a compiler for the AADL language and associated model processor (code generation, gateway to model checkers, scheduling analysis tools, etc). I have extended the compiler to support AADLv2 language
In 2013, I have intregrated the DMIA team at ISAE/Supaero as post-doctoral researcher for one year. I work for the TOAST project which belongs to the TORRENTS domain, funded by the RTRA - STAE Foundation.
My research is focused on the development of a co-simulation (or co-operative) tool for distributed, heterogeneous and deterministic simulation of distributed and realtime cyber-physical systems. The Ptolemy simulation tool has been chosen for its heterogeneous system modeling capacities and the CERTI framework, compliant to the High-Level Architecture (HLA) standard, for its distributed simulation caracteristic.
I have developed the Ptolemy-HLA/CERTI co-simulation tool which is right now integrated to the Ptolemy svn tree at UC-Berkeley. This contibution is not a bindings of HLA services for Ptolemy as the ForwardSim solution could be for MatLab. The co-simulation prototype handles high-level logics to deal with the complexities introduced by the co-simulation: time management - i.e. how events from both worlds are handled in a consistency manner ? - and data communication - i.e. how a data is exchanged in both worlds with a correct representation ? - are discussed and detailed in publications.
More information available soon...
keywords: aadl; behavior annex; mode-driven engineering; model transformation; code generation; analysis; middleware; ada; ravenscar
The increasing complexity of distributed realtime and embedded (DRE) systems and their implication in various domains imply new design and development methods. In safety-criticial domains such as space, aeronautical, transport or medecine, their failure could result in the failure of the mission, or in dramatic damages such as human losses. This particular class of systems comes with strong requirements to satisfy safety, reliability and security properties.
The Model-driven Engineering (MDE) introduces the concept of « model » - an abstract description of the system - and a set of tools (editor, transformation engine, code generator...) to simplify and automatize the design, the validation and the implementation of the system. Thus, various abstractions are realized using different domain-specific modeling languages in order to assess one particular aspect of the system and to re-use model-based analysis tools and generative technologies. These various representations may share some commonalities but the consistency between them is hard to validate (for example: Is the analyzed system the same as the generated one ?).
This PhD thesis leverages MDE concepts and mechanisms, to enhance the reliability of the model-based development process of DRE systems. Our approach is based on the definition of the architectural and behavioral modeling language AADL-HI Ravenscar - a restriction of AADL (Architecture Analysis & Design Language) and its behavioral annex. This subset of AADL constructs, comes up with a semantic close to the one of an imperative programming language, to drive both the analysis and the code generation of the application components and its relying execution platform (middleware) components. We claim that architectural descriptions express all system component information (architecture, requirements, properties...) relevant for those activities, but it is necessary to extend them with behavioral specifications to make explicit middleware components and artefacts and to reduce the semantic gap between the model and targeted programming language.
Our approach defines a new design and development process which 1) refines the initial AADL architectural description of the application to an AADL-HI-Ravenscar architectural and behavioral model ; 2) generates and integrates middleware components, deployed and configured statically from the analysis of the application requirements and its properties ; and 3) validates and produces the source code of the whole system, i.e. the application components and the dedicated middleware components. This process is implemented using model-based transformation methods and frameworks that ease the selection of refinement steps and transformation rules according to the targeted execution platform and the programming language.