SlideShare une entreprise Scribd logo
1  sur  31
Télécharger pour lire hors ligne
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
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
iDSMLiDSML
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)
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 »)
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)
Olivier Le Goaer @ GDR-GPL 2015
Exemple de PDLExemple de PDL
 Langage de description de processus (PDL)
Instant t
Instant t+1
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
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
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
iDSML adaptableiDSML adaptable
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
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
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
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
Olivier Le Goaer @ GDR-GPL 2015
iDSML adaptableiDSML adaptable
 iDSML adaptable = iDSML augmenté par
spécialisation
● Partie adaptation + CHECK + ACTION
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
Famille d'iDSML adaptableFamille d'iDSML adaptable
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
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
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 !
Olivier Le Goaer @ GDR-GPL 2015
Diagramme pour l'exemple PDLDiagramme pour l'exemple PDL
Orchestration d'adaptationOrchestration d'adaptation
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
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)
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
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
PerspectivesPerspectives
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
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
Questions ?Questions ?

Contenu connexe

Tendances

IDM : Vision Globale - Introduction -- 9
IDM : Vision Globale - Introduction -- 9IDM : Vision Globale - Introduction -- 9
IDM : Vision Globale - Introduction -- 9megaplanet20
 
Transformation M2M avec ATL
Transformation M2M avec ATL Transformation M2M avec ATL
Transformation M2M avec ATL Halima Bouabdelli
 
Cours Visual Basic.NET
Cours Visual Basic.NETCours Visual Basic.NET
Cours Visual Basic.NETAziz Darouichi
 
Cours algorithme
Cours algorithmeCours algorithme
Cours algorithmebadr zaimi
 
Programmation linéniaire
Programmation linéniaire Programmation linéniaire
Programmation linéniaire Mohammed Zaoui
 
Comparaison de outils mda
Comparaison de outils mdaComparaison de outils mda
Comparaison de outils mdaShili Mohamed
 
Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++Amina HAMEURLAINE
 
U M L Analyse Et Conception Objet
U M L Analyse Et Conception ObjetU M L Analyse Et Conception Objet
U M L Analyse Et Conception ObjetAmine Chkr
 
cours algorithme et structure de données 1er année
cours algorithme et structure de données 1er annéecours algorithme et structure de données 1er année
cours algorithme et structure de données 1er annéeMissaoui Abdelbaki
 

Tendances (11)

IDM : Vision Globale - Introduction -- 9
IDM : Vision Globale - Introduction -- 9IDM : Vision Globale - Introduction -- 9
IDM : Vision Globale - Introduction -- 9
 
Transformation M2M avec ATL
Transformation M2M avec ATL Transformation M2M avec ATL
Transformation M2M avec ATL
 
Agl2012
Agl2012Agl2012
Agl2012
 
Cours Visual Basic.NET
Cours Visual Basic.NETCours Visual Basic.NET
Cours Visual Basic.NET
 
Cours algorithme
Cours algorithmeCours algorithme
Cours algorithme
 
Cours de Génie Logiciel / ESIEA 2013-2014
Cours de Génie Logiciel / ESIEA 2013-2014 Cours de Génie Logiciel / ESIEA 2013-2014
Cours de Génie Logiciel / ESIEA 2013-2014
 
Programmation linéniaire
Programmation linéniaire Programmation linéniaire
Programmation linéniaire
 
Comparaison de outils mda
Comparaison de outils mdaComparaison de outils mda
Comparaison de outils mda
 
Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++
 
U M L Analyse Et Conception Objet
U M L Analyse Et Conception ObjetU M L Analyse Et Conception Objet
U M L Analyse Et Conception Objet
 
cours algorithme et structure de données 1er année
cours algorithme et structure de données 1er annéecours algorithme et structure de données 1er année
cours algorithme et structure de données 1er année
 

En vedette

Android executable modeling: beyond android programming
Android executable modeling: beyond android programmingAndroid executable modeling: beyond android programming
Android executable modeling: beyond android programmingOlivier Le Goaër
 
Yet another DSL for cross platforms mobile development
Yet another DSL for cross platforms mobile developmentYet another DSL for cross platforms mobile development
Yet another DSL for cross platforms mobile developmentOlivier Le Goaër
 
Executable modeling & dynamic adaptation
Executable modeling & dynamic adaptationExecutable modeling & dynamic adaptation
Executable modeling & dynamic adaptationOlivier Le Goaër
 
Introduction à l'approche ADM de l'OMG
Introduction à l'approche ADM de l'OMGIntroduction à l'approche ADM de l'OMG
Introduction à l'approche ADM de l'OMGOlivier Le Goaër
 
Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !Olivier Le Goaër
 
Principescomptablesnormesinternationalescomparaison 131119144442-phpapp02 3
Principescomptablesnormesinternationalescomparaison 131119144442-phpapp02 3Principescomptablesnormesinternationalescomparaison 131119144442-phpapp02 3
Principescomptablesnormesinternationalescomparaison 131119144442-phpapp02 3Allaeddine Makhlouk
 
Principe de fonctionnement du cryptage RSA
Principe de fonctionnement du cryptage RSAPrincipe de fonctionnement du cryptage RSA
Principe de fonctionnement du cryptage RSAKristen Le Liboux
 
Projet loi de finances 2016
Projet loi de finances 2016Projet loi de finances 2016
Projet loi de finances 2016CHAHBOUN Adil
 
Timbres fiscaux-etat-adc 310f-15i
Timbres fiscaux-etat-adc 310f-15iTimbres fiscaux-etat-adc 310f-15i
Timbres fiscaux-etat-adc 310f-15iAllaeddine Makhlouk
 
Notions de base de JavaScript
Notions de base de JavaScriptNotions de base de JavaScript
Notions de base de JavaScriptKristen Le Liboux
 
Formation JavaScript full-stack (JS, jQuery, Node.js...)
Formation JavaScript full-stack (JS, jQuery, Node.js...)Formation JavaScript full-stack (JS, jQuery, Node.js...)
Formation JavaScript full-stack (JS, jQuery, Node.js...)guicara
 
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware
 
Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal PerspectiveEdward Willink
 
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...Edward Willink
 
Embedded OCL Integration and Debugging
Embedded OCL Integration and DebuggingEmbedded OCL Integration and Debugging
Embedded OCL Integration and DebuggingEdward Willink
 

En vedette (20)

Android executable modeling: beyond android programming
Android executable modeling: beyond android programmingAndroid executable modeling: beyond android programming
Android executable modeling: beyond android programming
 
Yet another DSL for cross platforms mobile development
Yet another DSL for cross platforms mobile developmentYet another DSL for cross platforms mobile development
Yet another DSL for cross platforms mobile development
 
Executable modeling & dynamic adaptation
Executable modeling & dynamic adaptationExecutable modeling & dynamic adaptation
Executable modeling & dynamic adaptation
 
Introduction à l'approche ADM de l'OMG
Introduction à l'approche ADM de l'OMGIntroduction à l'approche ADM de l'OMG
Introduction à l'approche ADM de l'OMG
 
Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !
 
Cours JavaScript
Cours JavaScriptCours JavaScript
Cours JavaScript
 
Programmation sous Android
Programmation sous AndroidProgrammation sous Android
Programmation sous Android
 
Document501
Document501Document501
Document501
 
Indh
IndhIndh
Indh
 
Principescomptablesnormesinternationalescomparaison 131119144442-phpapp02 3
Principescomptablesnormesinternationalescomparaison 131119144442-phpapp02 3Principescomptablesnormesinternationalescomparaison 131119144442-phpapp02 3
Principescomptablesnormesinternationalescomparaison 131119144442-phpapp02 3
 
Principe de fonctionnement du cryptage RSA
Principe de fonctionnement du cryptage RSAPrincipe de fonctionnement du cryptage RSA
Principe de fonctionnement du cryptage RSA
 
Projet loi de finances 2016
Projet loi de finances 2016Projet loi de finances 2016
Projet loi de finances 2016
 
Timbres fiscaux-etat-adc 310f-15i
Timbres fiscaux-etat-adc 310f-15iTimbres fiscaux-etat-adc 310f-15i
Timbres fiscaux-etat-adc 310f-15i
 
Notions de base de JavaScript
Notions de base de JavaScriptNotions de base de JavaScript
Notions de base de JavaScript
 
Formation JavaScript full-stack (JS, jQuery, Node.js...)
Formation JavaScript full-stack (JS, jQuery, Node.js...)Formation JavaScript full-stack (JS, jQuery, Node.js...)
Formation JavaScript full-stack (JS, jQuery, Node.js...)
 
Java vs .Net
Java vs .NetJava vs .Net
Java vs .Net
 
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
 
Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal Perspective
 
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
 
Embedded OCL Integration and Debugging
Embedded OCL Integration and DebuggingEmbedded OCL Integration and Debugging
Embedded OCL Integration and Debugging
 

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

Keynote Gaël Delalleau Nuit du Hack 2018 - Cité des Sciences
Keynote Gaël Delalleau Nuit du Hack 2018 - Cité des SciencesKeynote Gaël Delalleau Nuit du Hack 2018 - Cité des Sciences
Keynote Gaël Delalleau Nuit du Hack 2018 - Cité des SciencesGaël Delalleau
 
DrupalCamp2013 - "libérez drupal"
DrupalCamp2013 - "libérez drupal"DrupalCamp2013 - "libérez drupal"
DrupalCamp2013 - "libérez drupal"Laurent Chardin
 
Vis ma vie de chef de projet Drupal | Drupagora 2013, Paris
Vis ma vie de chef de projet Drupal | Drupagora 2013, ParisVis ma vie de chef de projet Drupal | Drupagora 2013, Paris
Vis ma vie de chef de projet Drupal | Drupagora 2013, ParisActency
 
Iut lyon 1 introduction à l'agilité - 20 juin 2012
Iut lyon 1   introduction à l'agilité - 20 juin 2012Iut lyon 1   introduction à l'agilité - 20 juin 2012
Iut lyon 1 introduction à l'agilité - 20 juin 2012agnes_crepet
 
Magento 2 : au-delà du changement de version, un changement de paradigme ?
Magento 2 : au-delà du changement de version, un changement de paradigme ?Magento 2 : au-delà du changement de version, un changement de paradigme ?
Magento 2 : au-delà du changement de version, un changement de paradigme ?The e-Commerce Academy
 
Infiltré dans une ample transformation agile
Infiltré dans une ample transformation agileInfiltré dans une ample transformation agile
Infiltré dans une ample transformation agilePierre Fauvel
 
Design poo togo_jug_final
Design poo togo_jug_finalDesign poo togo_jug_final
Design poo togo_jug_finalDuchess France
 
Design poo togo_jug_final
Design poo togo_jug_finalDesign poo togo_jug_final
Design poo togo_jug_finalagnes_crepet
 
Gestion multi-pays & multilingue avec Drupal
Gestion multi-pays & multilingue avec DrupalGestion multi-pays & multilingue avec Drupal
Gestion multi-pays & multilingue avec DrupalAdyax
 
TIAD : Choisir et construire son projet d’automatisation
TIAD : Choisir et construire son projet d’automatisationTIAD : Choisir et construire son projet d’automatisation
TIAD : Choisir et construire son projet d’automatisationThe Incredible Automation Day
 
Objet direct 2013-05-11 Microsoft ALM 2013 Software Factory
Objet direct 2013-05-11 Microsoft ALM 2013 Software FactoryObjet direct 2013-05-11 Microsoft ALM 2013 Software Factory
Objet direct 2013-05-11 Microsoft ALM 2013 Software FactoryFactoVia
 
DDD session BrownBagLunch (FR)
DDD session BrownBagLunch (FR)DDD session BrownBagLunch (FR)
DDD session BrownBagLunch (FR)Cyrille Martraire
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logiciellecyrilgandon
 
Domain Driven Design - Agile France 2010
Domain Driven Design - Agile France 2010Domain Driven Design - Agile France 2010
Domain Driven Design - Agile France 2010François Wauquier
 
Modelisation agile 03122011
Modelisation agile  03122011Modelisation agile  03122011
Modelisation agile 03122011agnes_crepet
 
Valtech - Gestion de projet agile, par la pratique et de façon ludique
Valtech - Gestion de projet agile, par la pratique et de façon ludiqueValtech - Gestion de projet agile, par la pratique et de façon ludique
Valtech - Gestion de projet agile, par la pratique et de façon ludiqueValtech
 
Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011agnes_crepet
 
altimaº x M3.3 Magento 2 api components
altimaº x M3.3 Magento 2 api componentsaltimaº x M3.3 Magento 2 api components
altimaº x M3.3 Magento 2 api componentsAltima x Konversion
 

Similaire à Adaptation d'exécution de modèles : vers des iDSML adaptables (20)

Keynote Gaël Delalleau Nuit du Hack 2018 - Cité des Sciences
Keynote Gaël Delalleau Nuit du Hack 2018 - Cité des SciencesKeynote Gaël Delalleau Nuit du Hack 2018 - Cité des Sciences
Keynote Gaël Delalleau Nuit du Hack 2018 - Cité des Sciences
 
DrupalCamp2013 - "libérez drupal"
DrupalCamp2013 - "libérez drupal"DrupalCamp2013 - "libérez drupal"
DrupalCamp2013 - "libérez drupal"
 
Vis ma vie de chef de projet Drupal | Drupagora 2013, Paris
Vis ma vie de chef de projet Drupal | Drupagora 2013, ParisVis ma vie de chef de projet Drupal | Drupagora 2013, Paris
Vis ma vie de chef de projet Drupal | Drupagora 2013, Paris
 
Forum PHP 2014 day 1
Forum PHP 2014 day 1Forum PHP 2014 day 1
Forum PHP 2014 day 1
 
Iut lyon 1 introduction à l'agilité - 20 juin 2012
Iut lyon 1   introduction à l'agilité - 20 juin 2012Iut lyon 1   introduction à l'agilité - 20 juin 2012
Iut lyon 1 introduction à l'agilité - 20 juin 2012
 
Magento 2 : au-delà du changement de version, un changement de paradigme ?
Magento 2 : au-delà du changement de version, un changement de paradigme ?Magento 2 : au-delà du changement de version, un changement de paradigme ?
Magento 2 : au-delà du changement de version, un changement de paradigme ?
 
Infiltré dans une ample transformation agile
Infiltré dans une ample transformation agileInfiltré dans une ample transformation agile
Infiltré dans une ample transformation agile
 
Design poo togo_jug_final
Design poo togo_jug_finalDesign poo togo_jug_final
Design poo togo_jug_final
 
Design poo togo_jug_final
Design poo togo_jug_finalDesign poo togo_jug_final
Design poo togo_jug_final
 
Gestion multi-pays & multilingue avec Drupal
Gestion multi-pays & multilingue avec DrupalGestion multi-pays & multilingue avec Drupal
Gestion multi-pays & multilingue avec Drupal
 
TIAD : Choisir et construire son projet d’automatisation
TIAD : Choisir et construire son projet d’automatisationTIAD : Choisir et construire son projet d’automatisation
TIAD : Choisir et construire son projet d’automatisation
 
Objet direct 2013-05-11 Microsoft ALM 2013 Software Factory
Objet direct 2013-05-11 Microsoft ALM 2013 Software FactoryObjet direct 2013-05-11 Microsoft ALM 2013 Software Factory
Objet direct 2013-05-11 Microsoft ALM 2013 Software Factory
 
DDD session BrownBagLunch (FR)
DDD session BrownBagLunch (FR)DDD session BrownBagLunch (FR)
DDD session BrownBagLunch (FR)
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logicielle
 
sfPot aop
sfPot aopsfPot aop
sfPot aop
 
Domain Driven Design - Agile France 2010
Domain Driven Design - Agile France 2010Domain Driven Design - Agile France 2010
Domain Driven Design - Agile France 2010
 
Modelisation agile 03122011
Modelisation agile  03122011Modelisation agile  03122011
Modelisation agile 03122011
 
Valtech - Gestion de projet agile, par la pratique et de façon ludique
Valtech - Gestion de projet agile, par la pratique et de façon ludiqueValtech - Gestion de projet agile, par la pratique et de façon ludique
Valtech - Gestion de projet agile, par la pratique et de façon ludique
 
Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011
 
altimaº x M3.3 Magento 2 api components
altimaº x M3.3 Magento 2 api componentsaltimaº x M3.3 Magento 2 api components
altimaº x M3.3 Magento 2 api components
 

Plus de Olivier Le Goaër

Ecological Impact of Native vs. Cross-Platform Mobile Apps: a Preliminary Study
 Ecological Impact of Native vs. Cross-Platform Mobile Apps: a Preliminary Study Ecological Impact of Native vs. Cross-Platform Mobile Apps: a Preliminary Study
Ecological Impact of Native vs. Cross-Platform Mobile Apps: a Preliminary StudyOlivier Le Goaër
 
PowDroid: Energy Profiling of Android Applications (ASE 2021 [Workshop] SUSTA...
PowDroid: Energy Profiling of Android Applications (ASE 2021 [Workshop] SUSTA...PowDroid: Energy Profiling of Android Applications (ASE 2021 [Workshop] SUSTA...
PowDroid: Energy Profiling of Android Applications (ASE 2021 [Workshop] SUSTA...Olivier Le Goaër
 
Enforcing Green Code With Android Lint
Enforcing Green Code With Android LintEnforcing Green Code With Android Lint
Enforcing Green Code With Android LintOlivier Le Goaër
 
GREEN PAUWARE - For a power-thrifty mobile app marketplace
GREEN PAUWARE - For a power-thrifty mobile app marketplaceGREEN PAUWARE - For a power-thrifty mobile app marketplace
GREEN PAUWARE - For a power-thrifty mobile app marketplaceOlivier Le Goaër
 

Plus de Olivier Le Goaër (6)

The road to green code
The road to green codeThe road to green code
The road to green code
 
Ecological Impact of Native vs. Cross-Platform Mobile Apps: a Preliminary Study
 Ecological Impact of Native vs. Cross-Platform Mobile Apps: a Preliminary Study Ecological Impact of Native vs. Cross-Platform Mobile Apps: a Preliminary Study
Ecological Impact of Native vs. Cross-Platform Mobile Apps: a Preliminary Study
 
PowDroid: Energy Profiling of Android Applications (ASE 2021 [Workshop] SUSTA...
PowDroid: Energy Profiling of Android Applications (ASE 2021 [Workshop] SUSTA...PowDroid: Energy Profiling of Android Applications (ASE 2021 [Workshop] SUSTA...
PowDroid: Energy Profiling of Android Applications (ASE 2021 [Workshop] SUSTA...
 
Enforcing Green Code With Android Lint
Enforcing Green Code With Android LintEnforcing Green Code With Android Lint
Enforcing Green Code With Android Lint
 
GREEN PAUWARE - For a power-thrifty mobile app marketplace
GREEN PAUWARE - For a power-thrifty mobile app marketplaceGREEN PAUWARE - For a power-thrifty mobile app marketplace
GREEN PAUWARE - For a power-thrifty mobile app marketplace
 
Introduction au langage SQL
Introduction au langage SQLIntroduction au langage SQL
Introduction au langage SQL
 

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

  • 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. 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
  • 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. 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. 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. Olivier Le Goaer @ GDR-GPL 2015 Exemple de PDLExemple de PDL  Langage de description de processus (PDL) Instant t Instant t+1
  • 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. 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. 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
  • 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. 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. 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. 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. Olivier Le Goaer @ GDR-GPL 2015 iDSML adaptableiDSML adaptable  iDSML adaptable = iDSML augmenté par spécialisation ● Partie adaptation + CHECK + ACTION
  • 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. Famille d'iDSML adaptableFamille d'iDSML adaptable
  • 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. 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. 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. Olivier Le Goaer @ GDR-GPL 2015 Diagramme pour l'exemple PDLDiagramme pour l'exemple PDL
  • 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. 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. 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. 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
  • 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. 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