Modélisation des systèmes temps-réel répartis embarqués pour la ...
Modélisation des systèmes temps-réel répartis embarqués pour la ...
Modélisation des systèmes temps-réel répartis embarqués pour la ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
CHAPITRE V<br />
Génération du code <strong>pour</strong> l’enveloppe applicative<br />
UNE MODÉLISATION en AADL permet de décrire les éléments architecturaux d’une application,<br />
éventuellement répartie. Dans ce chapitre nous étudions <strong>la</strong> démarche de transformation<br />
d’une <strong>des</strong>cription AADL en application répartie exécutable.<br />
Les problématiques que nous abordons ici sont l’interprétation <strong>des</strong> éléments AADL en terme<br />
de construction logicielle, ainsi que l’intégration de <strong>des</strong>criptions comportementales au sein de <strong>la</strong><br />
<strong>des</strong>cription. Nous avons montré en section IV-4.1.1 que nous adoptions une démarche de construction<br />
alternative par rapport à celle suggérée par le standard AADL actuel. Cette différence d’approche<br />
a une incidence sur <strong>la</strong> définition <strong>des</strong> règles de production de code source. Nous étudions<br />
les différents cas à considérer dans le cadre de <strong>la</strong> <strong>des</strong>cription <strong>des</strong> composants logiciels en AADL.<br />
V-1 Identification <strong>des</strong> éléments applicatifs d’AADL<br />
Dans le chapitre III, nous avons établi qu’AADL définit un certain nombre de composants<br />
<strong>pour</strong> formaliser <strong>la</strong> partie logiciel d’un système : il s’agit <strong>des</strong> sous-programmes, <strong>des</strong> fils d’exécution<br />
(threads) et <strong>des</strong> composants de donnée. À ces trois catégories de composants s’ajoutent les<br />
processus, qui représentent les exécutables en eux-mêmes.<br />
Les threads et les sous-programmes définissent les flux d’exécution et représentent donc <strong>des</strong><br />
instructions en code source ; les composants de données représentent les structures de données,<br />
c’est-à-dire les variables et les paramètres <strong>des</strong> procédures. Les processus définissent <strong>des</strong> espaces<br />
de mémoire dans lesquels les threads s’exécutent.<br />
Au chapitre IV, nous avons expliqué que les éléments d’une architecture AADL modélisaient<br />
<strong>la</strong> couche d’adaptation entre les composant de l’application et un intergiciel d’exécution. Cette<br />
couche d’adaptation est constituée de deux parties :<br />
– une enveloppe permettant de lier les composants applicatifs fournis par l’utilisateur à l’intergiciel<br />
;<br />
– une couche d’interface assurant <strong>la</strong> coordination entre l’enveloppe et l’intergiciel lui-même.<br />
Dans ce chapitre, nous nous focalisons sur <strong>la</strong> génération de l’enveloppe à partir de <strong>la</strong> <strong>des</strong>cription<br />
AADL. Cette enveloppe correspond aux composants purement applicatifs de <strong>la</strong> modélisation,<br />
c’est-à-dire les sous-programmes et les composants de donnée.<br />
Nous nous intéressons à <strong>la</strong> traduction <strong>des</strong> éléments applicatifs – les sous-programmes et les<br />
composants de donnée – en <strong>la</strong>ngage de programmation, comme illustré sur <strong>la</strong> figure V.1. Les<br />
éléments architecturaux doivent être retranscrits en appliquant <strong>des</strong> règles de correspondance entre<br />
AADL et le <strong>la</strong>ngage cible. Cette partie de <strong>la</strong> génération dépend donc uniquement du <strong>la</strong>ngage<br />
de programmation à utiliser. Étant donné qu’elle ne dépend pas de l’imp<strong>la</strong>ntation de l’exécutif,<br />
c○ 2007 Thomas Vergnaud 71