I detail below the research that I have carried out during various internships preceding my PhD.
System-level Modeling of Embedded Control Systems: A Case Study from the Automated Transfer Vehicle
-
Master & "Magistère 3" (2008), supervised by Florence Maraninchi and Christophe Rippert.
Abstract
Model-driven approaches are more and more used in order to develop embedded control applications. Indeed, high-level models ease the design and the reasoning of these complex systems. Moreover, models with well-defined semantics allow formal analysis and validations of the system. In addition, when this semantics is executable, then they can be used to build a virtual prototype of a platform. This enables starting the development of the software as well as tests and evaluations of the system earlier and before the physical existence of the hardware. These models can also serve to guide the target software code generation, this last operation being sometimes automated, therefore making safer or even eliminating the error-prone manual implementation of the application.
However, these approaches usually involve a remaining manual development stage, consisting in implementing the code assuring the integration of the multiple application parts on the target platform (also called system-level code). In addition, past experiences have shown that the most successful approaches aiming at this issue consist in the characterization of the target platform by identifying the related constraints and behaviors, and their integration in the high-level models.
We try to address this problem in the same manner, but in the domain of distributed embedded control applications involving fault tolerance and using point-to-point communication protocols. We notably studied the existing Proximity Flight Safety (PFS) control system which entailed these characteristics.
After having manually integrated a control application onto a virtual prototype of the PFS implemented in SystemC, we identified the needed information to build a synchronous model of the platform including the system-level code. Several kinds of synchronous models were then designed with the Lustre language. Then, we were able to point out the basis for a model-driven design flow taking this integration code into account.
Dynamic Memory Management in Real-Time Java Applications
-
"Magistère 2" (2007 — continuance of my "Magistère 1" training course), supervised by Christophe Rippert and Guillaume Salagnac.
I first studied a region-based real-time dynamic memory management mechanism for Java proposed by Guillaume Salagnac. Next, I put forward and experimented the usage of a hybrid dynamic memory manager combining it with a reference counting garbage collector.
-
"Magistère 1" (2006), also supervised by Christophe Rippert and Guillaume Salagnac.
I worked about the life span of the dynamically allocated objects in real-time embedded Java applications.