SlideShare una empresa de Scribd logo
1 de 42
Descargar para leer sin conexión
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
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
Introduction eett pprroobblléémmaattiiqquuee
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
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
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 »
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
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)
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
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 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)
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
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
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 
......
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
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
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, ...)
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
AADDMM :: LLaa bbooîîttee àà oouuttiillss ddee ll''OOMMGG
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
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
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é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
ÉÉ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
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
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 » 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
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
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
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
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
LL''eexxeemmppllee ddee BBlluuAAggee RReevveerrssee
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
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
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 Exemple : 
opérateur ternaire 
de Java 
ré-écrit en if/else
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 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
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
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 »
QQuueessttiioonnss ??

Más contenido relacionado

La actualidad más candente

L’implantation d’un système de gestion documentaire
L’implantation d’un système de gestion documentaireL’implantation d’un système de gestion documentaire
L’implantation d’un système de gestion documentaireDidier Labonte
 
Elaboracao.e.analise.de.projetos
Elaboracao.e.analise.de.projetosElaboracao.e.analise.de.projetos
Elaboracao.e.analise.de.projetosFabiano Duarte
 
gerenciamento projetos
gerenciamento projetosgerenciamento projetos
gerenciamento projetosoleinik
 
Construire un system de management environnemental
Construire un system de management environnemental Construire un system de management environnemental
Construire un system de management environnemental Bouchaib Samawi
 
Qu’est ce qu’un projet ERP - Entreprise Resource Planning -
Qu’est ce qu’un  projet ERP - Entreprise Resource Planning -Qu’est ce qu’un  projet ERP - Entreprise Resource Planning -
Qu’est ce qu’un projet ERP - Entreprise Resource Planning -Sanae BEKKAR
 
Les push notifications, mode d’emploi 2015
Les push notifications, mode d’emploi 2015Les push notifications, mode d’emploi 2015
Les push notifications, mode d’emploi 2015Caroline Boscher
 
ATQ19 Boîte à outils pour nouveaux propriétaires de produits
ATQ19 Boîte à outils pour nouveaux propriétaires de produitsATQ19 Boîte à outils pour nouveaux propriétaires de produits
ATQ19 Boîte à outils pour nouveaux propriétaires de produitsDenis St-Michel
 
Gerenciamento de integração de projetos
Gerenciamento de integração de projetosGerenciamento de integração de projetos
Gerenciamento de integração de projetosJúnior Rodrigues
 
Système de management environnemental
Système de management environnementalSystème de management environnemental
Système de management environnementalBouchaib Samawi
 
Projet entrepreneuriat
Projet entrepreneuriatProjet entrepreneuriat
Projet entrepreneuriatKoffi KONAN
 
Gouvernance du Système d'Information Conférence Jean-Antoine Moreau
Gouvernance du Système d'Information Conférence Jean-Antoine MoreauGouvernance du Système d'Information Conférence Jean-Antoine Moreau
Gouvernance du Système d'Information Conférence Jean-Antoine MoreauJean-Antoine Moreau
 
O project model canvas e o guia pmbok
O project model canvas e o guia pmbokO project model canvas e o guia pmbok
O project model canvas e o guia pmbokJosé Finocchio Jr
 
Cours de gestion de Projet - Les Fondamentaux
Cours de gestion de Projet - Les FondamentauxCours de gestion de Projet - Les Fondamentaux
Cours de gestion de Projet - Les FondamentauxRémi Bachelet
 
Analyse du cycle de vie des matériaux de construction S.Belboom
Analyse du cycle de vie des matériaux de construction S.BelboomAnalyse du cycle de vie des matériaux de construction S.Belboom
Analyse du cycle de vie des matériaux de construction S.Belboomnmaricq
 
L'INNOVATION, UN PROCESSUS D'APPRENTISSAGE À DIFFÉRENTES ÉCHELLES ET DANS ...
L'INNOVATION, UN PROCESSUS D'APPRENTISSAGE À DIFFÉRENTES ÉCHELLES ET DANS ...L'INNOVATION, UN PROCESSUS D'APPRENTISSAGE À DIFFÉRENTES ÉCHELLES ET DANS ...
L'INNOVATION, UN PROCESSUS D'APPRENTISSAGE À DIFFÉRENTES ÉCHELLES ET DANS ...Marcel Lebrun
 
Méthodologie de projet présentation 2
Méthodologie de projet présentation 2Méthodologie de projet présentation 2
Méthodologie de projet présentation 2Gilles Ducloux
 

La actualidad más candente (20)

L’implantation d’un système de gestion documentaire
L’implantation d’un système de gestion documentaireL’implantation d’un système de gestion documentaire
L’implantation d’un système de gestion documentaire
 
Elaboracao.e.analise.de.projetos
Elaboracao.e.analise.de.projetosElaboracao.e.analise.de.projetos
Elaboracao.e.analise.de.projetos
 
gerenciamento projetos
gerenciamento projetosgerenciamento projetos
gerenciamento projetos
 
Construire un system de management environnemental
Construire un system de management environnemental Construire un system de management environnemental
Construire un system de management environnemental
 
Charte de projet
Charte de projetCharte de projet
Charte de projet
 
Qu’est ce qu’un projet ERP - Entreprise Resource Planning -
Qu’est ce qu’un  projet ERP - Entreprise Resource Planning -Qu’est ce qu’un  projet ERP - Entreprise Resource Planning -
Qu’est ce qu’un projet ERP - Entreprise Resource Planning -
 
Les push notifications, mode d’emploi 2015
Les push notifications, mode d’emploi 2015Les push notifications, mode d’emploi 2015
Les push notifications, mode d’emploi 2015
 
Formation Gestion de projet
Formation Gestion de projetFormation Gestion de projet
Formation Gestion de projet
 
ATQ19 Boîte à outils pour nouveaux propriétaires de produits
ATQ19 Boîte à outils pour nouveaux propriétaires de produitsATQ19 Boîte à outils pour nouveaux propriétaires de produits
ATQ19 Boîte à outils pour nouveaux propriétaires de produits
 
Gerenciamento de integração de projetos
Gerenciamento de integração de projetosGerenciamento de integração de projetos
Gerenciamento de integração de projetos
 
Système de management environnemental
Système de management environnementalSystème de management environnemental
Système de management environnemental
 
Projet entrepreneuriat
Projet entrepreneuriatProjet entrepreneuriat
Projet entrepreneuriat
 
Gouvernance du Système d'Information Conférence Jean-Antoine Moreau
Gouvernance du Système d'Information Conférence Jean-Antoine MoreauGouvernance du Système d'Information Conférence Jean-Antoine Moreau
Gouvernance du Système d'Information Conférence Jean-Antoine Moreau
 
O project model canvas e o guia pmbok
O project model canvas e o guia pmbokO project model canvas e o guia pmbok
O project model canvas e o guia pmbok
 
Cours de gestion de Projet - Les Fondamentaux
Cours de gestion de Projet - Les FondamentauxCours de gestion de Projet - Les Fondamentaux
Cours de gestion de Projet - Les Fondamentaux
 
Analyse du cycle de vie des matériaux de construction S.Belboom
Analyse du cycle de vie des matériaux de construction S.BelboomAnalyse du cycle de vie des matériaux de construction S.Belboom
Analyse du cycle de vie des matériaux de construction S.Belboom
 
Formation project management
Formation project managementFormation project management
Formation project management
 
L'INNOVATION, UN PROCESSUS D'APPRENTISSAGE À DIFFÉRENTES ÉCHELLES ET DANS ...
L'INNOVATION, UN PROCESSUS D'APPRENTISSAGE À DIFFÉRENTES ÉCHELLES ET DANS ...L'INNOVATION, UN PROCESSUS D'APPRENTISSAGE À DIFFÉRENTES ÉCHELLES ET DANS ...
L'INNOVATION, UN PROCESSUS D'APPRENTISSAGE À DIFFÉRENTES ÉCHELLES ET DANS ...
 
Méthodologie de projet présentation 2
Méthodologie de projet présentation 2Méthodologie de projet présentation 2
Méthodologie de projet présentation 2
 
Gestion de projets avec Microsoft Project
Gestion de projets avec Microsoft Project Gestion de projets avec Microsoft Project
Gestion de projets avec Microsoft Project
 

Destacado

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
 
Executable modeling & dynamic adaptation
Executable modeling & dynamic adaptationExecutable modeling & dynamic adaptation
Executable modeling & dynamic adaptationOlivier Le Goaër
 
Syntaxe concrète des DSL en IDM [avec Xtext]
Syntaxe concrète des DSL en IDM [avec Xtext]Syntaxe concrète des DSL en IDM [avec Xtext]
Syntaxe concrète des DSL en IDM [avec Xtext]Olivier 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
 
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
 
Adaptation d'exécution de modèles : vers des iDSML adaptables
Adaptation d'exécution de modèles : vers des iDSML adaptablesAdaptation d'exécution de modèles : vers des iDSML adaptables
Adaptation d'exécution de modèles : vers des iDSML adaptablesOlivier Le Goaër
 
Using ANTLR on real example - convert "string combined" queries into paramete...
Using ANTLR on real example - convert "string combined" queries into paramete...Using ANTLR on real example - convert "string combined" queries into paramete...
Using ANTLR on real example - convert "string combined" queries into paramete...Alexey Diyan
 
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
 
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
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de donnéesISIG
 
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...OCCIware
 
Collaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source ProjectsCollaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source ProjectsJordi Cabot
 
Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Pascal Roques
 
Model Transformation: A survey of the state of the art
Model Transformation: A survey of the state of the artModel Transformation: A survey of the state of the art
Model Transformation: A survey of the state of the artTom Mens
 

Destacado (20)

Android executable modeling: beyond android programming
Android executable modeling: beyond android programmingAndroid executable modeling: beyond android programming
Android executable modeling: beyond android programming
 
Executable modeling & dynamic adaptation
Executable modeling & dynamic adaptationExecutable modeling & dynamic adaptation
Executable modeling & dynamic adaptation
 
Syntaxe concrète des DSL en IDM [avec Xtext]
Syntaxe concrète des DSL en IDM [avec Xtext]Syntaxe concrète des DSL en IDM [avec Xtext]
Syntaxe concrète des DSL en IDM [avec Xtext]
 
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 !
 
Formation VBA Excel
Formation VBA ExcelFormation VBA Excel
Formation VBA Excel
 
Cours JavaScript
Cours JavaScriptCours JavaScript
Cours JavaScript
 
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
 
Adaptation d'exécution de modèles : vers des iDSML adaptables
Adaptation d'exécution de modèles : vers des iDSML adaptablesAdaptation d'exécution de modèles : vers des iDSML adaptables
Adaptation d'exécution de modèles : vers des iDSML adaptables
 
Programmation sous Android
Programmation sous AndroidProgrammation sous Android
Programmation sous Android
 
Using ANTLR on real example - convert "string combined" queries into paramete...
Using ANTLR on real example - convert "string combined" queries into paramete...Using ANTLR on real example - convert "string combined" queries into paramete...
Using ANTLR on real example - convert "string combined" queries into paramete...
 
ANTLR4 in depth
ANTLR4 in depthANTLR4 in depth
ANTLR4 in depth
 
Principe de fonctionnement du cryptage RSA
Principe de fonctionnement du cryptage RSAPrincipe de fonctionnement du cryptage RSA
Principe de fonctionnement du cryptage RSA
 
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...)
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de données
 
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
 
Collaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source ProjectsCollaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source Projects
 
Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0
 
OCL 2.5 plans
OCL 2.5 plansOCL 2.5 plans
OCL 2.5 plans
 
Model Transformation: A survey of the state of the art
Model Transformation: A survey of the state of the artModel Transformation: A survey of the state of the art
Model Transformation: A survey of the state of the art
 

Similar a Introduction à l'approche ADM de l'OMG

Initiation à UML: Partie 1
Initiation à UML: Partie 1Initiation à UML: Partie 1
Initiation à UML: Partie 1DIALLO Boubacar
 
MD Day 2009 - Cédric Vidal - 1.0
MD Day 2009 - Cédric Vidal - 1.0MD Day 2009 - Cédric Vidal - 1.0
MD Day 2009 - Cédric Vidal - 1.0Cedric Vidal
 
Analyse des besoins et gestion des projets besoin.pdf
Analyse des besoins et gestion des projets besoin.pdfAnalyse des besoins et gestion des projets besoin.pdf
Analyse des besoins et gestion des projets besoin.pdfJordaniMike
 
coursABGP-miage-1112-4p1.pdf
coursABGP-miage-1112-4p1.pdfcoursABGP-miage-1112-4p1.pdf
coursABGP-miage-1112-4p1.pdfHervKoya
 
Rattrapage uml
Rattrapage umlRattrapage uml
Rattrapage umlvangogue
 
André MORASSUT - GMIN30F
André MORASSUT - GMIN30FAndré MORASSUT - GMIN30F
André MORASSUT - GMIN30Fssuser2806ea
 
Business model integrateur_open_source
Business model integrateur_open_sourceBusiness model integrateur_open_source
Business model integrateur_open_sourcegtll_systematic
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicEmmanuel Hugonnet
 
Captronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteeCaptronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteePatrick MOREAU
 
cours-01-intro.pdf
cours-01-intro.pdfcours-01-intro.pdf
cours-01-intro.pdfNihedBahria2
 
Génie Logiciel - Unified modeling language
Génie Logiciel - Unified modeling languageGénie Logiciel - Unified modeling language
Génie Logiciel - Unified modeling languageJulien Schneider
 
Sparxent |NetworkD LANDesk User Group 2009 Présentation Leroy Merlin 26 Nov 2009
Sparxent |NetworkD LANDesk User Group 2009 Présentation Leroy Merlin 26 Nov 2009Sparxent |NetworkD LANDesk User Group 2009 Présentation Leroy Merlin 26 Nov 2009
Sparxent |NetworkD LANDesk User Group 2009 Présentation Leroy Merlin 26 Nov 2009Michelet
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...ENSET, Université Hassan II Casablanca
 
20070320 01 - Démarche qualité logicielle et outillage (SNCF)
20070320 01 - Démarche qualité logicielle et outillage (SNCF)20070320 01 - Démarche qualité logicielle et outillage (SNCF)
20070320 01 - Démarche qualité logicielle et outillage (SNCF)LeClubQualiteLogicielle
 
Introduction à l'agilité iut lyon 1 sept2013
Introduction à l'agilité   iut lyon 1 sept2013Introduction à l'agilité   iut lyon 1 sept2013
Introduction à l'agilité iut lyon 1 sept2013agnes_crepet
 
Agile Tour Clermont Ferrand - Michel Lejeune - La contractualisation agile
Agile Tour Clermont Ferrand - Michel Lejeune - La contractualisation agileAgile Tour Clermont Ferrand - Michel Lejeune - La contractualisation agile
Agile Tour Clermont Ferrand - Michel Lejeune - La contractualisation agilePig Acube
 
Qq001 g formation-introduction-a-ibm-rational-rhapsody
Qq001 g formation-introduction-a-ibm-rational-rhapsodyQq001 g formation-introduction-a-ibm-rational-rhapsody
Qq001 g formation-introduction-a-ibm-rational-rhapsodyCERTyou Formation
 
Livre blanc Quantmetry 2019 - IA en production, cycle de vie et dérive des mo...
Livre blanc Quantmetry 2019 - IA en production, cycle de vie et dérive des mo...Livre blanc Quantmetry 2019 - IA en production, cycle de vie et dérive des mo...
Livre blanc Quantmetry 2019 - IA en production, cycle de vie et dérive des mo...Guillaume MOCQUET
 

Similar a Introduction à l'approche ADM de l'OMG (20)

Initiation à UML: Partie 1
Initiation à UML: Partie 1Initiation à UML: Partie 1
Initiation à UML: Partie 1
 
CM Processus Méthodes
CM Processus MéthodesCM Processus Méthodes
CM Processus Méthodes
 
MD Day 2009 - Cédric Vidal - 1.0
MD Day 2009 - Cédric Vidal - 1.0MD Day 2009 - Cédric Vidal - 1.0
MD Day 2009 - Cédric Vidal - 1.0
 
Analyse des besoins et gestion des projets besoin.pdf
Analyse des besoins et gestion des projets besoin.pdfAnalyse des besoins et gestion des projets besoin.pdf
Analyse des besoins et gestion des projets besoin.pdf
 
coursABGP-miage-1112-4p1.pdf
coursABGP-miage-1112-4p1.pdfcoursABGP-miage-1112-4p1.pdf
coursABGP-miage-1112-4p1.pdf
 
Rattrapage uml
Rattrapage umlRattrapage uml
Rattrapage uml
 
André MORASSUT - GMIN30F
André MORASSUT - GMIN30FAndré MORASSUT - GMIN30F
André MORASSUT - GMIN30F
 
Business model integrateur_open_source
Business model integrateur_open_sourceBusiness model integrateur_open_source
Business model integrateur_open_source
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
 
Captronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteeCaptronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presentee
 
cours-01-intro.pdf
cours-01-intro.pdfcours-01-intro.pdf
cours-01-intro.pdf
 
Génie Logiciel - Unified modeling language
Génie Logiciel - Unified modeling languageGénie Logiciel - Unified modeling language
Génie Logiciel - Unified modeling language
 
Intro ihm
Intro ihmIntro ihm
Intro ihm
 
Sparxent |NetworkD LANDesk User Group 2009 Présentation Leroy Merlin 26 Nov 2009
Sparxent |NetworkD LANDesk User Group 2009 Présentation Leroy Merlin 26 Nov 2009Sparxent |NetworkD LANDesk User Group 2009 Présentation Leroy Merlin 26 Nov 2009
Sparxent |NetworkD LANDesk User Group 2009 Présentation Leroy Merlin 26 Nov 2009
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
20070320 01 - Démarche qualité logicielle et outillage (SNCF)
20070320 01 - Démarche qualité logicielle et outillage (SNCF)20070320 01 - Démarche qualité logicielle et outillage (SNCF)
20070320 01 - Démarche qualité logicielle et outillage (SNCF)
 
Introduction à l'agilité iut lyon 1 sept2013
Introduction à l'agilité   iut lyon 1 sept2013Introduction à l'agilité   iut lyon 1 sept2013
Introduction à l'agilité iut lyon 1 sept2013
 
Agile Tour Clermont Ferrand - Michel Lejeune - La contractualisation agile
Agile Tour Clermont Ferrand - Michel Lejeune - La contractualisation agileAgile Tour Clermont Ferrand - Michel Lejeune - La contractualisation agile
Agile Tour Clermont Ferrand - Michel Lejeune - La contractualisation agile
 
Qq001 g formation-introduction-a-ibm-rational-rhapsody
Qq001 g formation-introduction-a-ibm-rational-rhapsodyQq001 g formation-introduction-a-ibm-rational-rhapsody
Qq001 g formation-introduction-a-ibm-rational-rhapsody
 
Livre blanc Quantmetry 2019 - IA en production, cycle de vie et dérive des mo...
Livre blanc Quantmetry 2019 - IA en production, cycle de vie et dérive des mo...Livre blanc Quantmetry 2019 - IA en production, cycle de vie et dérive des mo...
Livre blanc Quantmetry 2019 - IA en production, cycle de vie et dérive des mo...
 

Más 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
 

Más 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
 

Introduction à l'approche ADM de l'OMG

  • 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. 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
  • 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. 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. 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. 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. 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. 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
  • 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. 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. 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. 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. 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. 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. 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. 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. AADDMM :: LLaa bbooîîttee àà oouuttiillss ddee ll''OOMMGG
  • 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. 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. VViissiioonn dd''eennsseemmbbllee ddee ll''OOMMGG Olivier Le Goaer @ GDR-GPL 2012
  • 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. ÉÉ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. 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. AASSTTMM eett llaannggaaggeess Olivier Le Goaer @ GDR-GPL 2012
  • 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. 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. 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. 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. 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
  • 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. 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. CCooddee ccoobbooll →→ SSAASSTTMM ccoobbooll Olivier Le Goaer @ GDR-GPL 2012 tt2m
  • 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. GGAASSTTMM→→UUMMLL22 ++ PPrrooffiill Olivier Le Goaer @ GDR-GPL 2012
  • 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. 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. 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 »