150 likes | 239 Views
Extension d'xADL2.0 à l'expression du comportement. Christophe Mareschal mareschal@cert.fr. C.Mareschal Jounées FAC 2004. ENSAE 10 Avenue Edouard Belin , BP 4032 31055 Toulouse cedex 4. Objectif. Objectif : Assister les tâches de réalisation de systèmes complexes
E N D
Extension d'xADL2.0 à l'expression du comportement Christophe Mareschal mareschal@cert.fr C.Mareschal Jounées FAC 2004 ENSAE 10 Avenue Edouard Belin , BP 4032 31055 Toulouse cedex 4
Objectif • Objectif : Assister les tâches de réalisation de systèmes complexes • permettre une modélisation de niveau architectural • coordonner des points de vues différents • relier les outils support de production et de validation • Problème : • Multiplicité des outils et des langages qui entourent le développement des systèmes • Séparation des outils de validation et de conception • Rigidité des couples formalisme/outils support • Difficulté à évoluer (dépendances) • Difficulté à coopérer (incompatibilité)
Les langages • "ADL" : Les langages de description d'achitecture • "XML" : La gestion des langages et la manipulation des descriptions • "xADL2.0" : Un ADL extensible • "AltaRica" : L'expression du comportement, l'analyse de la SdF • "xAltarica" : Le codage d'AltaRica en XML • "xADL2.0*" : Extension d'xADL2.0 à l'expression du comportement
ADL • Composant • Interface du composant • Connecteur • Configuration Généralités • ADL • Point de vue "architectural" fondé sur 4 éléments de modélisation de base • Eléments additionnels pour les autres points de vues • Conception, analyse, conversion, assemblage, génération de code, déploiement, contrôle et gestion de configuration ... • XML • Méta description (spécification des langages) • Description hiérarchique (structure arborescente) • Description hypertexte (liens) • Analyse syntaxique (lecture, écriture, validation syntaxique) • Transformation syntaxique • Interrogation (requête) • Implémentation orientée objet du langage (XML Data binding)
xArch Instance xADL2.0 Structure & Types Options Variants Versions Implementation • Modélisation • ADL : Composant, connecteur, interface, configuration, typage et composition • XML : Collection de schémas XML • Structure Statique : xArch Instance, Structure & Types • Variabilité architecturale : Options, Variantes, Versions • Implémentation : Abstact Implementation,Java Implementation • Outils • Spécification des schémas : XML Spy, ou autre • Génération de classes et d'interfaces java directement dérivées des schémas : Apigen • Environnement d'édition de description et d'instanciation : Archstudio 3 • Gestion de configuration, architecture de famille de produits : Menage
AltaRica • node switch • state on : bool ; • flow in, out : bool ; • event pusch ; • trans true |- pusch -> on := not on ; • assert on => (out = in) ; • out => on ; • init on := false; • edon switch in outr pusch on • Modélisation : Comportement • Automates à contraintes : • flows, states, events, transition, assert • Description hiérarchique : • node, sub, synchronisation, assert • Outils : Analyse de sureté de fonctionnement • Génération d'arbre de défaillance • Génération de séquences • Model-checking • Simulation • Génération de modèle "bas niveau" : Chaine de Markov, Réseau de Pétri • Analyse temps réel (version Timed Altarica)
xAltarica xArch Instance utils altarica • Favoriser la comparaison avec xADL • Accéder aux outils XML • Trois schémas • utils : expressions mathématiques • altarica: méta-modèle AltaRica (automates et composition) • timedAltarica : extension temporisée • + utilisation d'xArch ( XMLLink , identifier, description, direction ) • Modifications par rapport à AltaRica légères, uniquement syntaxiques • Distinction comportement / composition hiérarchique • Node devient Component timedAltarica
xADL2.0* xArch Instance Structure + Types Option Variant Version Implementation • Le schéma behavior.xsd utils • ComponentTypeBeh extends type : Componentype • type : Signature • SubArchitectureBeh extends type:Subarchitecture • instance : # ArchStructure • type : SignatureInterfaceMapping • altarica : Sync • Behavior • altarica : States • altarica : Events • altarica : Trans • altarica : Assert altarica behavior
L'outillage • Adaptation des outils • Coordination des outils
Adaptation des outils environnement XML DB_Compilateur Shémas DataBinding_Lib • Schémas : extension • DataBinding library : recompilation • Processeurs XML : pas d'adaptation à faire • API's "syntax directed" : peuvent s'adapter automatiquement en fonction de la syntaxe • Autres API's : à adapter XML Parser DB_RunTime Description XML DOM ADT IHM IHM Traitements Traitements
Adaptation d'ArchStudio 3 xmlSpy Apigen xADL2.0* • Les nouvelles extensions ont été compilées avec Apigen pour mettre à jour xarchlibs • Le composant ArchEdit s'est automatiquement adapté : • menus contextuels avec les nouveau items • champs de saisies correspondants • L'ajout de nouveaux composants est facilité • par l'implémentation xarchlibs • par l'architecture d'archstudio 3 prévue pour accueillir facilement des nouveau composants xarchlibs* xArchADT ADT* ? ArchEdit* Archstudio 3
AB Coordination des outils Outils A Outils B Description AB • Partager le même "super format" • Produire en sortie plusieurs formats ou accepter en entrée plusieurs formats • Transformer les descriptions avec XSLT A B Outils A Outils B Description A Description B Outils A A B Outils B A to B Description A Description B Processeur XSLT
Coordination des outils ADL2.0* et AltaRica • Feuille de styles • xADL2.0 to xAltarica (XML to XML) • xAltarica to Altarica (XML to TEXT) • Tranformation XSLT Outils AltaRica: ocas, altaTools, ToolBox,…. Archstudio 3 xADL2.0* xAltarica xADL2.0* to xAltarica xAltarica to AltaRica Description xADL2.0* Description xAltarica Description Altarica Processeur XSLT
Conclusion • Superlangage • Extensible : adjonction de point de vues. • Modulaire : encapsulation des sous langages, utilisation sélective. • Hiérarchisé : du générique au spécifique • Adaptation des outils • API génériques : parsers, compilateurs • Data Binding Library : recompilation • API "syntax directed": adaptation automatique • Autres API : manipulation de la représentation en mémoire "DOM" ou "ADT" • Coordination des outils • Description unique, multiples utilisations • Descriptions multiples + traductions, multiples utilisations • Perspectives • Intégrer d'autres vues à xADL2.0 • Développer une infrastructure de coordination • Développer un environnement qui intègre conception et analyse
xADL2.0 :http://www.isr.uci.edu/projects/xarchuci/index.html • Archstudio 3 :http://www.isr.uci.edu/projects/archstudio/index.html • AltaRica :http://altarica.labri.fr/ • xAltarica :http://www.cert.fr/francais/deri/mareschal/altarica/xaltarica.html • Merci ...