SAIA: Un style architectural pour assurer l'indépendance vis-à-vis d'entrées / sorties soumises à des contraintes temporelles. (SAIA: an architectural style to achieve temporal Input /Output independency)

Du fait de leur complexite croissante, le developpement des systemes embarques et temps reel necessitent conjointement l'application de principes de genie logiciel et l'application de techniques formelles. Le travail developpe pendant cette these propose une approche et des outils bases sur les modeles. Ces modeles, bases sur UML (Unified Modeling Language), permettent de definir un style architectural appele SAIA (Sensors Actuators Independent Architecture) dont l'objectif est le developpement et la mise au point de systemes temps reel en integrant l'evolution et la variabilite des plateformes. On entend ici par plateforme les services de communication entre le systeme et son environnement physique, c'est-a-dire des operations de lecture et d'ecriture via les capteurs et les actionneurs. Pour repondre a cet objectif, l'idee de SAIA est de separer clairement le modele de plateforme du modele de l'application. A cette fin, SAIA propose l'introduction d'une plateforme de communication abstraite avec le processus. Cette plateforme abstraite est composee d'entrees et de sorties utiles pour effectuer le controle, mais independantes d'une technologie de capteurs/actionneurs particuliere. L'application est developpee en se basant sur les services fournis par la plateforme abstraite. %Une application temps reel ne peut pas etre validee en ne considerant que ses aspects fonctionnels. La stabilite d'une application de controle et sa qualite de controle sont, entre autres, dependantes des caracteristiques temporelles de la plateforme abstraite. Cette derniere est donc composee d'un ensemble de services ainsi que d'une description de ses caracteristiques temporelles (notees QoS pour Quality of Service). La description de la QoS de la plateforme abstraite reflete le comportement temporel, sous forme de omega-expression reguliere de la plateforme abstraite pour laquelle l'application a le comportement souhaite. Ainsi, nous avons d'un cote un modele de la plateforme abstraite et de la QoS permettant la correction de l'application et de l'autre un modele de la plateforme reelle dont la QoS a ete analysee. Afin de connecter la plateforme abstraite a la plateforme reelle, SAIA s'appuie sur un connecteur complexe. Ce connecteur complexe est un assemblage de composants, decrit formellement par des automates temporises realisant des services de formatage, d'interpretation, de fusion de donnees et enfin d'adaptation de la QoS. Le connecteur complexe possede un comportement et modifie donc la QoS de la plateforme reelle. Afin d'evaluer l'impact du connecteur complexe sur la QoS de la plateforme reelle, une analyse formelle basee sur la simulation exhaustive du connecteur complexe est realisee. Il est alors necessaire de s'assurer que cette QoS nouvellement evaluee satisfait la QoS de la plateforme abstraite et permet ainsi la realisation d'un systeme correct. La verification de cette satisfaction est basee sur l'etablissement d'un contrat de QoS. Dans SAIA, l'etablissement d'un contrat de QoS est base sur une relation de satisfaction (equivalence de trace) entre systemes a transitions etiquetes. Enfin, SAIA a ete mis en oeuvre a plusieurs reprises dont, lors de deux concours d'implementation de robots d'exploration terrestre dans le cadre de workshop satellites de RTSS (Real Time System Symposium).