Thèse soutenue

Conception et implantation de système fondé sur les composants. Vers une unification des paradigmes génie logiciel et système

FR  |  
EN
Auteur / Autrice : Marc Poulhiès
Direction : Joseph Sifakis
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance en 2010
Etablissement(s) : Grenoble
Ecole(s) doctorale(s) : École doctorale Mathématiques, sciences et technologies de l'information, informatique (Grenoble ; 1995-....)

Mots clés

FR

Résumé

FR  |  
EN

Le développement de logiciels pour les systèmes embarqués présente de nombreux défis. Cette thèse s'intéresse à ceux posés par les interactions entre les trois phases de conception, d'implantation et de validation. Nous nous intéressons aux caractéristiques du langage de conception et aux techniques de compilation qui permettent d'obtenir dans notre approche l'implantation et un modèle du système. L'analyse de ce modèle permet la validation de l'implantation, ce qui suppose que ce modèle représente fidèlement le système implanté. Nous proposons la construction d'un langage de conception basé sur l'utilisation de composants dont le comportement dynamique est supposé connu. Nous illustrons cette démarche avec un prototype complet appelé Buzz, dans lequel les composants sont des composants Think accompagnés de leur modèle comportemental en BIP. Le compilateur associé à Buzz génère une architecture à composants Think pour l'implantation et un modèle à composants BIP pour les analyses. Nous évaluons Buzz à travers deux expériences. La première présente le développement d'un logiciel pour un exemple simple sur lequel nous démontrons la pertinence des choix techniques. Think nous permet un support d'implantation complet et BIP rend possible la vérification d'un ensemble de propriétés dynamiques. La deuxième expérience est un portage de l'implantation d'un protocole radio utilisé dans des réseaux de capteurs et développée de manière classique, vers Buzz. Elle démontre l'effectivité de notre proposition en termes de langage (Buzz structure et simplifie le code original) ainsi qu'en termes d'outils (compilation et vérification).