Publication trimestrielle du Laboratoire
d'analyse et d'architecture des systèmes du CNRS
L’adaptation en opération des logiciels peut être due à de nombreuses raisons liées à l’environnement du système, à l’évolution des logiciels au travers de versions successives, à des actions de reconfiguration du système global, à la consommation des ressources, mais aussi à l’occurrence de fautes, voire à de nouveaux types de fautes observés en opération.
Cette tendance est très actuelle dans le monde du génie logiciel pour les systèmes d’information en général et concernera dans un futur proche les systèmes critiques. C’est cette problématique qui a fait l’objet du projet ASAP (AsseSsment-based AdaPtable Software Architecture for Dependability) dont l’objectif était de montrer que les nouvelles techniques de développement logiciel à base de composants ainsi que les approches réflexives de la conception des systèmes permettaient d’aborder le problème de l’adaptation en opération des mécanismes de tolérance aux fautes. Ces approches permettent de structurer le logiciel en composant indépendants dont on peut observer la structure interne ainsi que manipuler les liaisons inter composants. L’adaptation en opération demande aussi une modélisation comportementale plus fine (par exemple, à base de Réseaux de Petri) pour déterminer les états adaptables permettant la substitution d’un composant par un autre en opération. Ces états ont été déterminés de façon précise pour garantir des propriétés de sécurité et de vivacité lors de l’adaptation du logiciel de tolérance aux fautes.
Les expérimentations réalisées ont montré l’intérêt et la faisabilité de l’adaptation en opération grâce aux nouvelles technologies de développement logiciel mentionnées précédemment. Le coeur de ces travaux est consigné dans une thèse de doctorat soutenue le 27 Janvier 2009 au LAAS. Ces travaux ont ouvert la voie à des études plus approfondies portant sur l’évolution en opération de mécanismes de tolérance aux fautes par une approche proactive, mais aussi sur la vérification par test des logiciels produits selon ces techniques émergentes de génie logiciel.