04.07.2013 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!