Faire levier sur les architectures logicielles pour guider et vérifier le développement d'applications SCC
Résumé
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.
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 implé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'interactions 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.
Origine | Fichiers produits par l'(les) auteur(s) |
---|