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