thierry millan - devlog
TRANSCRIPT
29 septembre 2011 Thierry Millan 1
Les modèles pourquoi faire ? Les modèles pourquoi faire ?
Thierry MillanThierry MillanEquipe MACAOEquipe MACAO
29 septembre 2011 Thierry Millan 2
L’IDM : qu’est-ce que c’est ?L’IDM : qu’est-ce que c’est ?
• Principes fondateursPrincipes fondateurs• MotivationsMotivations• MDAMDA
29 septembre 2011 Thierry Millan 3
Approche Ingénierie Dirigée par les Approche Ingénierie Dirigée par les modèles (IDM/MDE)modèles (IDM/MDE)
EvolutionEvolutionProgrammation orientée objets
Programmation orientée composants
Programmation orientée modèles
Modèle = "Citoyen de première classe"Modèle = "Citoyen de première classe"
29 septembre 2011 Thierry Millan 4
Qu’est-ce que l’approche IDM ?Qu’est-ce que l’approche IDM ?
Le monde réel
Le modèle
Abstrait
Abstrait
La description dumodèle
29 septembre 2011 Thierry Millan 5
méta-modèle
modèle
"le monde réel"
méta-métamodèle
Le MOF (Meta Object Facility)
Les méta-modèles
Les modèles
Différentes utilisationsde ces modèles
M0
M1
M2
MM33
IDM : Une architecture IDM : Une architecture à 4 niveauxà 4 niveaux
29 septembre 2011 Thierry Millan 6
IDM : MotivationIDM : Motivation
Nous ne voulons plus financer le portage de notre système informatique vers une nouvelle plate-forme (Java, CORBA, HTML, XML, .Net, J2EE, etc) alors que notre modèle métier reste stable.
Tout ce que nous pouvons accepter c'est de payer une dernière fois pour la construction de modèles abstraits de notre métier et des services associés, modèles qui nous garantiront contre l'obsolescence technologique des plateformes.
Tout nouveau fournisseur de plateforme sera prié de nous livrer en même temps que sa plateforme les outils de transformation permettant de générer, vers cette plateforme, à partir des modèles neutres de métier et de service.
29 septembre 2011 Thierry Millan 7
IDM : MotivationIDM : Motivation
Evolution des technologiesEvolution des technologiesEJB, Dot Net, Androïd, Eclipse,…
Séparation métier/architectureSéparation métier/architectureSéparer ce qui est pérenne de ce qui évolue vite
Stabilité des algorithmesStabilité des algorithmes
Capitalisation du savoir faire métierCapitalisation du savoir faire métierPatrons de conception
Objet métier
Il faut s’abstraire du code architectureIl faut s’abstraire du code architecture
29 septembre 2011 Thierry Millan 8
MDA : FondementsMDA : Fondements
Séparation des préoccupationsSéparation des préoccupationsModèles indépendants de calculs (CIM)
Modèles indépendants des plates-formes (PIM)
Modèles de description des plates-formes (PDM)
Modèles spécifiques aux plates-formes (PSM)
Transformations de modèlesTransformations de modèlesDes modèles PIM vers les modèles PSM
Des modèles PSM vers le code
Vers des modèles productifs…Vers des modèles productifs…
29 septembre 2011 Thierry Millan 9
MDA : TransformationMDA : Transformation
CIM
PIM
PIM
PDM
PDM
PSM
PSM
Code
Raffinement
RaffinementRaffin
emen
t
TissageTransformationM2M
M2T
29 septembre 2011 Thierry Millan 10
QVTQVT
Standard de l’OMGStandard de l’OMGConstituantsConstituants
RequêteFiltrer et sélectionner des éléments d’un modèle
VuesVue = modèle déduit d’un autre pour en révéler des aspects spécifiques.
TransformationQVT-Relation : langage déclaratif (Prolog)QVT-Core : la sémantique des concepts déclaratifs (Pascal, C)QVT-Operational : langage hybride
Structure déclarative à base de règles Utilisation d'expressions impératives
29 septembre 2011 Thierry Millan 11
Les standards de l’IDMLes standards de l’IDM
• UMLUML• DSLDSL• XMIXMI• MOF/EcoreMOF/Ecore
• OCLOCL
29 septembre 2011 Thierry Millan 12
Référence à des standardsRéférence à des standards
ModéliserModéliserUML (Unified Modeling Language)
DSL (Domain Specific Language)
Méta-modéliserMéta-modéliserMOF (Meta Object Facility de l’OMG)
Ecore (Eclipse)
Echanger les modèles et des méta-modèlesEchanger les modèles et des méta-modèlesXMI (XML MetaData Interchange)
Naviguer et interroger les modèles et méta-modèlesNaviguer et interroger les modèles et méta-modèlesOCL (Object Constraint Language)
29 septembre 2011 Thierry Millan 13
UMLUML
loop
:A :B
Service 1
Service 2
Service 3
[condition]
sd nom
APaquetage 1
Paquetage 2
Paquetage
B
A
Cas 2 Cas 3
Cas 1
A1 A2 Evénement [Garde]
29 septembre 2011 Thierry Millan 14
Diagrammed'objets
Diagrammede composants
Diagrammede classes
Diagrammede déploiement
Diagrammede collaboration
Diagramme destructure interne
Diagrammede Structure Composite
Diagrammesstructurels
Diagrammede cas d’utilisation
Diagrammed’états-transitions
Diagrammed’activités
Diagramme deCommunication Diagramme de
communication
Diagramme deTiming
Diagramme devue d'ensembledes interactions
Diagrammedes interactions
Diagrammescomportementaux
DiagrammesUML 2.0
UML : Plusieurs vues…UML : Plusieurs vues…
Diagrammed’objets
Diagrammede paquetages
Diagrammede séquence
Diagrammede timing
Diagramme devue d’ensembledes interactions
Diagrammede structures composites
29 septembre 2011 Thierry Millan 15
DSLDSL
Utilisation de tournures idiomatiques au niveau Utilisation de tournures idiomatiques au niveau d'abstraction du domaine traitéd'abstraction du domaine traité
Proche des experts car logique métier
Documentation du code simplifiéeDocumentation du code simplifiée
Amélioration de la qualité, la productivité, la Amélioration de la qualité, la productivité, la fiabilité, la maintenabilité, la portabilité et les fiabilité, la maintenabilité, la portabilité et les possibilités de réutilisationpossibilités de réutilisation
Validation au niveau du domaineValidation au niveau du domaine
Un domaine = un langage beaucoup de langagesUn domaine = un langage beaucoup de langages
29 septembre 2011 Thierry Millan 16
MOF - EcoreMOF - Ecore
Méta-méta-modèleMéta-méta-modèleModèle des concepts d’un méta-modèle (d’un langage)
Définition d’une syntaxe et d’une sémantique
Concepts pour définir tout méta-modèleConcepts pour définir tout méta-modèleDiagramme de classes pour la syntaxe abstraite
Règles OCL pour la sémantique
Vision OMG : noyau d’UMLVision OMG : noyau d’UMLMéta-modèle UML (première expérience) conforme au MOF
Description d’un méta-modèle par conformité au MOF
29 septembre 2011 Thierry Millan 17
Un fragment du méta-modèle Un fragment du méta-modèle moléculemolécule
MolecularGroup
MolecularEntity
contains
17
Atom
29 septembre 2011 Thierry Millan 18
XMIXMI
Personne
- nom- prenom
29 septembre 2011 Thierry Millan 19
OCLOCL
Langage déclaratif typéLangage déclaratif typéValeurs, expressions
Sans effet de bord
Spécification formelle d’un modèle UMLSpécification formelle d’un modèle UMLPré-conditions et post-conditions de méthode
Invariants de classe
Sémantique d’UMLSémantique d’UMLRègles de bonne formation des modèles UML (WFR)
Vérification statique de modèles UML
29 septembre 2011 Thierry Millan 20
OCL : ExemplesOCL : Exemples
Pile
- sommet : entier
+ empiler (e : E)+ dépiler ()
context Pile inv :
self.sommet >= 0
context Pile::dépiler()
pre : self.sommet > 0
post : self.sommet = self.sommet@pre - 1
29 septembre 2011 Thierry Millan 21
Les outils de l’IDMLes outils de l’IDM
• Outils commerciauxOutils commerciaux• Outils opensourcesOutils opensources• TopcasedTopcased• Critères de choixCritères de choix
29 septembre 2011 Thierry Millan 22
Quelques Outils CommerciauxQuelques Outils Commerciaux
OffreOffre EditeurEditeur MM-ModeleMM-Modele M2TM2T M2MM2MIntégrationIntégration
IDEIDEModeleurModeleur
Blu AgeBlu Age Netfective Netfective TechnologyTechnology
MOF – MOF – EcoreEcore JETJET QVTQVT EclipseEclipse OuvertOuvert
MDWorkbenchMDWorkbench SodiusSodius EcoreEcore ProprePropreQVTQVT
ATLATLEclipseEclipse OuvertOuvert
Mia-StudioMia-Studio Mia SoftwareMia Software MOF – MOF – EcoreEcore ProprePropre
ProprePropre
ATLATLEclipseEclipse OuvertOuvert
RSMRSM
RSARSAIBMIBM EcoreEcore JETJET ProprePropre
Eclipse/Eclipse/
RSARSAOuvertOuvert
DSL ToolsDSL Tools MicrosoftMicrosoftMicrosoftMicrosoft
DSLDSLProprePropre Visual StudioVisual Studio Visual StudioVisual Studio
ObjecteeringObjecteering ObjecteeringObjecteering ?? ProprePropre ProprePropreEclipseEclipse
Visual S.Visual S.ObjecteeringObjecteering
29 septembre 2011 Thierry Millan 23
Quelques Outils OpensourceQuelques Outils Opensource
Acceleo Pro est la version commerciale de Acceleo incluant le M2MAcceleo Pro est la version commerciale de Acceleo incluant le M2M
OffreOffre EditeurEditeur MM-ModeleMM-Modele M2TM2T M2MM2MIntégrationIntégration
IDEIDEModeleurModeleur
AcceleoAcceleo ObeoObeo EcoreEcore ProprePropre EclipseEclipse OuvertOuvert
AndroMDA 3.xAndroMDA 3.x MOFMOF VelocityVelocity OuvertOuvertMagicDrawMagicDraw
Poseidon Poseidon
Eclipse M2T & M2MEclipse M2T & M2M EclipseEclipse EcoreEcore JETJET ATL QVTATL QVT EclipseEclipse OuvertOuvert
TopcasedTopcased TopcasedTopcased EcoreEcore OuvertOuvert OuvertOuvert EclipseEclipse OuvertOuvert
ATLATL Univ. De Univ. De NantesNantes EcoreEcore ProprePropre ProprePropre EclipseEclipse OuvertOuvert
KermetaKermeta IRISAIRISA EcoreEcore ProprePropre ProprePropre EclipseEclipse OuvertOuvert
SmarQVTSmarQVT France France TelecomTelecom EcoreEcore ProprePropre ProprePropre EclipseEclipse OuvertOuvert
29 septembre 2011 Thierry Millan 24
TopcasedTopcased
Plate-forme pour le développement de systèmesPlate-forme pour le développement de systèmesSpécifier des équipements aux niveaux logiciels et de matérielsDétailler les spécifications logicielles pour des systèmes à dominante logicielle
Processus homogène outilléProcessus homogène outilléMettre en oeuvre un processus de la spécification à l’outil final en ayant les bon outils
Editeur de modèles et de méta-modèlesEditeur de transformations et les exécuterProuveur et simulateursEditeur de code…
29 septembre 2011 Thierry Millan 25
Cinq questions préalablesCinq questions préalables
Quelles transformations ?Quelles transformations ?
Quel langage de transformation ?Quel langage de transformation ?
Quelle approche de génération ?Quelle approche de génération ?
Quelle intégration dans l’environnement de Quelle intégration dans l’environnement de génération ?génération ?
Solution clef en main ou à façon ?Solution clef en main ou à façon ?
29 septembre 2011 Thierry Millan 26
Critères de choixCritères de choix
Quel type d’outil et quelles contraintesQuel type d’outil et quelles contraintesOutils commerciaux :
Arrêt du support de l’outil
Rachat de l’entreprise
Outils opensources :Dynamisme de la communauté
Coût induit
Service offerts autour de l’outilService offerts autour de l’outil
29 septembre 2011 Thierry Millan 27
L’IDM mais pour quelles thématiques ?L’IDM mais pour quelles thématiques ?
• En vogueEn vogue• EmergeantesEmergeantes• DécroissantesDécroissantes• A explorerA explorer
29 septembre 2011 Thierry Millan 28
Thématiques en vogueThématiques en vogue
IDM et les méthodes formelles (model checking)IDM et les méthodes formelles (model checking)Transformation de modèles semi-formels vers des modèles formels : SPaCIFY, VerifME
Processus de développement orientés modèlesProcessus de développement orientés modèlesDOMINO, Topcased…
Génération de code à partir des modèlesGénération de code à partir des modèlesScade, Gene-auto, SPaCIFY…
29 septembre 2011 Thierry Millan 29
Thématiques en vogueThématiques en vogue
TraçabilitéTraçabilitéTopcased, VerifME…
Outillage IDMOutillage IDMMDT::Papyrus, TOPCASED, ATL, Kermeta…
MDWorkbench, Aceleo…
29 septembre 2011 Thierry Millan 30
Thématiques émergeantesThématiques émergeantes
IDM et les systèmes d’informationIDM et les systèmes d’informationEtl
…
29 septembre 2011 Thierry Millan 31
Thématiques en décroissanceThématiques en décroissance
L’idée originale du MDA L’idée originale du MDA Conception d’application par transformations successives en partant d’un PIM et d’un PDM et fournissant un PSM
Rien dans le GDR GPL
Rien dans les projets étudiés
Une allusion dans les présentations des journées NEPTUNE (Approche iFEST)
29 septembre 2011 Thierry Millan 32
Thématiques à explorerThématiques à explorer
IDM et les applications médicalesIDM et les applications médicalesProjet allemand :
Freeband AWARENESS project
Projet américain : The Open Health Tools Platform Project – A Model Driven Engineering System
Et en France ?
29 septembre 2011 Thierry Millan 33
IDM : Ce qu’en pensent les industriels…IDM : Ce qu’en pensent les industriels…et les autreset les autres
Sondage lors des journées NEPTUNE 2011Sondage lors des journées NEPTUNE 2011CEA, Airbus, Astrium, ANR, Thales, ESA, Sodius, CEA, Airbus, Astrium, ANR, Thales, ESA, Sodius,
SNCF, Jaxio, TrialogSNCF, Jaxio, Trialog
Synthèse de A. Rossignol (Astrium) et Synthèse de A. Rossignol (Astrium) et E. Najm (Telecom ParisTech)E. Najm (Telecom ParisTech)
29 septembre 2011 Thierry Millan 34
Points forts / points acquisPoints forts / points acquis
Améliore sensiblement la qualité des développementsAméliore sensiblement la qualité des développementsDocumentation
intégration
Aide à guider les développements
Partage et pérennisation du savoir métier
Formalisation de la connaissance
Détection des erreurs au plus tôt dans le cycle de développement Améliorer la fiabilité et la robustesse des applications produites
IDM commence à bien fonctionner sur des processus simples
29 septembre 2011 Thierry Millan 35
Points forts / points acquisPoints forts / points acquis
MaturitéMaturitéProduits
SCADE, Rhapsody, Simulink, …
Existence de success stories
Dynamique de plus en plus forteInformatique de gestion
Grands intégrateurs
Premiers retours d’expériences préliminaires positifsAriane 5 ME,
Démonstrateur pour Astrium Space Transportation
29 septembre 2011 Thierry Millan 36
Points forts / points acquisPoints forts / points acquis
Retour sur investissementRetour sur investissementPlus de temps passé sur des activités à hautes valeurs ajoutéesAutomatisation des transformations et des vérificationsRéduction des coûts de développement par une
Analyse des erreurs Meilleure communication entre équipes
Réutilisation d’existantApproche reconnue et formation des ingénieurs en cours
Couverture de nombreux domaines Couverture de nombreux domaines SystèmeSystème à prédominante logicielLogicielGénération de codeSystème numérique…
29 septembre 2011 Thierry Millan 37
Points faibles ou Points faibles ou d’améliorationsd’améliorations
FormalismeFormalismeFaiblesse de la prise en compte des propriétés non-fonctionnelles dans l’IDM
Debug de modèle
Trop de formalismes développésRéduire les représentations possible et standardiser d’avantage pour établir des passerelles entre ces notations
Approche souvent peu formelle
Certains domaines non encore couverts, ou de manière non satisfaisante
système temps réel critique
29 septembre 2011 Thierry Millan 38
Points faibles ou Points faibles ou d’améliorationsd’améliorations
OutillageOutillageUtilisation des outils d’analyse en milieu industriel
Génération de code
Manque de maturité de certains outils
Réfléchir à des outils gommant le caractères abscond de l’IDM
Visualisation 3D
Simulateur de modèles…
Pérennité des outils sur le très long terme
Interopérabilité des outilsBus de modèles ?
29 septembre 2011 Thierry Millan 39
Points faibles ou Points faibles ou d’améliorationsd’améliorations
Humain et formationHumain et formationFormation écoles et universités à améliorerFrein psychologique :
Modification des habitudes de développement
Intégration et transformation de modèles non Intégration et transformation de modèles non encore satisfaisants encore satisfaisants
Passage à l’échellePassage à l’échelleIDM reste difficile pour des développements complexesGros volume de données
Partage de modèles => travail sur des parties de modèles
29 septembre 2011 Thierry Millan 40
Verrous majeurs pour une Verrous majeurs pour une plus large adoptionplus large adoption
Formalisme et supportsFormalisme et supportsPérennité des outils sur le très long terme
Coûts des licencesPrédominance d’IBM dans les outils de génie logiciel
Importance des outils open-source
Outils graphiques utilisables avec des ponts/passerelles entre les notation les plus utilisées
Besoin d’outils métier
Définir un sous ensemble de et fournir des outils adéquates
Expertises autour des technologies Eclipse/EMF, langages et méta-modèles
29 septembre 2011 Thierry Millan 41
Verrous majeurs pour une Verrous majeurs pour une plus large adoptionplus large adoption
Passage à l’échelle et à une meilleure industrialisationPassage à l’échelle et à une meilleure industrialisationManipulation de gros modèles
Réservé aux gros projets de type Défense, Automobile ou Télécom (ROI)
Complexité de mise en œuvre sur de grosses équipes
Simplification de l’utilisation, de la mise en place et de l’utilisation des solutions IDM
Travail collaboratif gestion de différentes versions de modèles
Cas d’étude industriel qui utilise l’IDM de bout en bout du développement Utilisation dès les phases préliminaires jusqu’à la création de l’implémentation
PME/PMI semble peu utilisatrice de l’IDM ?
Disposer d’outils orientés métier (simples !!!) notamment pour les phases d’ingénierie système
29 septembre 2011 Thierry Millan 42
Verrous majeurs pour une Verrous majeurs pour une plus large adoptionplus large adoption
HumainHumainNiveau trop faible des informaticiens dans l’industrie
En informatique théorique et en particulier du fait que l’informatique est adossé aux mathématiques
Demande des profils de haut niveau Manipulation de graphes Abstractions multi-domaines Méthodes formelles…
Barrage culturel, psychologique, programmation = acquis social, confort,
Oblige à faire trop d’investissement intellectuel
29 septembre 2011 Thierry Millan 43
Facteur de croissance et Facteur de croissance et décroissancedécroissance
IndustrieIndustrieSoutien constant et appuyé
Informatique de gestion
Conservation de « souveraineté technologique »
AcadémiqueAcadémiqueINRIA
CNRS
France et Allemagne
L’IDM à l’étrangerL’IDM à l’étrangerUSA
Chine, Brésil, Inde…
29 septembre 2011 Thierry Millan 44
QueQuestiostionsns
Merci de votre attentionMerci de votre attention
29 septembre 2011 Thierry Millan 45
SourcesSources
IDMIDMCours de C. Percebois : « Ingénierie du logiciel dirigée par les modèles » (Licence SIL qualité – IUT « A » UPS)
Cours de J.-M. Bruel : « IDM concepts de base » (Master NTIE - l’UTM)
Cours F.-Y. Villemin : « L'architecture dirigée par les modèles (MDA) » (CNAM Paris)
http://deptinfo.cnam.fr/Enseignement/CycleSpecialisation/MAI/Doc/MDA11.pdf
Cours B. Combemale, X. Crégut, M. Pantel : « Transformation de Modèles :Principes, Standards et Exemples »
http://combemale.perso.enseeiht.fr/teaching/metamodeling0708/IDM-Transfo_v1.1.pdf
29 septembre 2011 Thierry Millan 46
SourcesSources
Méta-modèle des moléculesMéta-modèle des moléculeshttp://www.avt.rwth-aachen.de/AVT/fileadmin/files/Service_software/Software_Simulation/Material.pdf
OutilsOutilshttp://neptune.irit.fr/images/files/Neptune2009/Transparents/P10_TMillan.pdfTopcased
http://gforge.enseeiht.fr/docman/view.php/52/3627/TOPCASED-presentation-2h.pdf
Journées GDR-GPLJournées GDR-GPLPrésentation des résultats des journées NEPTUNE
http://neptune.irit.fr/images/files/GDR-GPL2011/neptune-2011-gdr.pdf