46
29 septembre 2011 Thierry Millan 1 Les modèles pourquoi faire ? Les modèles pourquoi faire ? Thierry Millan Thierry Millan Equipe MACAO Equipe MACAO

Thierry Millan - DevLOG

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Thierry Millan - DevLOG

29 septembre 2011 Thierry Millan 1

Les modèles pourquoi faire ? Les modèles pourquoi faire ?

Thierry MillanThierry MillanEquipe MACAOEquipe MACAO

Page 2: Thierry Millan - DevLOG

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

Page 3: Thierry Millan - DevLOG

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"

Page 4: Thierry Millan - DevLOG

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

Page 5: Thierry Millan - DevLOG

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

Page 6: Thierry Millan - DevLOG

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.

Page 7: Thierry Millan - DevLOG

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

Page 8: Thierry Millan - DevLOG

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…

Page 9: Thierry Millan - DevLOG

29 septembre 2011 Thierry Millan 9

MDA : TransformationMDA : Transformation

CIM

PIM

PIM

PDM

PDM

PSM

PSM

Code

Raffinement

RaffinementRaffin

emen

t

TissageTransformationM2M

M2T

Page 10: Thierry Millan - DevLOG

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

Page 11: Thierry Millan - DevLOG

29 septembre 2011 Thierry Millan 11

Les standards de l’IDMLes standards de l’IDM

• UMLUML• DSLDSL• XMIXMI• MOF/EcoreMOF/Ecore

• OCLOCL

Page 12: Thierry Millan - DevLOG

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)

Page 13: Thierry Millan - DevLOG

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]

Page 14: Thierry Millan - DevLOG

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

Page 15: Thierry Millan - DevLOG

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

Page 16: Thierry Millan - DevLOG

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

Page 17: Thierry Millan - DevLOG

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

Page 18: Thierry Millan - DevLOG

29 septembre 2011 Thierry Millan 18

XMIXMI

Personne

- nom- prenom

Page 19: Thierry Millan - DevLOG

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

Page 20: Thierry Millan - DevLOG

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

Page 21: Thierry Millan - DevLOG

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

Page 22: Thierry Millan - DevLOG

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

Page 23: Thierry Millan - DevLOG

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

Page 24: Thierry Millan - DevLOG

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…

Page 25: Thierry Millan - DevLOG

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 ?

Page 26: Thierry Millan - DevLOG

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

Page 27: Thierry Millan - DevLOG

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

Page 28: Thierry Millan - DevLOG

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…

Page 29: Thierry Millan - DevLOG

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…

Page 30: Thierry Millan - DevLOG

29 septembre 2011 Thierry Millan 30

Thématiques émergeantesThématiques émergeantes

IDM et les systèmes d’informationIDM et les systèmes d’informationEtl

Page 31: Thierry Millan - DevLOG

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)

Page 32: Thierry Millan - DevLOG

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 ?

Page 33: Thierry Millan - DevLOG

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)

Page 34: Thierry Millan - DevLOG

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

Page 35: Thierry Millan - DevLOG

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

Page 36: Thierry Millan - DevLOG

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…

Page 37: Thierry Millan - DevLOG

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

Page 38: Thierry Millan - DevLOG

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 ?

Page 39: Thierry Millan - DevLOG

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

Page 40: Thierry Millan - DevLOG

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

Page 41: Thierry Millan - DevLOG

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

Page 42: Thierry Millan - DevLOG

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

Page 43: Thierry Millan - DevLOG

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…

Page 44: Thierry Millan - DevLOG

29 septembre 2011 Thierry Millan 44

QueQuestiostionsns

Merci de votre attentionMerci de votre attention

Page 45: Thierry Millan - DevLOG

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

Page 46: Thierry Millan - DevLOG

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