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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapitre VII – Vérification formelle de <strong>la</strong> structure <strong>des</strong> applications<br />

VII-4.1.2 Traduction <strong>des</strong> composants « actifs »<br />

Tous les composants autres que les données recueillent <strong>des</strong> données en entrée, les traitent<br />

et produisent <strong>des</strong> données en sortie. Les figures VII.2(b) et VII.2(c) illustrent les modélisations<br />

correspondant aux différents composants AADL considérés.<br />

Règle VII.5 (Traduction <strong>des</strong> types de composants)<br />

Les composants « actifs » de haut niveau (<strong>systèmes</strong>, processus, threads) d’une architecture<br />

sont traduits par une transition (représentant le composant lui-même) entourée de<br />

p<strong>la</strong>ces modélisant ses éléments d’interface.<br />

Cette approche assure <strong>la</strong> cohérence du formalisme vis-à-vis de <strong>la</strong> syntaxe AADL : en effet, les<br />

ports <strong>des</strong> composants – que nous modélisons en réseaux de Petri par <strong>des</strong> p<strong>la</strong>ces – sont typiquement<br />

associés à une déc<strong>la</strong>ration de composant de donnée. Un composant de donnée est donc toujours<br />

représenté par une p<strong>la</strong>ce, qu’il s’agisse d’une instance – c’est-à-dire un sous-composant – ou d’un<br />

élément d’interface.<br />

Notons que cette modélisation de haut niveau implique qu’un composant a besoin de recevoir<br />

<strong>des</strong> données sur tous ces ports <strong>pour</strong> s’exécuter. Pour les threads, cette hypothèse correspond aux<br />

spécifications que nous avons définies au chapitre IV ; ce n’est en revanche pas le cas <strong>pour</strong> les<br />

autres composants, tels que les <strong>systèmes</strong>. En l’absence d’information sur <strong>la</strong> structure interne du<br />

composant considéré, cette hypothèse, bien que forte, est cependant assez naturelle et permet une<br />

modélisation systématique.<br />

Afin de systématiser <strong>la</strong> traduction, nous créons une p<strong>la</strong>ce par élément d’interface. De cette<br />

façon, il est notamment possible d’appliquer éventuellement <strong>des</strong> traitement différents à chaque<br />

élément d’interface lors de <strong>la</strong> génération du réseau de Petri – par exemple <strong>des</strong> fusions de p<strong>la</strong>ces.<br />

Règle VII.6 (Traduction <strong>des</strong> éléments d’interface)<br />

Chaque élément d’interface est traduit par une p<strong>la</strong>ce reliée à <strong>la</strong> transition représentant le<br />

composant considéré.<br />

Un port d’entrée d’événement/donnée ou un accès à un sous-composant de donnée est<br />

traduit par une p<strong>la</strong>ce connectée à <strong>la</strong> transition du composant.<br />

Un port d’entrée de donnée est traduit par une p<strong>la</strong>ce dont le marquage initial est u. La<br />

transition du composant consomme le jeton de cette p<strong>la</strong>ce et le restitue. La transition du<br />

composant comporte une garde l’empêchant de se déclencher avec un jeton de couleur<br />

u.<br />

Tous les ports de sortie sont traduits par une p<strong>la</strong>ce de sortie reliée à <strong>la</strong> transition du<br />

composant.<br />

Les ports d’entrée/sortie sont assimilés à un couple de ports, l’un en entrée, l’autre en<br />

sortie.<br />

Toutes les p<strong>la</strong>ces représentant un port sont du domaine Comm.<br />

Les accès aux bus ou aux sous-programmes ne sont pas traduits.<br />

Un port de donnée ne comporte pas de file d’attente ; une donnée stockée dans un tel port n’est<br />

donc pas consommée : elle est seulement lue. Le marquage initial <strong>des</strong> p<strong>la</strong>ces correspondantes<br />

correspond à <strong>la</strong> valeur indéfinie u afin d’empêcher le composant de se déclencher avec ce qui<br />

correspond en fait à une absence de valeur.<br />

Nous ne traduisons pas les accès aux bus car ces composants ne sont pas pris en considération<br />

dans notre traduction. La prise en charge <strong>des</strong> accès à sous-programmes sera étudiée dans <strong>la</strong><br />

section VII-5.3.<br />

c○ 2007 Thomas Vergnaud 127

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

Saved successfully!

Ooh no, something went wrong!