Current research work

Currently, my research activities are undertaken inside the ReDCAD research team.

Our team, armed with a deep understanding of architectural models, model transformation, and automatic code generation, has been focusing its research on the challenging domain of distributed real-time and embedded (DRE) systems. More specifically, we are engaged in applying Architecture Description Languages (ADLs) in a DRE setting. The work we’ve done represents a unique blend of independence, such that each project could serve as standalone doctoral research, and complementarity, facilitating cooperative work on shared sub-contributions.

One of our key contributions has been in the development of dynamically reconfigurable DRE systems. Using Model-Driven Engineering (MDE) and architectural models, we have introduced novel concepts like meta-modes and developed a set of supportive tools (meta-models, UML profiles, etc.). We have ensured that the implementation of dynamic reconfiguration doesn’t compromise system accuracy, testing this against existing execution profiles such as Ravenscar. Our research has been validated through case studies and recognized in various international journals and conferences.

We have also delved into the domain of fault tolerance (FT) in DRE systems. This has resulted in a process for building FT DRE systems using ADLs. To tackle the complexities in this field, we integrated Aspect-Oriented Programming (AOP) into modeling, completed the development of an AOP extension for the Ada programming language, and enriched it with developmental tools. This work, validated through extensive case studies, has found its place in numerous high-profile publications.

Further, we have addressed the challenge of multi-objective optimization (MOO) in real-time and embedded (RTE) systems, focusing specifically on the assignment of functionalities to system threads. To achieve an optimal balance between maximizing functionality and minimizing resource use, we have developed a MOO approach based on evolutionary algorithms (EAs). This research has been shared through various international journals and conferences.

Lastly, we have explored the formal verification of DRE architectures, employing existing verification tools and translating architectural models into formal specifications. Our work includes defining a real-time concurrent formal model for the LNT language, a process algebra enriched with imperative programming elements, and creating an MDE approach based on the AADL language for early problem detection in system modeling. This research has received recognition in a variety of international journals and conferences.

Future research work

Building upon the knowledge and expertise I’ve gathered over the past decade in the realm of distributed, real-time and embedded (DRE) systems design using Architecture Description Languages (ADLs), I’m eager to explore new and promising horizons. In this context, I aim to utilize the contributions I’ve made in this domain to navigate towards medium-term, and long-term research perspectives.

In the medium term, I envision focusing on the automatic configuration and reconfiguration of DRE systems for microcontrollers, and the automatic generation of optimized embedded Linux images. The rise of the Internet of Things (IoT) and an array of programmable hardware architectures offers a fertile ground for this research. Furthermore, I plan to explore how to use ADLs to integrate non-functional requirements and produce code optimized for specific hardware architectures. I also plan to investigate an architecture description-based approach to ease the configuration and production of embedded Linux systems.

In the long term, my goal is to unify the processes of the four contributions described in my thesis within a single platform. This would assist designers in describing and optimizing dynamically reconfigurable, fault-tolerant DRE systems, facilitating formal verification from the modeling phase itself. With the medium-term contributions, this platform could be used in critical domains like autonomous vehicles and healthcare, as well as in non-critical areas like smart farming, allowing automated field management while optimizing water usage. This would be particularly beneficial in countries experiencing chronic water stress, like Tunisia, offering significant improvements and efficiencies.

PhD thesis work

Building distributed real-time embedded systems (DRE) is a tedious task. In addition, real-time applications must satisfy hard constraints to ensure they work correctly (meeting deadlines…). The use of architecture description languages aims at reducing the development cost of these applications. AADL (Architecture Analysis & Design Language) belongs to this family of languages. It uses the concept of “component” (hardware or software) whose well defined semantics makes possible the description of many aspects of DRE systems. The various constraints that must be met are integrated into the AADL model as properties. My thesis work exploits the features offered by AADL to specify the exact requirements of a DRE application and automatically generate its code. The production process that has been proposed (1) automatically produces the code to integrate the applicative components to the runtime platform, (2) automatically produces a significant part of the middleware components customised for the application and (3) automatically deploys the applicative and middleware components to get a system which is strongly dedicated to the application. In particular, the AADL executive is itself statically configured. The adopted approach reduces the development time and allows for an customised and analyzable code. The configuration and deployment (often separated from the development process) are now automated and integrated into the production chain.

During my thesis work, I developed and contributed to the development of several tools.

Ocarina

Ocarina is a tool suite written in Ada to manipulate AADL models. Ocarina can perform semantic analysis of AADL models, schedulability analysis (through the Cheddar tool) and formal verification (by generating Petri nets from AADL models and analyzing them with the CPN-AMI framework). Ocarina can generate distributed applications from their AADL models. My contribution to Ocarina was the development of the code generators to the PolyORB and PolyORB-HI middleware.

PolyORB

PolyORB is a “schizophrenic middleware”. My main contribution to PolyORB was the development of its new IDL compiler: IAC. PolyORB is free software, available from the AdaCore repository.

PolyORB-HI

PolyORB-HI is a middleware dedicated to critical systems (avionics, space, etc.). Most of the code of this middleware is generated automatically using the Ocarina tool suite. Its Ada runtime is available from its repository.

For more details on my thesis work, you can download my thesis report.