Ingénierie des modèles



Documents pareils
openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

Extensions à la formation. Laurent Pérochon, avril 2008, RMT Modelia, modélisation conceptuelle, formation UML, INRA Castanet Tolosan

Générer du code à partir d une description de haut niveau

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur Le 23 novembre 2012

Ingénierie des Modèles. Méta-modélisation

Etat de l art sur le développement logiciel dirigé par les modèles.

La démarche MDA. Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)*

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

MEMOIRE. Présenté à L École Nationale d Ingénieurs de Sfax. en vue de l obtention du MASTÈRE INFORMATIQUE NTSID. Par.

Environnement logiciel basé sur les modèles pour la conception collaborative de produit

Modelio by Modeliosoft

CC30 Certificat de compétence Conception, développement et animation de sites Web

Méthodes d évolution de modèle produit dans les systèmes du type PLM

Visual Paradigm Contraintes inter-associations

MDA (Model Driven Architecture) principes et états de l art.

Objecteering. La convergence SOA, UML2, BPMN, EA, pour le développement guidé par le modèle.

IFT2255 : Génie logiciel

Architecture Reconfigurable Hétérogène à Gestion Hiérarchique Distribuée pour la Reconfiguration et la Prise de Décision

Devenez un véritable développeur web en 3 mois!

Cours en ligne Développement Java pour le web

Synergies entre Artisan Studio et outils PLM

Glassfish dans le milieu médical. Sun Aquarium Paris 26 Juin 2009 Jacky Renno

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

THÈSE. Présentée à. L Université Paris VIII. Pour obtenir le grade de DOCTEUR DE L UNIVERSITE DE PARIS VIII. Spécialité INFORMATIQUE

Elaboration de processus de développements logiciels spécifiques et orientés modèles : application aux systèmes à évenements discrets

Eclipse et ses plugins de modélisation (EMF GEF GMF). Entrée en matière. par. Jacques Barzic. Avertissement

UML est-il soluble dans les méthodes agiles?

THESE. DOCTORAT EN SCIENCES APPLIQUEES Spécialité : Informatique

Développement d un interpréteur OCL pour une machine virtuelle UML.

Analyse,, Conception des Systèmes Informatiques

RTDS G3. Emmanuel Gaudin

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Génie logiciel (Un aperçu)

Projet de développement

L approche Model-Driven Architecture, crédible pour développer un progiciel de

ÉCOLE DE TECHNOLOGIE SUPÉRIEURE UNIVERSITÉ DU QUÉBEC THÈSE PRÉSENTÉE À L ÉCOLE DE TECHNOLOGIE SUPÉRIEURE

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

Mineure Architectures Orientées Services SOA Business Process Modeling (BPM) Mineure SOA. Business Process Modeling (BPM)

Approche dirigée par les modèles pour la génération d une chorégraphie distribuée à partir d un processus d orchestration BPMN

Projet Active Object

En vue de l obtention du. Discipline : Informatique. Présentée et soutenue par Mohamed HADJ KACEM. Le Jeudi 13 Novembre 2008

Conception, architecture et urbanisation des systèmes d information

Vérifier la qualité de vos applications logicielle de manière continue

Spécification et transformation de langages de points de vue des systèmes répartis ouverts

THESE. Préparée dans le cadre d une cotutelle entre l UNIVERSITÉ DE GRENOBLE et l UNIVERSITÉ POLYTECHNIQUE DE BUCAREST

Patrons de Conception (Design Patterns)

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors

EXPERTS EN DÉVELOPPEMENT ET MODERNISATION DE LOGICIELS WEB ET MOBILES

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Introduction à la modélisation

Christian Soutou UML 2. pour les. bases de données. Avec 20 exercices corrigés. Groupe Eyrolles, 2007, ISBN :

Le génie logiciel. maintenance de logiciels.

Retour d expériences avec UML

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Description de la formation

Business Process Modeling (BPM)

Refonte front-office / back-office - Architecture & Conception -

Vérifica(on et Valida(on de Business Process. Ang Chen et Levi Lúcio

Sommaire. Systèmes d Exploitation Intégration Sage 100 Sage CRM Disponibilité Client Bases de données... 3

LICENCE PROFESSIONNELLE SYSTEMES INFORMATIQUES & LOGICIELS

IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance des logiciels

DotNet. Plan. Les outils de développement

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

INDUSTRIALISATION ET RATIONALISATION

PHP. Performances. Audit et optimisation LAMP. Julien Pauli. Cyril Pierre de Geyer. Guillaume Plessis. Préface d Armel Fauveau

Méthodologies de développement de logiciels de gestion

PHP 5. avancé. 3 e édition. Eric Daspet. Cyril Pierre de Geyer. Préface de Damien Seguy

analyse et pérennise votre patrimoine informationnel

1. Plan. 1. Plan Information essentielles...2

Offre Nouvelles Technologies (NTIC)

outil stratégique du dialogue

Industrialiser la chaîne complète de fabrication 1ère partie - Les bénéfices de la solution logicielle IBM VisualAge Pacbase / Rational

Groupe Eyrolles, 2004 ISBN :

Une architecture pour les transformations de modèles et la restructuration de modèles uml

Modèles système, modèles logiciel et modèles de code dans les applications spatiales

Conception fonctionnelle de services d entreprise fondée sur l alignement entre cœur de métier et système d information

CQP Développeur Nouvelles Technologies (DNT)

Un grand merci aux autres membres du jury d avoir accepter et pris le temps d évaluer ma thèse.

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

C est quoi le SWAT? Les équipes décrites par James Martin s appellent SWAT : Skilled With Advanced Tools.

Intégration d un ERP guidée par les modèles

OFF OF R F E R E DE D E S TA T G A E G 02/04/09

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Catalogue des Formations Techniques

Description de l implantation dans le centre d examen (nom du service ou de l outil et caractéristiques techniques)

Meta Object Facility. Plan

Le Guide Pratique des Processus Métiers

FreeMind. Freeplane XMind. 2 e édition. Bien démarrer avec le Mind Mapping. . Groupe Eyrolles, 2010, ISBN :

PROSOP : un système de gestion de bases de données prosopographiques

NFP111 Systèmes et Applications Réparties

Master CCI. Compétences Complémentaires en Informatique. Livret de l étudiant

Commentaires du testeur

Introduction du test dans la modélisation par aspects

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

WEB15 IBM Software for Business Process Management. un offre complète et modulaire. Alain DARMON consultant avant-vente BPM

BI2 : Un profil UML pour les Indicateurs Décisionnels

Chapitre I : le langage UML et le processus unifié

[COMPTE RENDU SEMAINE DU 21 AU 27 JANVIER] Client

Mercredi 15 Janvier 2014

Transcription:

14 Janvier 2008 Ecole Centrale

Plan Mise en bouche... Un modèle? 1 Mise en bouche... Un modèle? 2 MDA? 3 UML Eclipse 4

Plan Mise en bouche... Un modèle? 1 Mise en bouche... Un modèle? 2 MDA? 3 UML Eclipse 4

A quoi ça sert? Mise en bouche... Un modèle? diagramme de classe

Couche présentation Mise en bouche... Un modèle? un template smarty par écran un template smarty par objet métier un contrôleur par écran un index : point d entrée des requêtes

Code généré Mise en bouche... Un modèle? AddAuthorCtrl.php5

Couche métier/données Mise en bouche... Un modèle? une classe d accès par type d objet une classe de DTO et de proxy par objet métier mapping PearDB un script sql

Code généré Mise en bouche... Un modèle? BookDAO.php5

Présentation Mise en bouche... Un modèle? 1 Partie 1 :, MDA et UML Qu est-ce qu un modèle? Le MDA et sa mise en oeuvre. Technologies 2 Partie 2 : Méta-modèles Qu est-ce qu un méta-modèle? Mise en oeuvre

Obeo Mise en bouche... Un modèle? Jeune entreprise nantaise Démarche outillée de développement informatique. Édite une plateforme de développement dirigé par les modèles Collaboration avec la recherche académique

Obeo et l OpenSource Mise en bouche... Un modèle? Acceleo : générateur de code nouvelle génération Au sein d Eclipse : EMF Compare (lead ) SCA Composite modeler (lead Stéphane Drapeau) ATL (William Piers) QVT Relations (lead Quentin Glineur) Alliance Libre : groupement d entreprises libristes

Problématiques Mise en bouche... Un modèle? Systèmes logiciels volumineux, complexes et hétérogènes. Compréhension/Analyse difficile Maîtrise de nombreuses technologies spécialisées Évolution des technologies Refonte et migration «de zero» Solution Permettre une meilleure maîtrise des développements en modélisant et en automatisant ce qui peut l être.

Plan Mise en bouche... Un modèle? 1 Mise en bouche... Un modèle? 2 MDA? 3 UML Eclipse 4

Qu est-ce qu un modèle? Mise en bouche... Un modèle? Définition pour un concept ou objet qui est la représentation d une autre (le «modèle réduit» ou maquette, le «modèle» du scientifique), à construire ou déjà existant. pour un objet réel dont on cherche à donner une représentation, qu on cherche à imiter (exemple : le «modèle» du peintre, le «modèle» que constitue le maître pour le disciple).

Plusieurs notions Mise en bouche... Un modèle? Abstraction : on représente un système en enlevant toute l information qui ne nous intéresse pas. Simulation : on teste une construction pour évaluer sa qualité. Formalisme : la réprésentation est basée sur un certain nombre de règles.

Un système Mise en bouche... Un modèle? Le bassin d Arcachon

Un modèle Mise en bouche... Un modèle? La carte du bassin

Un autre modèle Mise en bouche... Un modèle? René Magritte

Objet de la représentation Mise en bouche... Un modèle? Raison d être du modèle Simplifier pour ne s attacher qu à une préoccupation donnée. Corollaire Une modélisation n a de sens que si l on indique dans un premier temps, quelle est son objectif et à quelle préoccupation elle s attache. Dans le cas contraire il ne s agit que de boxologie a. a Désigne la science des boîtes cf Henri Habrias

Un «vieux» modèle Mise en bouche... Un modèle? Représentation de l Egypte anthique

Un modèle mathématique Mise en bouche... Un modèle? Modèle mathématique de capteur SYCLOP a a Cyril CAUCHOIS : IUT Amiens

Un modèle informatique Mise en bouche... Un modèle? Modèle Ecore

Un diagramme de cas d utilisation Mise en bouche... Un modèle?

Un diagramme de séquence Mise en bouche... Un modèle?

Plan MDA? 1 Mise en bouche... Un modèle? 2 MDA? 3 UML Eclipse 4

Plan MDA? 1 Mise en bouche... Un modèle? 2 MDA? 3 UML Eclipse 4

OMG MDA? Consortium d industriels Responsables de : UML CORBA Mais aussi : XMI MOF QVT MTL ADM...

MDA? MDA? Model Driven Architecture

MDA? (suite) MDA? Premières spécifications en 2000 Version actuelle du «Guide MDA» : 03-06-01 60 pages qui décrivent : La vision de l OMG Comment l utiliser Les transformations MDA MDA est une marque déposée

MDA : résumé des spécifications MDA? Des modèles partout (en particulier UML) Des langages pour transformer les modèles Un cycle de développement en Y

Cycle de développement en Y MDA?

Cycle de développement en Y (suite) MDA? Branche conception Un modèle de conception abstrait Raffiné en modèle de données Complété d un modèle dynamique Branche technique Une architecture technique Une architecture physique Puis fusion des deux branches pour former un modèle spécifique à la plateforme (PSM) Enfin génération du code depuis le PSM.

Exemple de PIM MDA?

Exemple de PDM MDA?

Fusion PIM-PDM MDA?

Exemple de PSM MDA?

Limites MDA? Comment fait-on la fusion? Support des itérations? Incapacité à modifier un modèle de type PSM. Complexité de la transformation permettant d obtenir le PSM? On ne code plus?

Buzz et autres approches MDA? MDSD MDD Software Factories DSM, DSL...

Plan MDA? 1 Mise en bouche... Un modèle? 2 MDA? 3 UML Eclipse 4

MDA? Définition L IDM (Ingénierie dirigée par les modèles) est le domaine de l informatique mettant à disposition des outils, concepts et langages pour créer et transformer des modèles. a a Wikipedia

MDA? Tout modèle est décrit par un langage unique la légende d une carte On peut : Formaliser son propre langage à l aide du langage unique Transformer les informations d un langage à l autre Extraire des informations depuis une source de données vers un langage. Transformer les informations en texte.

Parenthèse MDA? Monde des langages Un langage est défini par une grammaire et une syntaxe Un fichier conforme à un langage donné est un ensemble d informations organisées selon les règles du langage. Monde des modèles Un modèle est défini par un méta-modèle Un modèle conforme à un méta-modèle donné est un ensemble d informations organisées selon les règles de ce dernier.

Comment est défini UML? MDA? Meta Object Facility (MOF) Un langage réduit pour définir des langages dans le monde des langages : la BNF

Comment est défini MOF? MDA? Avec MOF 1 1 Plus d informations dans les prochaines sessions

Opérations de base MDA?

Exemple de génération MDA?

Exemple de transformation MDA?

Résumé MDA? MDA, MDE et IDM. «tout est modèle» Modèles, Méta-modèles représentation des préocupations sous forme de modèle exemple : Cycle de développement en Y exploitation des modèles par les opérations de générations et de transformations

Plan MDA? 1 Mise en bouche... Un modèle? 2 MDA? 3 UML Eclipse 4

à l aide de Modèles MDA? Analyse Définition des concepts Éditeurs métier Contrôle qualité Conception Marquage des modèles Transformation automatique Contrôle qualité Développement Génération automatique Génération incrémentale Tests, documentation,..

Développement sans modèle MDA? Interpretations différentes Flou Résultat non conforme aux attentes

Utilisation d un modèle «documentaire» MDA? Modèle «documentaire» : impression + relecture Travail en double Maintenance du modèle Efficacité?

Génération de code 1 pour 1 MDA? Faible taux de génération Dépendant de la technique modèle proche du code source Reverse engineering rapidement préféré.

Génération incrémentale 1 pour n MDA? Modèle de haut niveau Tout le code technique est généré Le modèle et le code restent cohérents UML n est pas toujours adapté

Génération incrémentale avec langage spécifique MDA? L outil de modélisation s adapte aux utilisateurs Sémantique plus précise : moins de risque d erreur Simplicité et efficacité

Ecueils classiques MDA? Modification du code généré Risque de la re-génération Intégrisme du «tout modèle» Lourdeurs Déconnexion des générateurs en maintenance

Plan UML Eclipse 1 Mise en bouche... Un modèle? 2 MDA? 3 UML Eclipse 4

Plan UML Eclipse 1 Mise en bouche... Un modèle? 2 MDA? 3 UML Eclipse 4

UML : un langage unifié UML Eclipse Analyse fonctionnelle Objets métiers Architecture logique Architecture physique Aspects dynamiques

UML : un langage unifié (suite) UML Eclipse d abord une notation graphique bien connue un ensemble de diagrammes ce n est pas une méthode! un langage formalisé mais pas assez strict autant de façons de modéliser une association que d outils déjà largement outillé

Le méta-modèle UML UML Eclipse défini ce que l on peut modéliser avec UML Classe, Property, Acteur, Operation, Association... complexe

La preuve! UML Eclipse Extrait du méta-modèle UML2

Adapter UML UML Eclipse Enrichir le modèle d informations «Sur-typer» les éléments la classe «Book» est une classe métier

Définitions UML Eclipse Stéréotype Les stéréotypes permettent de définir de nouvelles classes d éléments de modélisation, en plus du noyau prédéfini par UML. a a UML définit un certain nombre de stéréotypes standards TaggedValue Les TaggedValue permettent d enrichir l information contenue dans un modèle en ajoutant de nouveaux attributs. Profile Un Profile est un ensemble de «Stereotype» et de «TaggedValue» que l on peut appliquer à un modèle donné.

Modèle stéréotypé UML Eclipse

Plan UML Eclipse 1 Mise en bouche... Un modèle? 2 MDA? 3 UML Eclipse 4

Un environnement de développement UML Eclipse

Une plateforme UML Eclipse

Un projet Open-Source UML Eclipse Eclipse Modeling team (extrait)

IDM au sein d Eclipse UML Eclipse Eclipse Modeling Framework (EMF) Eclipse Modeling Framework Technology(EMFT) Graphical Modeling Framework (GMF) Model to Text (M2T) Model to Model (M2M)

Outils libres pour Eclipse UML Eclipse Acceleo : tranformations Modèle vers Texte (M2T) Topcased : environnement de modélisation Modeleur UML

Acceleo UML Eclipse Langage de templates pour la génération de texte Syntaxe simple pour la navigation dans le modèle Compatible avec la majorité des modeleurs UML Outillage complet au sein d Eclipse Assistants Coloration syntaxique Completion auto-adaptative Prévisualisation du texte généré

Acceleo - Exemple MindMap UML Eclipse

Topcased UML Eclipse Environnement de modélisation Ecore UML SysML...

Topcased - Exemple DiscStore UML Eclipse

Autres technologies UML Eclipse ATL QVT relations, QVT operational Modélisation textuelle (TCS, XText)...

Plan 1 Mise en bouche... Un modèle? 2 MDA? 3 UML Eclipse 4

Acceleo et le module UML vers PHP Générateur PHP depuis le méta-modèle UML2 Architecture cible en couches : Accès aux données Objets métiers Présentation Technologies utilisées : PearDB Smarty

PHP - diagramme de classe

Couche présentation un template smarty par écran un template smarty par objet métier un contrôleur par écran un index : point d entrée des requêtes

Couche métier/données une classe d accès par type d objet une classe de DTO et de proxy par objet métier mapping PearDB un script sql

Itération Je veux... Rajouter un nouvel objet métier et l associer à un autre objet existant.

Itération (suite) Procédure 1 Modification du modèle UML 2 Lancement de la re-génération 3 Compléter le code Comment ne pas perdre le code ajouté à la main?

Zone de code utilisateur Définition dans le template

Zone de code utilisateur (suite) Dans le code généré...

Conclusion Capitalisation de la technique bonnes pratiques qualité du code et normes de formatage Synchronisation code/modèle Gains de productivité Outil de transmission