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 ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Modélisation</strong> <strong>des</strong> <strong>systèmes</strong> <strong>temps</strong>-<strong>réel</strong> <strong>répartis</strong> <strong>embarqués</strong><br />
Dans <strong>la</strong> mesure où <strong>la</strong> signature du code de l’algorithme n’est pas censée dépendre <strong>des</strong> informations<br />
d’état du sous-programme AADL, ces informations doivent regroupées dans une structure<br />
de données propre au sous-programme AADL. À chaque sous-programme hybride est donc associé<br />
une structure de donnée permettant d’accéder à toutes les déc<strong>la</strong>rations issues de <strong>la</strong> <strong>des</strong>cription<br />
AADL. De cette façon, l’ajout de nouvelles déc<strong>la</strong>rations n’a pas d’influence sur l’algorithme ; de<br />
même le retrait de déc<strong>la</strong>rations qui ne sont pas manipulées par l’algorithme n’a aucun impact. Les<br />
procédures <strong>des</strong> séquences prennent également cette donnée en paramètre, afin de pouvoir mettre à<br />
jour les différentes variables intermédiaires correspondant aux connexions.<br />
Pour les sous-programmes hybri<strong>des</strong>, le traducteur AADL doit donc générer une structure de<br />
contrôle que l’imp<strong>la</strong>ntation comportementale peut manipuler. L’association du code source est<br />
spécifiée de <strong>la</strong> même façon que <strong>pour</strong> une imp<strong>la</strong>ntation opaque.<br />
V-2.3.6 Sous-programme fourni par un composant de donnée<br />
Un sous-programme fourni par un composant de donnée correspond à <strong>la</strong> modélisation d’un<br />
objet, bien qu’AADL ne possède pas <strong>la</strong> notion d’objet en tant que telle – l’extension de composant<br />
ne correspond pas exactement à <strong>la</strong> notion d’héritage, comme nous l’avons expliqué au chapitre III.<br />
La traduction de tels sous-programmes est effectuée en suivant les même mécanismes que ceux<br />
utilisés c<strong>la</strong>ssiquement dans <strong>la</strong> compi<strong>la</strong>tion <strong>des</strong> <strong>la</strong>ngages orientés objets tels que C++ ou Ada 95 : <strong>la</strong><br />
donnée fournissant le sous-programme est passées par référence en premier paramètre de <strong>la</strong> procédure<br />
correspondante. Elle est donc intégrée à <strong>la</strong> structure de donnée que nous avons décrite dans<br />
<strong>la</strong> section précédente. Elle peut donc être manipulée par l’éventuelle <strong>des</strong>cription comportementale<br />
fourni par l’utilisateur.<br />
Par convention, le champ correspondant au composant de donnée est appelé « data » ; ce nom<br />
est en effet un mot-clé d’AADL, et nous avons donc <strong>la</strong> garantie qu’il ne sera pas déjà employé<br />
<strong>pour</strong> un nom de connexion ou de séquence.<br />
V-2.3.7 Synthèse sur <strong>la</strong> traduction <strong>des</strong> sous-programmes<br />
Les trois premiers types de sous-programmes que nous avons étudiées sont en fait <strong>des</strong> cas particuliers<br />
de sous-programmes hybri<strong>des</strong>. Dans le cas général hybride, un sous-programme AADL<br />
contient <strong>des</strong> séquences d’appel et <strong>des</strong> sous-composants de données ; tous ces éléments sont coordonnés<br />
par le code source de <strong>la</strong> <strong>des</strong>cription comportementale associée au sous-programme.<br />
Les sous-programmes sans imp<strong>la</strong>ntation correspondent à une absence de séquences, de souscomposants<br />
de donnée et de code source associé ; les sous-programmes opaques correspondent<br />
à une absence de séquences et de sous-composants de donnée ; les séquences d’appel pures correspondent<br />
à une absence de code source associé et de sous-composant de donnée, avec <strong>pour</strong><br />
restriction <strong>la</strong> présence d’une unique séquence d’appel. Les sous-programmes sans imp<strong>la</strong>ntation<br />
correspondent à une absence de séquences, de composants de donnée et de code source associé ;<br />
les sous-programmes opaques correspondent à une absence de séquences et de sous-composants<br />
de donnée ; les séquences d’appel pures correspondent à une absence de code source associé et de<br />
sous-composant de donnée, avec <strong>pour</strong> restriction <strong>la</strong> présence d’une unique séquence d’appel.<br />
Lorsque les propriétés Source_Language, Source_Name et Source_Text sont renseignées, le<br />
code source issu de <strong>la</strong> <strong>des</strong>cription AADL doit appeler <strong>la</strong> <strong>des</strong>cription comportementale fournie par<br />
l’utilisateur. Le sous-programme AADL est alors opaque ou hybride. Nous définissons une règle<br />
systématique <strong>pour</strong> <strong>la</strong> signature de l’imp<strong>la</strong>ntation comportementale.<br />
84 c○ 2007 Thomas Vergnaud