Design and Implementation of Component Based Systems. Towards a Unification of the Software Engineering and the System Paradigms.
Conception et Implantation de Système Fondé sur les Composants. Vers une Unification des Paradigmes Génie Logiciel et Système.
Abstract
This PhD thesis was co-supervised by the MAPS/AMS laboratory of France Telecom R&D (now MAPS/SHINE) and the VERIMAG laboratory. Software development for embedded systems has many challenges. In this thesis, we address those related to the interactions between the three following phases of the software development process: the design phase (developers build a model of a system based on its specifications, using a design language i.e. a programming language), the implementation phase (the model previously built is compiled into an executable of the system which is then deployed on the target platforms) and the validation phase (a set of techniques are used to verify that the system implementation is correct with respect to the specifications). To achieve this goal, we study the design language characteristics and compilation techniques. In our approach, they allow the creation of both an implementation of the system and a model for this implementation. Provided that this model faithfully corresponds to the implementation, the analysis of the model can validate the implemented system. We propose a process for building a language based on predefined software components for which the dynamic behavior is supposed to be given. We illustrate this process with a prototype language, called Buzz, inspired by the actors programming model. Buzz uses Think components enriched with their operational behavioral model in the form of BIP components. We developed a compiler for Buzz by extending the current Think compiler (Nuptse). It generates both an architecture of Think components for the implementation and a BIP model for the analysis. We evaluate Buzz through two experiments. The first experiment details the end-to-end software development for an academical example on which we show the soundness of our technical choices. In particular, Think provides implementation support (compilation, optimization, deployment) and BIP allows us to verify the system's dynamic properties. The second experiment focuses on porting to Buzz an application conventionally developed for a sensor network radio protocol. This experiment underlines the efficiency of our proposal both in terms of programming language (the result is more structured and simpler than the original code) and in terms of compilation tools and verifications.
Cette thèse a été co-encadrée par le laboratoire MAPS/AMS de France Telecom R&D (aujourd'hui MAPS/SHINE) et le laboratoire VERIMAG. 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 (les développeurs construisent à partir de spécifications un modèle du système exprimé dans un langage de conception i.e. de programmation), d'implantation (le modèle précédent est compilé en un exécutable du système qui est finalement déployé sur les plateformes réelles) et de validation (un ensemble de techniques sont mises en \oe uvre pour vérifier que le système implanté est correct vis-à-vis des spécifications). Pour cela nous nous intéressons aux caractéristiques du langage de conception et aux techniques de compilation de ce langage. Celles-ci permettent d'obtenir dans notre approche à la fois l'implantation du système et un modèle du système implanté. 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 logiciels prédéfinis dont le comportement dynamique est supposé connu. Nous illustrons cette démarche par la réalisation d'un prototype complet d'un langage appelé Buzz, inspiré des modèles de programmation à acteurs dans lequel les composants logiciels utilisés sont des composants Think accompagnés de leur modèle comportemental opérationnel constitué d'un composant BIP. Le compilateur associé à Buzz que nous avons développé à partir du compilateur Think existant (Nuptse) génère simultanément une architecture à composants Think pour l'implantation et un modèle à composants BIP à des fins d'analyse. Nous évaluons Buzz à travers deux expériences. La première présente le développement de bout en bout d'un logiciel pour un exemple académique sur lequel nous démontrons la pertinence des choix techniques. Think nous permet un support d'implantation complet (compilation, optimisation, déploiement) et BIP rend possible la vérification d'un ensemble de propriétés dynamiques du système. La deuxième expérience consiste à porter une application réelle de protocole radio utilisée dans des réseaux de capteurs et développée de manière classique, vers Buzz. Cette expérience démontre l'effectivité de notre proposition tant en termes de langage de programmation (l'expressivité de Buzz structure et simplifie le code original) qu'en termes d'outils de compilation et de vérification.
Fichier principal
these-poulhies.pdf (6.59 Mo)
Télécharger le fichier
these-poulhies-pres.pdf (7.64 Mo)
Télécharger le fichier
Format | Other |
---|