Faire levier sur les architectures logicielles pour guider et verifier le developpement dapplications SCC

Reading time: 5 minute
...

📝 Original Info

  • Title: Faire levier sur les architectures logicielles pour guider et verifier le developpement dapplications SCC
  • ArXiv ID: 1106.4200
  • Date: 2011-06-22
  • Authors: Damien Cassou (INRIA Bordeaux - Sud-Ouest, LaBRI), Charles Consel (INRIA Bordeaux - Sud-Ouest, ENSEIRB), Emilie Balland (INRIA Bordeaux - Sud-Ouest), Julia Lawall (DIKU)

📝 Abstract

A software architecture describes the structure of a computing system by specifying software components and their interactions. Mapping a software architecture to an implementation is a well known challenge. A key element of this mapping is the architecture's description of the data and control-flow interactions between components. The characterization of these interactions can be rather abstract or very concrete, providing more or less implementation guidance, programming support, and static verification. In this paper, we explore one point in the design space between abstract and concrete component interaction specifications. We introduce a notion of interaction contract that expresses allowed interactions between components, describing both data and control-flow constraints. This declaration is part of the architecture description, allows generation of extensive programming support, and enables various verifications. We instantiate our approach in an architecture description language for Sense/Compute/Control applications, and describe associated compilation and verification strategies.

💡 Deep Analysis

📄 Full Content

arXiv:1106.4200v1 [cs.PL] 21 Jun 2011 Faire levier sur les architectures logicielles pour guider et vérifier le développement d’applications SCC⋆ Damien Cassou1, Emilie Balland2, Charles Consel2, and Julia Lawall3 1 Software Architecture Group, Hasso-Plattner-Institut, Potsdam, Germany, 2 INRIA/University of Bordeaux, France, 3 DIKU, University of Copenhagen, Denmark Résumé Une architecture logicielle décrit la structure d’un système informatique en spé- cifiant ses composants et leurs interactions. Projeter une architecture logicielle sur une im- plémentation est une tâche reconnue difficile. Un élément crucial de cette projection est la description architecturale des interactions entre les composants. La caractérisation de ces interactions peut être plutôt abstraite ou très concrète, fournissant plus ou moins de support de programmation et de possibilités de vérifications statiques. Nous explorons un point dans l’espace de conception entre les spécifications abstraites et concrètes des interactions de composants. Nous introduisons la notion de contrat d’inter- actions qui exprime les interactions autorisées. Cette déclaration architecturale permet la génération de support de programmation qui assure la conformité entre l’architecture et l’implémentation, et favorise diverses vérifications. Nous instancions notre approche sur un langage de description d’architectures pour les applications Sense/Compute/Control et dé- crivons les stratégies de compilation et de vérification associées. 1 Introduction Une application Sense/Compute/Control (SCC) est une application qui interagit avec un en- vironnement extérieur. Ces applications se retrouvent dans des domaines comme la domotique, la robotique et l’informatique autonome. Développer une application SCC est complexe car l’implé- mentation doit prendre en compte l’interaction avec l’environnement. De plus, la correction est essentielle puisque un changement dans l’environnement peut avoir des conséquences irréversibles. Une application SCC peut être définie suivant un style architectural comprenant quatre types d’éléments organisés en couches : (1) les sources, en bas, obtiennent les informations de l’environ- nement ; (2) les opérateurs de contexte traitent ces informations ; (3) les opérateurs de contrôle utilisent ces informations raffinées pour contrôler (4) les actions, en haut, qui impactent finale- ment l’environnement. Projeter une architecture logicielle ayant un tel niveau d’abstraction vers une implémentation et maintenir cette projection sont des tâches reconnues difficiles. Dans cet exposé nous proposons une approche pour lier architecture et implémentation qui vise les applications SCC. Cette approche introduit la notion de contrat d’interactions permettant à un architecte de déclarer quelles sont les interactions qu’un élément de l’architecture a le droit de réaliser (Section 2). Cette notion de contrat d’interactions est dédiée au style architectural SCC dans le sens où un contrat d’interactions ne peut, syntaxiquement, décrire que les interac- tions autorisées par le style. Les contrats d’interactions sont utilisés pour générer un support de programmation qui va guider le travail d’implémentation par les développeurs tout en maintenant la conformité avec l’architecture (Section 3). L’architecte peut aussi utiliser les contraintes expri- mées par les contrats d’interactions pour vérifier un ensemble de propriétés allant au delà de la conformité (Section 4). 2 Contrats d’interactions Le but d’un contrat d’interactions est de décrire les interactions autorisées d’un opérateur au sein d’une application SCC. Ce contrat d’interactions est un triplet constitué des informations sui- ⋆. Ces deux pages résument l’article “Leveraging Software Architectures to Guide and Verify the Deve- lopment of Sense/Compute/Control Applications” publié à ICSE ’11 vantes : la condition d’activation permet d’indiquer quelles sont les interactions capables d’activer l’opérateur ; les données requises permettent d’indiquer les interactions supplémentaires autorisées pour chaque condition d’activation ; les actions à entreprendre permettent d’indiquer la réponse appropriée à chaque activation (émission d’une information pour un opérateur de contexte ou commande d’une action pour un opérateur de contrôle). En résumé, les contrats d’interactions guident le travail de l’architecte en lui proposant un cadre de spécification dédié au style SCC. 3 Support de programmation Nous avons intégré les contrats d’interactions dans DiaSpec, un langage de description d’ar- chitectures dédié aux applications SCC. À partir d’une architecture en DiaSpec, un générateur de code produit un framework de programmation Java dédié. Ce framework de programmation généré contient une classe abstraite pour chaque élément de l’architecture. Cette classe abstraite générée contient des méthodes pour faciliter l’implémentation des éléments ainsi que des décla- rations de méthodes abstraites permettant d’implémenter la logi

Reference

This content is AI-processed based on open access ArXiv data.

Start searching

Enter keywords to search articles

↑↓
ESC
⌘K Shortcut