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.

<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

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

Saved successfully!

Ooh no, something went wrong!