Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

Adaptation d'exécution de modèles : vers des iDSML adaptables

Ad

Olivier Le Goaër
olivier.legoaer@univ-pau.fr
GDR-GPL # Session IDM
Bordeaux, 2015
Adaptation d'exécutionAdaptation d'exécu...

Ad

Olivier Le Goaer @ GDR-GPL 2015
Plan de la présentationPlan de la présentation
 Contexte : iDSML
 Problématique : iDSML ...

Ad

iDSMLiDSML

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Chargement dans…3
×

Consultez-les par la suite

1 sur 31 Publicité
1 sur 31 Publicité

Adaptation d'exécution de modèles : vers des iDSML adaptables

Télécharger pour lire hors ligne

Cette présentation traite de la question de l'adaptation des iDSML (interpreted DSML).

Cette présentation traite de la question de l'adaptation des iDSML (interpreted DSML).

Plus De Contenu Connexe

Les utilisateurs ont également aimé (20)

Adaptation d'exécution de modèles : vers des iDSML adaptables

  1. 1. Olivier Le Goaër olivier.legoaer@univ-pau.fr GDR-GPL # Session IDM Bordeaux, 2015 Adaptation d'exécutionAdaptation d'exécution de modèlesde modèles Vers des iDSML adaptablesVers des iDSML adaptables
  2. 2. Olivier Le Goaer @ GDR-GPL 2015 Plan de la présentationPlan de la présentation  Contexte : iDSML  Problématique : iDSML adaptable  Vers la notion de famille  Orchestration d'adaptation  Perspectives
  3. 3. iDSMLiDSML
  4. 4. Olivier Le Goaer @ GDR-GPL 2015 CompilationCompilation vs.vs. interprétationinterprétation Le modèle de mon système S Mon système exécutable IN TER PR ETATIO N Mon système exécutable = le modèle à l’exécution Design-timeDesign-time Run-timeRun-time C O M PILATIO N </xml> sub{ } MDA ® MM exec(M)exec(M)
  5. 5. Olivier Le Goaer @ GDR-GPL 2015 Métaphore Harry PotterMétaphore Harry Potter « Carte du maraudeur » (i.e. modèle) Usage statique du modèle (design-time) Usage dynamique du modèle (run-time) ● Informe sur la structure du château Poudlard (pièces et passages) ● Informe sur les déplacements des personnes en temps réel (leurs « pas »)
  6. 6. Olivier Le Goaer @ GDR-GPL 2015 iDSML :iDSML : interpreted DSMLinterpreted DSML  Et si on animait/actionnait les modèles ? ● Simulation, V&V, prototypage rapide... ● Sauter carrément la phase d'implémentation  Moteur d'exécution (ou interpréteur) ● Implémente une sémantique d'exécution donnée sous une forme opérationnelle (i.e. qui va manipuler le modèle) – Par le biais d'un langage « d'animation » ou « d'action »Par le biais d'un langage « d'animation » ou « d'action » – Par le biais d'un langage de transformation (non abordé ici)Par le biais d'un langage de transformation (non abordé ici)  Nature exécutable des modèles (CIEL2015) ● Comportement du système incarné pleinement par le modèle ● Notion d'état courant (inclue celui initial) ● Notion de « pas » d’exécution (calcul du prochain état)
  7. 7. Olivier Le Goaer @ GDR-GPL 2015 Exemple de PDLExemple de PDL  Langage de description de processus (PDL) Instant t Instant t+1
  8. 8. Olivier Le Goaer @ GDR-GPL 2015 Le iDSML « PDL »Le iDSML « PDL »  iDSML = Metamodèle augmenté ● Partie statique : sert à représenter la structure du modèle (AST) ● Partie dynamique (état courant) + sémantique opérationnelle
  9. 9. Olivier Le Goaer @ GDR-GPL 2015 Le iDSML « PDL »Le iDSML « PDL »  iDSML = Metamodèle augmenté ● Partie statique : sert à représenter la structure du modèle (AST) ● Partie dynamique (état courant) + sémantique opérationnelle Opération d'exécution (sémantique) Partie dynamique
  10. 10. Olivier Le Goaer @ GDR-GPL 2015 Le iDSML « PDL »Le iDSML « PDL »  iDSML = Metamodèle augmenté ● Partie statique : sert à représenter la structure du modèle (AST) ● Partie dynamique (état courant) + sémantique opérationnelle Opération d'exécution (sémantique) Partie dynamique
  11. 11. iDSML adaptableiDSML adaptable
  12. 12. Olivier Le Goaer @ GDR-GPL 2015 Model@run.timeModel@run.time  Terme surchargé ● Traite majoritairement de l'adaptation logicielle  Avantage ● Offre un support de raisonnement (abstraction) pour l'adaptation  Inconvénient ● Maintenir le lien causal : M doit rester le reflet fidèle de S M S adaptation ? représentation modification Boucle d'adaptation
  13. 13. Olivier Le Goaer @ GDR-GPL 2015 Model@run.time + iDSMLModel@run.time + iDSML  Traiter le cas particulier où le système considéré est un modèle à l’exécution  Aplatir la boucle est un choix raisonnable ● évacue la problématique du lien causal... ● ...mais fait naître un modèle M'' plus riche (moins abstrait ?) M S = exec(M') adaptation ? représentation modification S = exec(M'') adaptation ? modification flatteningflattening
  14. 14. Olivier Le Goaer @ GDR-GPL 2015 Execution – Check – ActionExecution – Check – Action « Au cours de l'exécution de mon processus, si je suis en retard, alors je dois y remédier » Détecter la nécessiter d'adapter Opération booléenne de vérification (CHECK) Entreprendre une adaptation Opération de modification (ACTION) Orchestrer l'adaptation Lier CHECKs et ACTIONs avec les opérations d'exécution existantes EECCAA Execution – Check – Action
  15. 15. Olivier Le Goaer @ GDR-GPL 2015 Soyons pragmatique...Soyons pragmatique...  Comment savoir si je suis en retard ? ● En l'état, rien ne me permet de détecter cette situation – « Exige de confronter la réalité de l'exécution avec ce qui est modélisé »« Exige de confronter la réalité de l'exécution avec ce qui est modélisé »  Et si oui, que dois-je faire ? ● Sauter une activité ? La supprimer ?... cela a-t-il même un sens ? ● Pas facile de savoir avec aussi peu d'information Plus le métamodèle PDL est spécialisé (étendu + contraint), plus il est aisé de faire émerger des CHECK et des ACTIONS CONSTAT
  16. 16. Olivier Le Goaer @ GDR-GPL 2015 iDSML adaptableiDSML adaptable  iDSML adaptable = iDSML augmenté par spécialisation ● Partie adaptation + CHECK + ACTION
  17. 17. Olivier Le Goaer @ GDR-GPL 2015 Matrice exécution/adaptationMatrice exécution/adaptation OpérationOpération d'exécutiond'exécution Opération d'adaptationOpération d'adaptation ACTIONS Partie statique Read only Create/Update/Delete Partie dynamique Create/Update/Delete Create/Update/Delete Partie adaptation Read only Create/Update/Delete Opération d'exécution N/A Substitute Opération d'adaptation N/A Substitute Bilan des manipulations de modèle autorisées ÉlémentsdeÉlémentsde metamodèlemetamodèle
  18. 18. Famille d'iDSML adaptableFamille d'iDSML adaptable
  19. 19. Olivier Le Goaer @ GDR-GPL 2015 Regroupement familial...Regroupement familial...  Devient rapidement compliqué de gérer tous les éléments introduits par spécialisation ● Quel métamodèle ? Avec quels E, pour quels C, avec quels A ?  Solution : regrouper tous les éléments connexes dans une brique de base réutilisable appelée famille ● Une famille est liée à un métamodèle donné ● Elle offre la garantie que les E, C et A ont été prévus pour s'appliquer à tout modèle instance de ce métamodèle ● L'ingénieur logiciel « pioche » dans les E,C et A pour définir la sémantique d'adaptation de son choix
  20. 20. Olivier Le Goaer @ GDR-GPL 2015 Hiérarchies de famillesHiérarchies de familles Famille X {Uri metamodèle X}  Diagramme de famille ● Syntaxe « à la UML » ● Héritage multiple possible  Hiérarchie ● Principe de substitution : une adaptation écrite pour X est valable aussi pour X' ● Degré de réutilisation inversement proportionnel au niveau de profondeur Famille X' {Uri metamodèle X'} E C A E C A
  21. 21. Olivier Le Goaer @ GDR-GPL 2015 Adaptation génériqueAdaptation générique vs.vs. métiermétier  Générique ● Stéréotypé « domain » ● C et A s'écrivent de manière totalement indépendante du contenu du modèle ● Haut degré de réutilisation. Plus difficile à identifier.  Métier ● Stéréotypé « business » ● C et/ou A s'écrivent en présupposant le contenu du modèle ● Faible de degré de réutilisation. Très facile à trouver. « Si je suis en retard dans mon processus, je saute la prochaine activité qui l'autorise » « Si je suis en retard dans ma 'préparation des légumes', je saute l'activité 'aiguiser couteaux' » Fonctionne quel que soit le processus modélisé (dev. logiciel, recette cuisine, ...) Ne fonctionne que pour les recettes de cuisine !
  22. 22. Olivier Le Goaer @ GDR-GPL 2015 Diagramme pour l'exemple PDLDiagramme pour l'exemple PDL
  23. 23. Orchestration d'adaptationOrchestration d'adaptation
  24. 24. Olivier Le Goaer @ GDR-GPL 2015 OrchestrationOrchestration  La sémantique d'adaptation naît de l'orchestration des ECA ensemble ● Intercepter l'exécution E ● Vérifier les conditions C ● Appliquer les actions A le cas échéant  Techniques envisageables ● Programmation classique – E,C et A mélangés à travers le langage d'actionE,C et A mélangés à travers le langage d'action ● Programmation par contrat – Précondition (C) sur opération d'exécution (E) avec branchement vers bloc APrécondition (C) sur opération d'exécution (E) avec branchement vers bloc A ● Programmation par aspect – Point cut (E&C) et advice around (A)Point cut (E&C) et advice around (A) E A C
  25. 25. Olivier Le Goaer @ GDR-GPL 2015 iDSML d'orchestration ?iDSML d'orchestration ?  L'orchestration de l'adaptation est écrite programmatiquement par l'ingénieur ● Manque d'abstraction ● Difficile à changer. Impossible de le faire « à chaud »  Aller plus loin en la modélisant à son tour ● Externaliser l'orchestration de l'adaptation dans un modèle à part, conforme à un metamodèle ● Ce modèle DOIT être exécutable : nécessite un iDSML  Le moteur d’exécution sera écrit une fois pour toute ● Sémantique d'exécution opérationnelle … d'adaptation (o_O)
  26. 26. Olivier Le Goaer @ GDR-GPL 2015 Co-exécution de modèlesCo-exécution de modèles Moteur pour Ω Moteur pour Ω Modèle de type Ω Modèle de type Ω Modèle d'orchestration d'adaptation de Ω Modèle d'orchestration d'adaptation de Ω Moteur d'orchestration CallBack() sur C et A et E Délégation sur E Modèle d'orchestration d'adaptation de Ω Modèle d'orchestration d'adaptation de Ω Modèle de type Ω Modèle de type Ω iDSML Ω iDSML d'orchestration
  27. 27. Olivier Le Goaer @ GDR-GPL 2015 Modèle d'orchestrationModèle d'orchestration  Inspiré des langages workflows ● Flot de contrôle minimaliste entre les E, les C et les A ● + système de « tags » pour le flot de données (travaux en cours) E A C Process::run() Instant t
  28. 28. PerspectivesPerspectives
  29. 29. Olivier Le Goaer @ GDR-GPL 2015 Le graal de l'adaptation...Le graal de l'adaptation... Moteur pour Ω Moteur pour Ω Modèle de type Ω Modèle de type Ω Modèle d'orchestration d'adaptation de Ω Modèle d'orchestration d'adaptation de Ω Moteur d'orchestration CallBack() sur C et A et E Délégation sur E Modèle d'orchestration d'adaptation de Ω Modèle d'orchestration d'adaptation de Ω Modèle de type Ω Modèle de type Ω Modèle d'orchestration d'adaptation de Ω Modèle d'orchestration d'adaptation de Ω Moteur d'orchestration CallBack() sur C et A et E Délégation sur E Modèle d'orchestration d'orchestration Modèle d'orchestration d'orchestration
  30. 30. Olivier Le Goaer @ GDR-GPL 2015 Modèle d'orchestration d'orchestration Modèle d'orchestration d'orchestration Le graal de l'adaptation...Le graal de l'adaptation... Modèle d'orchestration d'adaptation de Ω Modèle d'orchestration d'adaptation de Ω Moteur d'orchestration Modèle d'orchestration d'adaptation de Ω Modèle d'orchestration d'adaptation de Ω Moteur pour Ω Moteur pour Ω Modèle de type Ω Modèle de type Ω CallBack() sur C et A et E Délégation sur E Modèle de type Ω Modèle de type Ω Modèle d'orchestration d'orchestration Modèle d'orchestration d'orchestration
  31. 31. Questions ?Questions ?

×