IInnttrroodduuccttiioonn àà 
ll''aapppprroocchhee AADDMM 
MMooddeerrnniissaattiioonn dduu ppaattrriimmooiinnee 
llooggiicc...
AAggeennddaa 
 Introduction et problématique 
 Modernisation par les modèles 
 ADM : La boîte à outils de l'OMG 
 L'ex...
Introduction eett pprroobblléémmaattiiqquuee
VVeerrss llaa mmooddeerrnniissaattiioonn dduu SSII 
 Une prépondérance des SI 
 Grands comptes (banques, assurance, mutu...
LLooggiicciieellss ppaattrriimmoonniiaauuxx ((lleeggaaccyy)) 
 Patrimoine logiciel recouvre 2 notions : 
 Valeur : le SI...
SSee pprrééppaarreerr àà éévvoolluueerr 
 Une option raisonnable 
« Ne rien 
faire » 
 Faire le point sur la situation 
...
AAGGLL ppoouurr llaa mmooddeerrnniissaattiioonn 
 Atelier pour assister les projets de 
modernisation logicielle 
 « Com...
MMooddèèllee dduu « ffeerr àà cchheevvaall »
Modernisation du SI 
Représentation architecturale 
Rétro-ingénierie 
Représe...
PPooiinntt ddee vvuuee iinnggéénniieerriiee 
1. Retro-ingénierie (reverse-engineering) 
 Objectifs : inventorier les arte...
MMooddeerrnniissaattiioonn ppaarr lleess mmooddèèlleess
LLee MMDD** 
Olivier Le Goaer @ GDR-GPL 2012 
MDE 
MDD 
MDA, 
ADM 
Toute activité qui 
considère les modèles 
comme citoye...
LLaa ppiillee ddee mmééttaammooddéélliissaattiioonn 
Meta-modèle 
Modèle 
« Monde réel » 
Olivier Le Goaer @ GDR-GPL 2012 ...
MMooddeell--ddrriivveenn MMooddeerrnniizzaattiioonn 
 La modernisation est un processus complexe 
 Nécessite une forte m...
AApppprroocchhee mmuullttii--vvuueess 
Vue 
architecturale 
Vue 
fichiers 
Olivier Le Goaer @ GDR-GPL 2012 
Vue 
données 
...
MMuullttii--vvuueess ppaarr lleess mmooddèèlleess 
SI 
patrimonial 
Olivier Le Goaer @ GDR-GPL 2012 
MMooddèèllee ##11 
MM...
AApppprroocchheess AADDMM eett MMDDAA ddee ll''OOMMGG 
 Le patrimoine a été l'un des gros obstacles à la 
percée du MDA 
...
LLaa mmooddeerrnniissaattiioonn sseelloonn ll''OOMMGG 
ADM MDA 
Olivier Le Goaer @ GDR-GPL 2012 
PIM 
PSM PSM 
Plateformes...
DDiissccrrééttiissaattiioonn dduu pprroocceessssuuss 
 Chaîne de transformations 
 Modèles (et méta-modèles) intermédiai...
AADDMM :: LLaa bbooîîttee àà oouuttiillss ddee ll''OOMMGG
LL'' « AADDMM TTaasskk FFoorrccee » ddee ll''OOMMGG 
 Groupe créé en 2003 
 Mission 
 « Create specifications and promo...
LLeess 77 RRFFPPss ddee llaa ffeeuuiillllee ddee rroouuttee 
1.Knowledge Discovery Meta-Model (KDM) Package 
2.Abstract Sy...
VViissiioonn dd''eennsseemmbbllee ddee ll''OOMMGG 
Olivier Le Goaer @ GDR-GPL 2012
AADDMM,, jjuussttee uunnee bbooiittee àà oouuttiillss ?? 
 L'OMG offre uniquement des spécifications 
 Leurs implémentat...
ÉÉccoossyyssttèèmmee OOMMGG ((mmeettaammooddèèlleess)) 
BPMN 
Olivier Le Goaer @ GDR-GPL 2012 
MMOOFF 
QVT 
UML 
SPEM 
CWM...
FFooccuuss ssuurr AASSTTMM 
 Abstract Syntax Tree Metamodel (ASTM) 
 Prévu pour une modélisation bas-niveau, fidèle au c...
AASSTTMM eett llaannggaaggeess 
Olivier Le Goaer @ GDR-GPL 2012
FFooccuuss ssuurr KKDDMM 
 Knowledge Discovery Metamodel (KDM) 
 Prévu pour une modélisation haut-niveau, une « carte » ...
AArrcchhiitteeccttuurree ddee KKDDMM 
 12 paquetages arrangés en 4 couches 
Conceptual1 Build Structure 
Data2 Event UI P...
DDeeggrréé dd''eexxppllooiittaattiioonn ddee KKDDMM 
Conceptual Build Structure Haut-niveau, 
Data Event UI Platform 
Code...
LLee ttrriioo SSAASSTTMM,, GGAASSTTMM,, KKDDMM 
 SASTM et GASTM 
 Chaque SASTM est défini en extension de GASTM 
 Une t...
RReevveerrssee « AADDMM--ccoommpplliiaanntt » 
Olivier Le Goaer @ GDR-GPL 2012 
Matériel 
patrimonial 
SASTM 
model 
GASTM...
LL''eexxeemmppllee ddee BBlluuAAggee RReevveerrssee
NNeettffeeccttiivvee BBlluuAAggee® 
 Module BluAge® Reverse 
 Phase de rétro-ingénierie 
 Produit des modèles UML2 en s...
AArrcchhiitteeccttuurree ddee BBlluuAAggee® RReevveerrssee 
Xtext grammar 
(describes legacy language) 
Transformed by 
Xt...
CCooddee ccoobbooll →→ SSAASSTTMM ccoobbooll 
Olivier Le Goaer @ GDR-GPL 2012 
tt2m
SSAASSTTMM ccoobbooll →→ GGAASSTTMM 
Specific: Generic: 
Original code: 
Olivier Le Goaer @ GDR-GPL 2012 
tm2m 
Autre Exem...
GGAASSTTMM→→UUMMLL22 ++ PPrrooffiill 
Olivier Le Goaer @ GDR-GPL 2012
CCoonncclluussiioonn
LLaa rrééaalliittéé ddee llaa mmooddeerrnniissaattiioonn 
 Le rendez-vous manqué 
 Les prototypes se concentrent sur des...
PPrreemmiieerr bbiillaann 
 Un roundtrip est nécessaire 
 Peu probable de passer du matériel patrimonial vers un modèle ...
LLee ffoosssséé ddeess ggéénnéérraattiioonnss 
 Il n'est pas raisonnable d'essayer de traverser 
toutes les générations d...
QQuueessttiioonnss ??
Prochain SlideShare
Chargement dans…5
×

Introduction à l'approche ADM de l'OMG

1 417 vues

Publié le

Modernisation d'application patrimoniales par les modèles

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

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 417
Sur SlideShare
0
Issues des intégrations
0
Intégrations
150
Actions
Partages
0
Téléchargements
16
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Introduction à l'approche ADM de l'OMG

  1. 1. IInnttrroodduuccttiioonn àà ll''aapppprroocchhee AADDMM MMooddeerrnniissaattiioonn dduu ppaattrriimmooiinnee llooggiicciieell ppaarr lleess mmooddèèlleess Olivier Le Goaer olivier.legoaer@univ-pau.fr GDR-GPL # Action IDM Rennes, 2012
  2. 2. AAggeennddaa  Introduction et problématique  Modernisation par les modèles  ADM : La boîte à outils de l'OMG  L'exemple de BluAge Reverse  Conclusions Olivier Le Goaer @ GDR-GPL 2012
  3. 3. Introduction eett pprroobblléémmaattiiqquuee
  4. 4. VVeerrss llaa mmooddeerrnniissaattiioonn dduu SSII  Une prépondérance des SI  Grands comptes (banques, assurance, mutuelle, …)  SI devenus stratégiques, voir critiques pour le métier  Des situations d'urgence 1. Obsolescence technologique rapide, effets de mode 2. Évolutions rapides des entreprises (structure/réglementation) 3. Départ des « sachant » des entreprises  Un défi industriel et scientifique majeur  Coûts importants, ROI difficile à évaluer  Verrous technologiques Olivier Le Goaer @ GDR-GPL 2012
  5. 5. LLooggiicciieellss ppaattrriimmoonniiaauuxx ((lleeggaaccyy))  Patrimoine logiciel recouvre 2 notions :  Valeur : le SI est un actif de l'entreprise  Temps : le SI hérité est devenu vieux  Modernisation du patrimoine logicielle  Conserver la valeur du SI tout en le mettant au goût du jour  Projets de modernisation du SI  Migration du SI : le projet vise à re-localiser le SI sur une plateforme technologique récente. Typiquement iso-fonctionnelle.  Refonte du SI : le projet vise à rebâtir le SI pour repartir sur de meilleures bases. Les fonctionnalités peuvent être repensées.  ... Olivier Le Goaer @ GDR-GPL 2012
  6. 6. SSee pprrééppaarreerr àà éévvoolluueerr  Une option raisonnable « Ne rien faire »  Faire le point sur la situation  Inventorier le portefeuille des logiciels de chaque entreprise  L'occasion de (re)découvrir ce qui se cache sous l'empilement de couches logicielles (« Software Archeology »)  Prendre une décision  Comprendre en vue d'estimer la complexité, les coûts  Avis d'experts, d'analystes Olivier Le Goaer @ GDR-GPL 2012 « Tout reconstruire de zéro »
  7. 7. AAGGLL ppoouurr llaa mmooddeerrnniissaattiioonn  Atelier pour assister les projets de modernisation logicielle  « Computer-aided software modernization »  Haut-degré d'automatisation  A chacune des 3 étapes clés  Inventaire  Décision  Intervention  Bénéfices attendus  Fiable, prévisible et rentable Olivier Le Goaer @ GDR-GPL 2012 Inventaire [ false ] [ true ] Maîtrise des coûts ? des délais ? Annulé Intervenir Reporté à plus tard
  8. 8. MMooddèèllee dduu « ffeerr àà cchheevvaall » Modernisation du SI Représentation architecturale Rétro-ingénierie Représentation de niveau conceptuel U Représentation de niveau fonctionnel Représentation de structures de code Olivier Le Goaer @ GDR-GPL 2012 Ingénierie vers l'avant SI patrimonial Nouveau SI Représentation de code source (textuel)
  9. 9. PPooiinntt ddee vvuuee iinnggéénniieerriiee 1. Retro-ingénierie (reverse-engineering)  Objectifs : inventorier les artefacts du patrimoine logiciel  Tâches : auditer, fouiller, cartographier, ... 2. Ré-ingenierie (re-engineering)  Objectifs : revitaliser ces artefacts  Tâches : améliorer, nettoyer, refactoriser, remplacer, ... 3. Ingénierie avant (forward-engineering)  Objectifs : cibler de nouvelles plateformes technologiques, intégrer des notions nouvelles  Tâches : générer du code, documenter, tester, ... Olivier Le Goaer @ GDR-GPL 2012
  10. 10. MMooddeerrnniissaattiioonn ppaarr lleess mmooddèèlleess
  11. 11. LLee MMDD** Olivier Le Goaer @ GDR-GPL 2012 MDE MDD MDA, ADM Toute activité qui considère les modèles comme citoyens de première classe (à traiter en priorité) Les modèles couvrent le cycle de développement et de maintenance des systèmes logiciels Vision de l'OMG : raffinement des modèles (PIM/PSM)
  12. 12. LLaa ppiillee ddee mmééttaammooddéélliissaattiioonn Meta-modèle Modèle « Monde réel » Olivier Le Goaer @ GDR-GPL 2012 Meta-meta-modèle M0 M1 M2 M3 Le MOF Le métamodèle UML et d'autres métamodèles Des modèles UML et d'autres modèles Usages variés de ces modèles
  13. 13. MMooddeell--ddrriivveenn MMooddeerrnniizzaattiioonn  La modernisation est un processus complexe  Nécessite une forte montée en abstraction !  L'IDM comme technologie idéale  Capturer un point de vue sur le SI sous la forme d'un modèle (conforme à un méta-modèle)  Le traiter sous la forme d'une transformation  Un projet de modernisation fera intervenir de nombreux de modèles qu'il faudra gérer  Méga-modélisation  Bus à modèles  ... Olivier Le Goaer @ GDR-GPL 2012
  14. 14. AApppprroocchhee mmuullttii--vvuueess Vue architecturale Vue fichiers Olivier Le Goaer @ GDR-GPL 2012 Vue données SI patrimonial Vue architecturale Vue fichiers Vue Vue logique métier logique métier Vue Vue environnement d’exécution environnement d’exécution Vue données Vue Vue métriques métriques ......
  15. 15. MMuullttii--vvuueess ppaarr lleess mmooddèèlleess SI patrimonial Olivier Le Goaer @ GDR-GPL 2012 MMooddèèllee ##11 MMooddèèllee ##nn Méta-modèle #1 repOf repOf Méta-modèle #n
  16. 16. AApppprroocchheess AADDMM eett MMDDAA ddee ll''OOMMGG  Le patrimoine a été l'un des gros obstacles à la percée du MDA  Tout ré-écrire « from scratch » n'est pas viable.  Que fais-t-on de l'existant (legacy) ? Il faut le réutiliser...  Effet miroir  ADM est le processus bottom-up (rétro-ingénierie)  MDA est le processus top-down (ingénierie vers l'avant)  Forces  Utilisation de standards  Complétude (processus end-to-end)  Interopérabilité entre les outils Olivier Le Goaer @ GDR-GPL 2012
  17. 17. LLaa mmooddeerrnniissaattiioonn sseelloonn ll''OOMMGG ADM MDA Olivier Le Goaer @ GDR-GPL 2012 PIM PSM PSM Plateformes du passé (ADA, COBOL, PL/1, ...) Plateformes du présent (Java, J2EE, ...) Plateformes du futur (Grid, Cloud, ...)
  18. 18. DDiissccrrééttiissaattiioonn dduu pprroocceessssuuss  Chaîne de transformations  Modèles (et méta-modèles) intermédiaires ADM MDA tm2m tm2m tm2m tm2m tm2m t ... m2m Olivier Le Goaer @ GDR-GPL 2012 PIM ... ... ... tm2m PSM PSM
  19. 19. AADDMM :: LLaa bbooîîttee àà oouuttiillss ddee ll''OOMMGG
  20. 20. LL'' « AADDMM TTaasskk FFoorrccee » ddee ll''OOMMGG  Groupe créé en 2003  Mission  « Create specifications and promote industry consensus on modernization of existing applications »  Feuille de route  7 appels à propositions (Request For Proposal)  12 scénarios de modernisation  Pilotage  Djenana Campara et William Ulrich  Processus de standardisation non finalisé... Olivier Le Goaer @ GDR-GPL 2012
  21. 21. LLeess 77 RRFFPPss ddee llaa ffeeuuiillllee ddee rroouuttee 1.Knowledge Discovery Meta-Model (KDM) Package 2.Abstract Syntax Tree Meta-Model (ASTM) Package 3.Analysis Package (AP) 4.Metrics Package (MP) 5.Visualization Package (VP) 6.Refactoring Package (RP) 7.Target Mapping & Transformation Package (TMTP) Olivier Le Goaer @ GDR-GPL 2012
  22. 22. VViissiioonn dd''eennsseemmbbllee ddee ll''OOMMGG Olivier Le Goaer @ GDR-GPL 2012
  23. 23. AADDMM,, jjuussttee uunnee bbooiittee àà oouuttiillss ??  L'OMG offre uniquement des spécifications  Leurs implémentations ne sont pas fournies  Spécification largement informelles (i.e. langage naturel)  L'OMG ne définie aucune méthodologie  Pas de «Unified Process» pour la modernisation logicielle  Les 12 scénarios se font attendre (devaient servir de guides !)  Il manque le mode d'emploi...  Phase de découverte et instanciation des modèles ?  Transformations/tâches nécessaires ?  Articulation des différents standards entre eux ? Olivier Le Goaer @ GDR-GPL 2012
  24. 24. ÉÉccoossyyssttèèmmee OOMMGG ((mmeettaammooddèèlleess)) BPMN Olivier Le Goaer @ GDR-GPL 2012 MMOOFF QVT UML SPEM CWM SBVR KDM ASTM SMM IPMSS MDA ADM SoaML SACM
  25. 25. FFooccuuss ssuurr AASSTTMM  Abstract Syntax Tree Metamodel (ASTM)  Prévu pour une modélisation bas-niveau, fidèle au code source  Supporte différentes familles de langages : programmation essentiellement, d'interrogation, de transformation, …  ASTM = GASTM + SASTMs  GASTM (Generic ASTM) : metamodèle commun pour représenter un code source. Vise à unifier les langues syntaxiques (2 à 5 GL)  Méta-types : DeclarationOrDefinition, Expression, Literal, etc.  SASTM (Specific ASTM) : metamodèle dédié à chaque langage  Méta-types : TernaryOperator (Java), MoveStatement (COBOL), etc. Olivier Le Goaer @ GDR-GPL 2012
  26. 26. AASSTTMM eett llaannggaaggeess Olivier Le Goaer @ GDR-GPL 2012
  27. 27. FFooccuuss ssuurr KKDDMM  Knowledge Discovery Metamodel (KDM)  Prévu pour une modélisation haut-niveau, une « carte » du SI patrimonial selon plusieurs points de vues (cf. diapo 17)  Fournit différents « micro-langages » couvrant les aspects comportement, structure, et données du SI  Sert de modèle pivot à partir duquel on va dériver des modèles interopérables (i.e. des PIMs)  UML2, SOAML, BPMN, SBVR, …  Implémentation disponible  KDM Analytics (http://www.kdmanalytics.com/)  Eclipse EMF plugin  Les modèles sont créés manuellement :-/ Olivier Le Goaer @ GDR-GPL 2012
  28. 28. AArrcchhiitteeccttuurree ddee KKDDMM  12 paquetages arrangés en 4 couches Conceptual1 Build Structure Data2 Event UI Platform Code Action Source Kdm Olivier Le Goaer @ GDR-GPL 2012 Abstraction Layer Runtime Resource Layer Program Elements Layer Infrastructure Layer Core 1 aligné avec SBVR 2 aligné avec CWM
  29. 29. DDeeggrréé dd''eexxppllooiittaattiioonn ddee KKDDMM Conceptual Build Structure Haut-niveau, Data Event UI Platform Code Action Source Kdm Core Olivier Le Goaer @ GDR-GPL 2012 implicites, jugement d'experts/analystes Primitives, explicites, extraction automatique Framework Méta-modélisation
  30. 30. LLee ttrriioo SSAASSTTMM,, GGAASSTTMM,, KKDDMM  SASTM et GASTM  Chaque SASTM est défini en extension de GASTM  Une transformation SASTM2GASTM peut être nécessaire pour éliminer les spécificités du langage  Complémentarité de ASTM et KDM  ASTM (bas-niveau d'abstraction) n'est qu'un moyen d'alimenter KDM (haut-niveau d'abstraction)  Le paquetage Code de KDM n'a pas été prévu pour une modélisation du code en dessous du niveau procédure  ASTM est prévu pour conserver la syntaxe concrète/de surface aux niveau des noeuds de l'arbre Olivier Le Goaer @ GDR-GPL 2012
  31. 31. RReevveerrssee « AADDMM--ccoommpplliiaanntt » Olivier Le Goaer @ GDR-GPL 2012 Matériel patrimonial SASTM model GASTM model KDM model tt2m tm2m tm2m Injection /parsing Élimination des spécificités par reformulation Alimentation de KDM à partir de GASTM tm2m ᶲ model Injection /parsing Alimentation de KDM à partir d'autres sources Auto-alimentation de KDM tm2m tt2m Modification diverses tt2m Exemple : modèle de trace d’exécution
  32. 32. LL''eexxeemmppllee ddee BBlluuAAggee RReevveerrssee
  33. 33. NNeettffeeccttiivvee BBlluuAAggee®  Module BluAge® Reverse  Phase de rétro-ingénierie  Produit des modèles UML2 en sortie  Module BluAge® Analyst  Phase décisionnelle  Produit des modèles de «dashboard» en sortie  Module BluAge® Design&Generate  Phase d'ingénierie avant  Prend des modèles UML2 en entrées Olivier Le Goaer @ GDR-GPL 2012
  34. 34. AArrcchhiitteeccttuurree ddee BBlluuAAggee® RReevveerrssee Xtext grammar (describes legacy language) Transformed by Xtext Compiler Debugging cycle Generates ANTLR parser & EMF injector Annotation Editor Parsed by Olivier Le Goaer @ GDR-GPL 2012 : Model or source code : Java OSGI plugin Eclipse PDE Patterns Matcher EMF Tooling Other Blu Age Plugins Eclipse Platform Plugins Is IDE for developing AST (Legacy PSM) Legacy Source Code Produces Specific to Generic Generic Model Transmodeling (Legacy PIM) UML2 Blu Age Model (Modernized PIM) : to be implemented for each legacy language PSM Metamodel Conforms to Annotations Affects Embedded in Edited by Matches Produces Is IDE for developing
  35. 35. CCooddee ccoobbooll →→ SSAASSTTMM ccoobbooll Olivier Le Goaer @ GDR-GPL 2012 tt2m
  36. 36. SSAASSTTMM ccoobbooll →→ GGAASSTTMM Specific: Generic: Original code: Olivier Le Goaer @ GDR-GPL 2012 tm2m Autre Exemple : opérateur ternaire de Java ré-écrit en if/else
  37. 37. GGAASSTTMM→→UUMMLL22 ++ PPrrooffiill Olivier Le Goaer @ GDR-GPL 2012
  38. 38. CCoonncclluussiioonn
  39. 39. LLaa rrééaalliittéé ddee llaa mmooddeerrnniissaattiioonn  Le rendez-vous manqué  Les prototypes se concentrent sur des technologies pas si veille que cela (Java, …) ou pas si répandues que cela (SmallTalk, ...)  Le véritable besoin de l'industrie porte sur les gros systèmes codés en COBOL (Banques) ou en C (Telecom)  La complexité des SI « dinosaures »  Passage à l'échelle : millions de lignes de code  Abstraction : faiblesse de structuration (green screen, flat files, ...), manque de vue synthétique sur le système  Connaissance : totalement perdue, dure à reconstituer Olivier Le Goaer @ GDR-GPL 2012
  40. 40. PPrreemmiieerr bbiillaann  Un roundtrip est nécessaire  Peu probable de passer du matériel patrimonial vers un modèle KDM d'un seul coup.  Récupérer la connaissance est difficile  Extraction de règles métiers  Extraction d'architecture  ...  La boite à outil ADM est sous-utilisée  ADM c'est bien plus que juste ASTM et KDM  KDM ce n'est pas que les aspects liés au code source Olivier Le Goaer @ GDR-GPL 2012
  41. 41. LLee ffoosssséé ddeess ggéénnéérraattiioonnss  Il n'est pas raisonnable d'essayer de traverser toutes les générations d'un coup Code peu structuré Olivier Le Goaer @ GDR-GPL 2012 Structuré (fonctions) Objet (données + fonctions) Service, Cloud (Distribué + ouvert) « Programming-any- which-way » « Programming -in-the-small » « Programming-in- the-large » « Programming-in- the-world »
  42. 42. QQuueessttiioonnss ??

×