Projet ANR-08-SEGI-0015 – RT-SIMEX : REtro-ingénerie de Traces d'analyse de SIMulation et d'EXécution de systèmes temps-réel
Programme : Systèmes Embarqués et Grandes Infrastructures (ARPEGE) 2008
Année de financement : 2008
Coordinateur du projet : Etienne JULIOT (OBEO)
Partenaires : PME; Commissariat à l'énergie atomique et aux énergies alternatives; Inria Centre Paris - Rocquencourt; TPE; Entreprise autre que TPE ou PME; Université de Bretagne Occidentale
Montant : 996105.0 euros
Durée : 36 mois
Résumé : Ce projet s’inscrit dans l’ambition générale d’amélioration des méthodes et outils de conception de logiciels embarqués. Il a pour objet le développement de techniques permettant de relier entre elles différentes prédictions et observations du comportement temps-réel de logiciels.    Ces techniques seront mises en oeuvre dans des outils d'aide à la mise au point, optimisation et rétro ingénierie.    Les comportements attendus sont définis formellement au niveau d’un modèle de conception. Nous utiliserons le profil UML/MARTE, et plus particulièrement les mécanismes d’annotation, et le modèle de temps.    Les observations du logiciel sont matérialisées notamment par des « traces d’exécution », qui constituent des données brutes qu’il s’agit de traiter, analyser, corréler, et présenter à l’utilisateur sous une forme pertinente et conviviale, à des fins de vérification, validation, et localisation de défauts.    En cours de conception du logiciel, le recours à des techniques de simulation facilite l’observation, dans la mesure où les ressources informatiques sont moins contraintes que dans l’environnement d’exécution nominal. Il faut néanmoins disposer de techniques de simulation efficaces , le projet s’appuiera sur les meilleures technologies disponibles.    En phase d’intégration, le logiciel, « enfoui », est par construction plus difficile à observer. Il faut disposer de mécanismes peu intrusifs. Plusieurs environnements d’exécution seront mis en &oelig,uvre dans les cas de test : Java temps-réel, processeur généraliste sous Linux temps-réel, micro-contrôleur.     L’interprétation des données (précises mais bas niveau) fournies par les outils d’observation d’utilisation courante repose, surtout quand il s’agit de localiser des défauts, sur un contexte intégrant une connaissance de l’implémentation du logiciel et des mécanismes d’exécution sous-jacents. Par exemple, dans une séquence d’événements observés, les liens de « causalité » sont définis par la combinaison de la structure du logiciel (séquence d’exécution dans un processus par exemple) et le système d’exploitation (préemption).    L’approche proposée consiste à formaliser la connaissance de la structure du logiciel (idéalement, issue d’une démarche de conception basée sur des modèles, éventuellement reconstituée par analyse statique du code), et à l’exploiter pour pouvoir fournir à l’utilisateur des informations de haut niveau pertinentes pour sa tâche de vérification, validation ou recherche de défauts.    Une présentation adaptée des informations issues de ces traitements est un aspect essentiel pour la mise en &oelig,uvre industrielle des résultats. On s’appuiera notamment sur les représentations graphiques des modèles de conception, pour y ajouter, sous forme d’annotations ou d’animations, les informations pertinentes.    Au delà de l’exploitation des résultats du projet sous forme d’outils pour l’aide à la localisation des défauts en conception et intégration, les techniques d’analyse et de synthèse d’information développées pourraient également être exploitées, à l’exécution, pour la surveillance de bon fonctionnement de fonctions logicielles (applications de type « Flight Warning System » dans l’avionique).