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

822 vues

Publié le

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

Publié dans : Logiciels
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
822
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
3
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

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 ?

×