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 ...
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 />
– flux ;<br />
– annexes (bibliothèques et sous-c<strong>la</strong>uses).<br />
La structure de l’arbre d’instance reprend <strong>la</strong> plupart <strong>des</strong> constructions de l’arbre de modèle,<br />
en y introduisant quelques modifications. L’une <strong>des</strong> différences fondamentales entre le modèle<br />
et l’instance est que cette dernière décrit une hiérarchie complète de composants alors que le<br />
modèle ne décrit en définitive qu’un arbre de profondeur 2 dont les feuilles sont les déc<strong>la</strong>rations<br />
de composants. Les entités présentes dans l’arbre d’instance sont plus restreintes :<br />
– espaces de nom (paquetages) ;<br />
– instances de composants ;<br />
– instances de sous-c<strong>la</strong>uses :<br />
– instances d’éléments d’interface,<br />
– instances de sous-composants,<br />
– instances de séquences d’appels et appels de sous-programmes,<br />
– instances de connexions,<br />
– instances de mo<strong>des</strong>,<br />
– instances de flux ;<br />
– associations de propriétés.<br />
Les définitions de propriétés n’apparaissent pas dans l’arbre d’instance : seul les associations<br />
sont représentées. Les types et imp<strong>la</strong>ntations de composants sont agrégés au niveau <strong>des</strong><br />
instances. Les sous-composants sont <strong>des</strong> simples liens entre les instances de composant et leurs<br />
sous-instances. Par convention, les instances de composants sont détachées de leur éventuel paquetage<br />
de déc<strong>la</strong>ration et sont insérés dans <strong>la</strong> hiérarchie ; l’espace de nom anonyme devient donc<br />
implicite.<br />
L’utilisation de deux représentations distinctes <strong>pour</strong> les déc<strong>la</strong>rations et les instances permet <strong>la</strong><br />
création de multiples instanciations d’architectures, correspondant à différents <strong>systèmes</strong>, au sein<br />
d’une même exécution d’Ocarina. Cette séparation permet également de préserver l’ensemble <strong>des</strong><br />
déc<strong>la</strong>rations, et ainsi d’effectuer <strong>des</strong> traitements séparés sur les déc<strong>la</strong>rations et les instances. Nous<br />
en illustrerons l’intérêt en section VIII-1.4.<br />
VIII-1.3 Organisation d’Ocarina<br />
Ocarina est constitué d’un cœur sur lequel sont branchés différents modules. Ces modules se<br />
comportent comme <strong>des</strong> applications faisant appel aux services et à l’API du cœur. Il en existe trois<br />
types, dont l’agencement est décrit sur <strong>la</strong> figure VIII.1 :<br />
– modules d’entrée/sortie ;<br />
– modules de transformation ;<br />
– générateurs.<br />
Les modules d’entrée/sortie permettent de parser <strong>des</strong> fichiers AADL ou d’afficher l’arbre du<br />
cœur selon une différentes syntaxes (textuelle, graphique, représentation XML. . .). Ocarina fournit<br />
actuellement un parseur/afficheur <strong>pour</strong> <strong>la</strong> syntaxe textuelle d’AADL ainsi qu’un module <strong>pour</strong> les<br />
fichiers de l’éditeur de diagramme Dia.<br />
Les modules de transformation peuvent permettre l’expansion de l’arbre du cœur <strong>pour</strong> mettre<br />
en p<strong>la</strong>ce <strong>des</strong> transformations d’architecture que nous avons décrites en section VI-3, page 107.<br />
Les générateurs permettent de produire différentes représentations – en l’occurrence du code<br />
source ou <strong>des</strong> réseaux de Petri – à partir de <strong>la</strong> représentation AADL. Nous avons développé un<br />
générateur appelé Gaia [Vergnaud et Zali<strong>la</strong>, 2006] qui prend en charge les différentes générations<br />
que nous avons décrites dans les chapitres V et VII, et un autre générateur appelé PN permettant<br />
152 c○ 2007 Thomas Vergnaud