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 V – Génération du code <strong>pour</strong> l’enveloppe applicative<br />

9 sequences.seq1 (Status);<br />

10 else<br />

11 sequences.seq2 (Status);<br />

12<br />

13 sequences.seq3 (Status);<br />

14 }<br />

15<br />

16 public static void spB (Partition.spB_parameters param) {<br />

17 entier s = new entier();<br />

18 entier e = param.read_e ();<br />

19 s.val = e.val + 1;<br />

20 param.write_s (s);<br />

21 }<br />

22<br />

23 public static Partition.spD_out spD (Partition.spD_parameters<br />

param) {<br />

24 entier s = new entier();<br />

25 entier e = param.read_e ();<br />

26 s.val = e.val * 6;<br />

27 param.write_s (s);<br />

28 }<br />

29 }<br />

V-5 Conclusion<br />

Listing V.29 – Code Java imp<strong>la</strong>ntant l’algorithme<br />

Nous avons défini un processus de traduction <strong>des</strong> constructions AADL purement applicatives<br />

– les données et les sous-programmes – en <strong>la</strong>ngage de programmation. Notre approche se base<br />

sur une séparation nette <strong>des</strong> constructions architecturales et du code <strong>des</strong> algorithmes : les types<br />

de données et les appels de sous-programmes sont définis par <strong>la</strong> <strong>des</strong>cription AADL, tandis que le<br />

comportement <strong>des</strong> composants AADL est fournie par l’utilisateur sous forme de code source.<br />

L’imp<strong>la</strong>ntation en code source <strong>des</strong> composants doit correspondre à <strong>la</strong> signature décrite en<br />

AADL. De <strong>la</strong> même façon que <strong>pour</strong> IDL, nous avons défini <strong>des</strong> règles de traduction vers différents<br />

<strong>la</strong>ngages de programmation. Les constructions AADL peuvent être traduites dans une grande<br />

diversité de <strong>la</strong>ngages, aussi bien purement procéduraux (C) qu’orientés objet (Java). Nous avons<br />

particulièrement étudié Ada, utilisé <strong>pour</strong> les <strong>systèmes</strong> <strong>embarqués</strong> <strong>temps</strong>-<strong>réel</strong> ; <strong>la</strong> richesse de sa<br />

syntaxe permet de retranscrire facilement les <strong>des</strong>criptions AADL. À l’inverse, Java est à l’origine<br />

conçu <strong>pour</strong> les <strong>systèmes</strong> d’information ; il n’offre pas toutes les constructions syntaxiques d’Ada,<br />

ce qui rend <strong>la</strong> traduction un peu plus complexe.<br />

Dans tous les cas, les règles de traductions permettent une intégration re<strong>la</strong>tivement simple <strong>des</strong><br />

<strong>des</strong>criptions comportementales. L’utilisation d’AADL <strong>pour</strong> construire une application constitue<br />

donc une solution viable.<br />

Nous exploitons <strong>la</strong> <strong>des</strong>cription <strong>pour</strong> construire l’assemb<strong>la</strong>ge et <strong>la</strong> coordination <strong>des</strong> différents<br />

sous-programmes. Nous nous démarquons du standard AADL au niveau de <strong>la</strong> sémantique associées<br />

aux séquences d’appel : nous nous autorisons en effet à décrire plusieurs séquences au sein<br />

d’un sous-programme. Ces différentes séquences correspondent aux différentes phases d’exécution<br />

possible du sous-programme.<br />

Nous définissons <strong>des</strong> règles de traduction <strong>pour</strong> permettre <strong>la</strong> manipu<strong>la</strong>tion <strong>des</strong> séquences par les<br />

c○ 2007 Thomas Vergnaud 97

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

Saved successfully!

Ooh no, something went wrong!