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.

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

Cette situation se traduit par <strong>la</strong> possibilité d’avoir plusieurs jetons dans une p<strong>la</strong>ce appartenant<br />

à une séquence d’appel. Nous devons donc nous assurer que cette situation n’apparaît jamais<br />

(formule VII.6).<br />

∀p ∈ Entrees, AF(card(p) < 2) (VII.6)<br />

Avec Entrees l’ensemble <strong>des</strong> p<strong>la</strong>ces d’entrée de chaque sous-programme de l’architecture.<br />

Il est important de noter que les formule VII.5 et VII.6 ne peuvent pas être rassemblées en<br />

une seule formule. En effet, <strong>la</strong> formule VII.6 concerne tous les sous-programmes de l’architecture<br />

tandis que <strong>la</strong> formule VII.5 ne porte que sur les sous-programmes <strong>des</strong> séquences bloquées. Il est<br />

parfaitement acceptable qu’une entrée de sous-programme ne reçoive jamais de jeton si celui-ci<br />

appartient à une séquence qui n’est jamais exécutée.<br />

VII-8 Conclusion<br />

La vérification a priori est une phase importante de <strong>la</strong> conception <strong>des</strong> <strong>systèmes</strong> <strong>embarqués</strong><br />

<strong>temps</strong>-<strong>réel</strong> : elle permet de s’assurer d’un certain nombre de caractéristiques de l’architecture<br />

considérée avant sa construction effective. Pour ce<strong>la</strong>, il est nécessaire de pouvoir extraire une<br />

<strong>des</strong>cription formelle de l’architecture.<br />

Dans ce chapitre nous avons montré qu’il était possible d’établir une re<strong>la</strong>tion entre une <strong>des</strong>cription<br />

AADL et un formalisme de vérification. Nous avons choisi les réseaux de Petri <strong>pour</strong> illustrer<br />

notre propos car ils permettent une modélisation comportementale <strong>des</strong> <strong>systèmes</strong>.<br />

Nous avons établi <strong>des</strong> règles de traduction depuis les constructions AADL vers les réseaux de<br />

Petri. Cette traduction prend essentiellement en compte les éléments logiciels de <strong>la</strong> modélisation<br />

en AADL, et se fonde uniquement sur les spécifications d’exécutif que nous avons énoncées au<br />

chapitre IV ; ces hypothèses sont par ailleurs utilisées <strong>pour</strong> <strong>la</strong> génération de l’exécutif AADL (cf.<br />

chapitres V et VI). Nous avons notamment développé les mêmes concepts quant à l’intégration<br />

de <strong>des</strong>criptions comportementales dans les composants AADL. Il est donc possible d’établir une<br />

équivalence sémantique entre le réseau de Petri extrait d’une <strong>des</strong>cription AADL et le code source<br />

généré à partir de celle-ci.<br />

L’analyse du réseau de Petri permet d’évaluer <strong>la</strong> cohérence <strong>des</strong> flux d’exécution. Pour ce<strong>la</strong>,<br />

nous avons défini un certain nombre de formules et de propriétés structurelles correspondant à <strong>des</strong><br />

propriétés qui doivent être systématiquement vérifiées, telles que l’absence de blocage dans les<br />

threads. Des vérifications plus spécifiques, dépendant par exemple <strong>des</strong> imp<strong>la</strong>ntations comportementales<br />

<strong>des</strong> composants peuvent également être effectuées par l’utilisateur. En faisant abstraction<br />

<strong>des</strong> considérations temporelles de <strong>la</strong> <strong>des</strong>cription AADL, nous avons pu établir <strong>la</strong> vérification<br />

d’un certain nombre de propriétés inhérentes à <strong>la</strong> construction de l’architecture ; les vérifications<br />

que nous avons présentées dans ce chapitre permettent donc une vérification de <strong>la</strong> cohérence du<br />

système.<br />

La modélisation en réseaux de Petri permet ainsi de détecter une mauvaise construction de<br />

l’architecture avant même de produire le système exécutable correspondant. Cette modélisation<br />

doit naturellement être couplée à d’autres métho<strong>des</strong> d’analyse, telles que <strong>la</strong> simu<strong>la</strong>tion de l’ordonnancement<br />

<strong>des</strong> threads, <strong>la</strong> vérification de <strong>la</strong> taille de l’application en mémoire, de <strong>la</strong> consommation<br />

électrique, etc. Nous avons présenté ici un aspect de vérification particulier, qui est directement lié<br />

aux communications dans le système modélisé. L’utilisation d’AADL permet de centraliser toutes<br />

les informations nécessaires à l’application <strong>des</strong> différentes phases d’analyse et de génération nécessaires,<br />

ce qui permet d’avoir une représentation unique de l’architecture.<br />

c○ 2007 Thomas Vergnaud 147

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

Saved successfully!

Ooh no, something went wrong!