Axe plates-formes logicielles

L'équipe TRAME s'est attachée à expliciter un modèle de plate-forme d’exécution pour des technologies dédiées à l'embarqué temps réel (essentiellement les noyaux temps réel). En effet, une modélisation explicite favorise la prise en compte des caractéristiques de ces plate-formes. Cela permet d’adapter les transformations aux besoins des utilisateurs, d’automatiser la conception d’applications exécutables, d’en maîtriser le comportement, d’en vérifier le fonctionnement, d’en faciliter et d’en optimiser le portage tout en conservant des transformations génériques.

Comme cas d'étude, l'équipe TRAME s'est intéressée à la génération de code pour un noyau temps réel donné et ce à partir d'une description d'architecture logicielle dans des langages de type ADL (Architecture Description Langage).

Nos contributions actuelles portent sur :

  • La proposition d'un métamodèle de plate-forme d’exécution. Cette proposition a été adaptée, à la fois dans le monde UML (Unified Modeling Language) et dans le monde des DSL (Domain Specific Language). Pour UML, en collaboration étroite avec l'équipe du CEA-LETI (thèse de Fréderic Thomas, co-encadrée avec François Terrier et Sébastien Gérard), un package (SRM : Software Ressource Model) a été intégrée dans la définition du profil UML MARTE (OMG, 2007), profil destiné à la modélisation de systèmes embarqués temps réel. Dans le monde des DSL, en collaboration avec l'équipe Systémes Temps Réel de l'IRCCyN, un métamodéle à éte proposé (partie du travail de thèse de Matthias Brun).

  • Un ensemble de transformations prenant en entrée différents ADL (CLARA, AADL, UML) et générant du code pour différents noyaux temps réel. Une partie de ces transformation ont été réalisés sous financement du projet TopCased. Ces transformations sont encore des prototypes.

Toutefois, la description de ces plate-formes porte essentiellement sur les aspects structurels, l'aspect comportemental n'est pas encore abordé. C'est l'objet de la thèse de Cécrick Lelionnais (menée en collaboration avec Olivier Roux de l'équipe Systémes Temps Réel de l'IRCCyN) que de travailler sur cet aspect.

Axe plates-formes matérielles

Dans le développement d'un système embarqué, il est fréquent qu'une connaissance des caractéristiques matérielles du calculateur soit nécessaire, que ce soit dans le but d'implanter une nouvelle application sur un calculateur existant, ou dans le but de sélectionner une architecture matérielle adaptée à une application.

En l'absence d'une réalisation concrète du calculateur, la vérification du respect des contraintes de temps, par exemple, nécessitera l'utilisation de modèles capables de produire des mesures de temps d'exécution fidèles à la réalité et ayant la précision souhaitée.

D'un point de vue scientifique, la création et l'exploitation de tels modèles s'inscrivent dans trois problématiques :

  • une réflexion sur les concepts attachés à la modélisation d'architectures matérielles, en fonction de l'activité de développement ciblée : le résultat de cette réflexion pourra consister en une formulation mathématique du problème, en structures de graphes, en métamodèles ;

  • la définition de langages de description fournissant un moyen de capturer ces concepts et de créer des modèles ;

  • la définition des traitements permettant d'interroger et de transformer ces modèles (extraction de métriques, génération automatique de code).

Depuis fin 2004, l'équipe TRAME et l'équipe Systèmes Temps Réel de l'IRCCyN collaborent sur le développement d'un langage de description d'architectures matérielles et d'un générateur automatique de simulateurs. Ce travail s'inscrit dans le cadre des thématiques « Langage de description d'architectures matérielles » et « Vérification de systèmes temps réel / Simulation fine » de l'équipe Systèmes Temps Réel de l'IRCCyN.

Dans un premier temps centré sur la modélisation des architectures de processeurs, ce travail consiste à définir un langage dédié (au sens des DSL, Domain-Specific language) nommé HARMLESS (Hardware Architecture Modeling Language for Embedded Software Simulation) et des outils répondant aux besoins suivants :

  • modéliser le jeu d'instructions d'un processeur (format binaire et syntaxe du langage d'assemblage) et générer automatiquement un désassembleur ;

  • modéliser l'exécution des instructions de manière comportementale, en faisant abstraction des unités fonctionnelles du processeur et de ses bus internes, et générer un simulateur de jeu d'instructions ;

  • modéliser la structure du pipeline et générer un simulateur exact au cycle d'horloge près.

Une réflexion commune sur la définition du langage HARMLESS a permis de réaliser deux prototypes de générateurs de simulateurs de jeux d'instructions : l'un, développé à l'ESEO, repose sur les principes de l'IDM (métamodélisation, transformation de modèles) et vise à illustrer l'intérêt de cette approche pour la modélisation de matériel et la génération automatique de code ; l'autre est développé à l'IRCCyN en utilisant l'outil GALGAS ; il vise à fournir aux utilisateurs un outil reposant sur des technologies matures et performantes.

Axe plates-formes IHM

Le patron Modèle-Vue-Contrôleur (MVC) est considéré comme le standard définissant la manière dont un système interactif doit être décomposé. Cependant, MVC ne définit pas la contenu des trois niveaux M, V et C, pas plus qu’il ne précise comment ces niveaux s’interconnectent.

Le travail principal de l’axe « Plates-formes IHM » consiste à proposer un modèle et un langage associé permettant de préciser le contenu des trois niveaux M, V et C ainsi que leur relation. Ce travail a pour objectif principal de réduire l’effort de développement de la partie Interface-Homme-Machine (IHM) des applications en se concentrant sur la spécification via des modèles plutôt que sur l’implémentation via des langages de programmation.

L’ensemble des travaux de l’axe est aujourd’hui concrétisé par le « Domain Specific Language » (DSL) nommé LOA (« Langage pour Opérations Actives »). Ce langage est indépendant de la plate-forme d’exécution finale du SI, ce qui est notamment rendu possible en utilisant l’approche « Ingénierie Dirigée par les Modèles » (IDM) et les outils s’y rapportant. La version « DSL interne » de ce langage a été consolidée suite à un projet financé par l’OSEO (MPIA 2011). Une version DSL externe est en cours de réalisation, avec une génération de code vers la plate-forme HTML5 + JavaScript du Web. L’outillage de LOA (éditeur de texte, compilation en JavaScript, intégration dans l’environnement Eclipse) est facilité par l’utilisation d’outils d’IDM.

Les perspectives à court et moyen terme des travaux de l’axe « Plates-formes IHM » tournent autour de l’application de l’approche sous-jacente à LOA à :

  • La génération de code pour les systèmes embarqués (applications mobiles dans un premier temps, puis systèmes embarqués spécifiques dans un second temps) – interne à l’équipe TRAME
  • La projection graphique d’un système de contraintes sur un domaine métier – Equipe MOA du laboratoire LERIA (Angers)
  • La prise en compte de la variabilité des plates-formes de développement d’IHM et d’exécution des IHM – Equipe Triskell de l’IRISA (INRIA Rennes)

A plus long terme, LOA pourrait être étendu afin de permettre la mise en œuvre de collecticiels (applications collaboratives) et le traitement d’information massive.

Cet axe est réalisé en collaboration avec équipe Triskell de l'IRISA / INIRA Rennes, .

Axe capteurs intelligents

A compléter