Ingénierie dirigée par les modèles Model Driven Architecture



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

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

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

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

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

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

Génie logiciel (Un aperçu)

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

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

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

Cours en ligne Développement Java pour le web

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

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

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

Object Management Group

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

Meta Object Facility. Plan

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

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

DES SYSTÈMES D INFORMATION

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

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

Université Mohamed Khider Biskra. Faculté des sciences exactes et des sciences de la nature et de la vie. Département d Informatique.

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

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

Introduction du test dans la modélisation par aspects

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

Projet de développement

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

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

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Composants Logiciels. Le modèle de composant de CORBA. Plan

Objectif du cours. Outline. Complexité des systèmes modernes. La modélisation et UML dans les activités du Génie Logiciel...

Description de la formation

REMOTE DATA ACQUISITION OF EMBEDDED SYSTEMS USING INTERNET TECHNOLOGIES: A ROLE-BASED GENERIC SYSTEM SPECIFICATION

Visual Paradigm Contraintes inter-associations

Compte Rendu d intégration d application

Information utiles. webpage : Google+ : digiusto/

ED STIC - Proposition de Sujets de Thèse. pour la campagne d'allocation de thèses 2013

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

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Alfstore workflow framework Spécification technique

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

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

Valorisez vos actifs logiciels avec Rational Asset Manager. Jean-Michel Athané, Certified IT Specialist IBM Rational Software

Un processus dirigé par les modèles pour la création de bases de connaissance ontologiques

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

Démarche dirigée par les modèles pour la conception d entrepôts de données multidimensionnelles. F.Atigui, F.Ravat, O.Teste, G.

Un environnement de déploiement automatique pour les applications à base de composants

IDM 2009 Actes des 5èmes journées sur l Ingénierie Dirigée par les Modèles. Nancy, mars 2009

DSLs pour le Développement Agile de Transformations

- Couches - Éléments - Domaines - ArchiMate et les techniques du BABOK

Conception et Implémentation d un serveur d applications dans le cadre du projet EISMO

Étude et applications de l approche MDA pour des plates-formes de Services Web

Analyse,, Conception des Systèmes Informatiques

Retour d expériences avec UML

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

4. SERVICES WEB REST 46

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

Web Tier : déploiement de servlets

Introduction aux intergiciels

La contextualisation de modèles, une étape indispensable à un développement dirigé par les modèles?

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

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

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

1. Installation d'un serveur d'application JBoss:

Eclipse Process Framework et Telelogic Harmony/ITSW

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

Introduction aux «Services Web»

IT203 : Systèmes de gestion de bases de données. A. Zemmari zemmari@labri.fr

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Java Aspect Components (JAC)

BI2 : Un profil UML pour les Indicateurs Décisionnels

Plan. Department of Informatics

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

Systèmes d information et bases de données (niveau 1)

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

Vulgarisation Java EE Java EE, c est quoi?

Les nouvelles architectures des SI : Etat de l Art

D E S C R I P T I O N D E S É L É M E N T S C L E F S D ' U I M A

Classeur de suivi de l auditeur. Architecture et Ingénierie des Systèmes et des Logiciels

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

RTDS G3. Emmanuel Gaudin

Problématiques de recherche. Figure Research Agenda for service-oriented computing

Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG

Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration

CQP Développeur Nouvelles Technologies (DNT)

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

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

Une architecture conceptuelle pour le déploiement d applications à grande échelle

EXA1415 : Annotations

Gouvernance IT : par où commencer? Hubert Lalanne DE, Chief Architect for Industries IBM Software France

Infrastructure de Données Spatiales

2 Chapitre 1 Introduction

Architecture Orientée Service, JSON et API REST

OpenPaaS Le réseau social d'entreprise

Dafoe Présentation de la plate-forme UIMA

Transcription:

Ingénierie dirigée par les modèles Model Driven Architecture Laurent Pérochon INRA URH 63122 Saint Genès Champanelle perochon@clermont.inra.fr

La conception d un programme classique Niveaux d abstraction Diagramme UML Diagramme UML Diagramme UML Diagramme Modèle conceptuel UML (UML ) outils Programme exécutable Compléments Evolutions Programmeur

Constat Diagramme UML Diagramme UML Diagramme UML Diagramme Modèle conceptuel UML (UML ) Programme exécutable

L Ingénierie Dirigée par les Modèles (Model Driven ) Objectifs Diagramme UML Diagramme UML Diagramme UML Diagramme UML Modèle Transformation automatisée Programme exécutable Compléments Evolutions

L Ingénierie Dirigée par les Modèles (IDM) Hiérarchie pyramidale / espaces techniques Grammarware BDware Docware Modelware Espaces Techniques Langage de Description de Grammaires (EBNF) Langage de Description de Schéma (alg. relationnelle) Langage de Description de Documents (XML) Un langage définissant les langages de modélisation Langage de description de Métamodèle (MOF) M3 La grammaire de Java Un schéma relationnel Un schéma XML Le langage de modélisation Métamodèle (UML) M2 Un programme Java Un modèle du système Une base de Données relationnelle Un document XML spécifique Un modèle UML M1 Ce qu on étudie Système M0

L Ingénierie Dirigée par les Modèles (IDM) La manipulation des modèles : la transformation Différents aspects : spatial, décisionnel, social Une modification 1 aspect 1 niveau d abstraction Répercussion : transformation Modèles en interaction Différents niveaux d abstraction (on affine les modèles)

L Ingénierie Dirigée par les Modèles (IDM) C est quoi? Intégration des techniques précédentes Vise à couvrir tout le cycle de développement du logiciel On manipule des modèles On automatise les transformations entre différents modèles (aspects, niveaux d abstraction) L élément de base n est plus l objet : c est le modèle (Favre et al., 2006)

L Ingénierie Dirigée par les Modèles (IDM) Les architectures basées sur l IDM Microsoft Software factories Domain Specific Langage IBM Eclipse Modeling Framework Ecore (Essentiel MOF) Object Management Group (OMG) UML Model Driven Architecture (MDA) Meta Object Facility (MOF)

L ingénierie dirigée par les modèles vue par l OMG Une architecture, mais pas une méthode de modélisation Vision lancée en 2000, toujours en cours de développement Des parties ont été créées D autres restent à développer

Plateforme Fournit des fonctionnalités, pas besoin de les programmer Java, PHP,.Net Modèle des exigences Computation Independent Model CIM Modèle métier Plateform Independent Model PIM Idées de base Le métier évolue moins vite que la technique On doit pouvoir utiliser plusieurs plateformes, changer de plateforme Le PIM reste le PSM change Modèle technique Plateforme Specific Model PSM Code

Modèle des exigences (CIM) On veut modéliser ces transformations pour faciliter les futurs évolutions Transformations Modèle métier (PIM) Transformations Modèle technique (PSM) Code

Comment représenter les modèles (CIM PIM PSM)? Comment représenter les transformations?

Représenter les modèles Langage de description de Métamodèle UML UML MOF Profil UML (lié au domaine) UML Notre ML

Profils UML Stéréotype Tagged value attribut Contraintes sur stéréotype et Tagged value

<<profile>> EJB Component Model Driven Architecture (MDA) Profil UML : stéréotype et tagged value On spécialise UML <<stereotype>> Bean <<stereotype>> EntityBean <<stereotype>> SessionBean state: statekind Artifact <<enumeration>> StateKind Stateful stateless Interface <<stereotype>> Remote <<stereotype>> Home <<stereotype>> JAR (T. Stahl et M. Völter, 2006)

Le nombre context de personnes Chambre inv: par chambre doit être inférieur ou égal au nombre de lits dans la chambre Model client->size louée. Driven Les <= enfants Architecture _nbdelits (accompagnes) or (MDA) de moins de 4 ans ne Profil comptent UML pas : :Les dans (client->size contraintes cette règle = _nbdelits : de Object calcul Constraint + (à 1 hauteur and Langage d un enfant (OCL) de moins de 4 ans maximum par chambre). client->exists(p : Personne p._^age < 4)) Un hôtel ne contient jamais d étage numéro 13 (superstition oblige). context Chambre inv: self._étage <> 13 (Olivier Caron : http://www.polytech-lille.fr/~ocaron/)

Profil UML : Modéliser les opérations Object Constraint Langage (OCL) Il ne permet pas des modifications dans le modèle Exemple : augmenter le nombre de chambre de 1 Action Semantic (AS). Standard OMG Spécifier les actions, opération qui fait changer l état du modèle Pas de représentation textuelle : difficulté

Profils UML disponibles OMG Sociétés/recherche Secteurs industriels EJB, CORBA, Java, C#

Bilan Profil UML Description sous forme de diagramme des classes : ok Object Constraint Langage c est bien mais. La majorité des outils ne supportent pas ou trop partiellement OCL durant une transformation (Cabot et Teniente 2006) Action Semantic A voir dans le futur

Représenter les modèles UML UML MOF Profil UML (lié au domaine) UML Notre ML

Meta Object Facility Le MOF est un langage de définition de métamodèles Il définie UML, pourquoi ne pas définir directement notre métamodèle du domaine? Model Element Import Namespace Constraint Tag Feature Generalizable element Behavioral Feature

Représenter les modèles Architecture Cas d utilisation Modèle des exigences (CIM) UML, Profils UML ou à partir du MOF Modèle métier (PIM) Principalement Profils UML Modèle technique (PSM)

Comment représenter les modèles (CIM PIM PSM)? Comment représenter les transformations?

Les transformations Des outils existent PIM UML ou Profil UML du domaine Transformation PSM Profil UML PSM Métamodèle (MOF) du domaine A écrire

Les transformations ne feront pas tout automatiquement : danger Modèle Autre modification transformation Ajout manuel Public RPVO getreservationparameter () throws RemoteException{ } RPVO vo = null; try { Danger } } (T. Stahl et M. Völter, 2006)

Les transformations ne feront pas tout automatiquement Public RPVO getreservationparameter () throws RemoteException{ // PROTECTED REGION ID(12) START RPVO vo = null; try { } // PROTECTED REGION END } (T. Stahl et M. Völter, 2006)

les transformations Comment décrire les règles de transformation? Approche par programmation Java MetaDataI Interchange (JMI), Eclipse Metamodèle Framework (EMF) MOF 2.0 to IDL(MOF vers Interface Definition Langage) Approche par template (paramètres du modèle template) Approche par modélisation. On modélise la transformation. Query View Transformation (MOF 2.0 QVT) : métamodèle des modèles de transformation.

Module <module-name> do Model Driven Architecture (MDA) Exemple de transformation avec RubyTL rule <rule-name> do from <source-metaclass> to {target-metaclass} filter do source_element <expression> end Nom de la règle Défini source et cible Filtre les éléments de la source mapping do <source_element>, {target_element} {bindings} Décrit précisement les transformations end #de mapping end #de rule End #de Module (Cuadrado et al. 2006)

SimpleClass Model Driven Architecture (MDA) Exemple de transformation avec RubyTL Classifier Name : String DataType 1 Class type Owner 1 typeof attrs * * Attribute Name : String Visibility : String SimpleJava Classifier Name : String 1 type TypedElement Name : String PrimitiveType Class Owner 1 * attrs Feature Visibility : String * Field Method Parameter parameters (Sánchez Cuadrado et al. 2006)

SimpleClass Model Driven Architecture (MDA) Exemple de transformation avec RubyTL Classifier Name : String 1 Class type Owner 1 typeof attrs * * Attribute Name : String Visibility : String SimpleJava Classifier Name : String 1 type Class Owner 1 * attrs TypedElement Name : String Feature Visibility : String Module transformation rule klass2javaclass do from SimpleClass::Class to SimpleJava::Class mapping do klass, javaclass javaclass.name = klass.name javaclass.feature = klass.attrs end end (Sánchez Cuadrado et al. 2006)

les transformations Le problème récurrent : Plusieurs règles peuvent pouvoir être appliquées en même temps (ordre?) Deux règles peuvent s imbriquer (Sánchez Cuadrado et al. 2006)

Persistance et échange de modèles enregister Transférer entre applications

Persistance et échange de modèles : XMI XMI (XML Metadata Interchange) permet de représenter un modèle sous forme de document XML. (Pas les diagrammes). On complète avec DI (UML Diagram Interchange) pour les outils gérant les modèles, sinon on utilise SVG (écrit en XML) pour les outils purement graphique. XLST (extensible Stylesheet Langage Transformation) permet de spécifier des transformations de documents XML (donc éventuellement de modèles). Transformation entre XMI, UML/DI vers SVG Problème Actuellement XMI ne permet pas l échange de modèle entre outils car il repose sur différentes versions de UML DI, XMI

Persistance et échange de modèles: alternatives à XMI OMG : MOF 2.0 to IDL Java Community Process (JCP) SUN : Java Metadata Interface (JMI) IBM : Framework Eclipse Modeling Framework (EMF)

En bref Séparation infos métiers du technique : pérennité des savoir-faire Automatisation de modèles, productivité meilleur MDA est une approche à partir de CIM PIM et PSM, mais n est pas une méthode Prise en compte des plateformes dans les PSM et les transformations PIM PSM CIM PIM PSM CODE On complète manuellement On complète manuellement Stockage des modèles pas encore vraiment standardisé transformations à améliorer

Les outils Freeware AndroMDA (andromda.org) Eclipse/Acceleo (Obeo) Eclipse / Open Architecture Ware (openarchitectureware.org) Eclipse/ Generic Eclipse Modeling System (Vanderbilt University) Eclipse / Xscarecrows 4 MDA Commercial MDA Modeler (Softeam) Eclipse/Rational Software Modeler (IBM)

Bilan (mitigé) MDA or not MDA? OUI C est une architecture qui repose sur des standards Il y a de nombreuses recherches, de nombreux outils Le gain potentiel semble intéressant NON Tout n est pas encore standardisé, voir même développé On doit compléter avec des approches/outils/langages non standardisées ou propriétaires (paradoxe avec le soucis d indépendance aux plateformes) DONC? Cela semble être la voie du future proche : Il faut donc en tenir compte. La séparation du domaine et de la technique est à réaliser. L utilisation d UML ou des profils UML semble aussi être un bon choix.

Bibliographie Cette présentation est basée principalement sur le livre : Blanc X.. MDA en action. Ingénierie guidée par les modèles.eyrolles. 2005. 269 pages. Pour un aperçu général sur l ingénierie dirigée par les modèles : Favre J.M., Estublier J., Blay-Fornarino M. L ingénierie dirigée par les modèles. Au-delà du MDA.. Lavoisier. 2006. 227 pages. Pour une vision pratique de l IDM : Stahl T., Völter M. Model-Driven Software Development. Wiley. 2005. 428 pages. Pour une vision rapide : Revue IEEE Computer Society, Vol 39, N 2, 2006. Un profil UML en biologie? Roux-Rouquié M., Caritey N., Gaubert L., Le Grand B., Soto M. Metamodel and modeling langage : towards an unified modelling langage (UML) profile for systems biology. SCI05, Orlando, Florida, USA, 2005. Disponible à www.mcxapc.org/docs/ateliers/0506roux1.pdf. 2005

Métamodélisation et ontologies : Gašević D., Djurić D., Devedžić V. Model Driven Architecture and Ontology development. Springer. 2006. 311 pages Divers : Cabot J., Teniente E. Constraint Support in MDA tools : a survey. Model Driven Architecture-Foundations and Applications. ECMDA-FA, Bilbao, Spain. 2006. Springer. Pp. 256-267. Mellor S.J., Clark A.N., Futagami T. introduction: Model-Driven development. IEEE Software, 2003. vol 20, no 5, pp 14-18. Roux-Rouquié M., Schuch da Rosa D. Ten Top Reasons for systems biology to get into Model-Driven Engineering. Proceedings of the 2006 international workshop on Global integrated model management. Metamodels and semantics. Pp. 55-58. 2006 Sànchez Cuadrado J., García Molina J., Menárguez Tortosa M. RubyTL: A practical, extensible Transformation Langage. Model Driven Architecture-Foundations and Applications. ECMDA-FA, Bilbao, Spain 2006. Springer. Pp. 158-172. Sites internet : www.omg.org www.eclipse.org www.developpez.com exemple simple : cedric-brun.developpez.com/mda/acceleo/acceleogmf/