Pour quelles raisons l’Architecture d'Entreprise prône la transformation ou dérivation des couches la composant ?
L'architecture d'entreprise qui inclut l'urbanisation des Systèmes d'Information ne cesse de prôner la transformation ou dérivation des couches la composant, stratégie en métier, métier en fonctionnelle, fonctionnelle en applicative et applicative en infrastructure à des fins d'automatisation, de traçabilité et de gouvernance.
C'est la que rentre en jeu, l’Ingénierie Dirigées par les Modèles (IDM ou MDE Model Driven Engineering ou bien encore MDA Model Driven Architecture) qui repose sur la volonté de décrire précisément les besoins des clients par des CIM (Computational Independent Models) et la connaissance métier d’une organisation dans des modèles abstraits indépendants des plates-formes (PIM - Platform Independent Models).
Ayant isolé le savoir-faire métier dans des PIM, on a besoin soit de transformer ces modèles en d’autres PIM (besoin d’interopérabilité, migration vers un nouveau système, fusion de SI en cas d’acquisition d’une autre organisation, …), soit de produire ou de créer des modèles PSM (Platform Specific Models) ciblant une plate-forme d’exécution spécifique (pour améliorer la portabilité et augmenter la productivité).
Dans le cadre de l’IDM, les artefacts manipulés sont des modèles.
Ces types de modèles sont donc des méta-modèles.
Un méta-modèle est un modèle qui définit les concepts d'un modèle d'instance.
Cette relation est purement syntaxique.
La Meta-Object Facility (MOF) de la norme OMG à quatre couches (M0, M1, M2, M3) est l’architecture de méta-modélisation.
Voir ci-dessous un article que j'avais consacré aux métamodèles :
Par exemple, le métamodèle de UML (Unified Modeling Language) est un modèle M2 du MOF.
De même, tous les langages spécifiques à un domaine (DSL Domain Specific Language) peuvent également être exprimé en modèles MOF.
Le noyau de MOF permet seulement d'exprimer des propriétés structurelles simples,
Associations similaires entre éléments, encapsulation, cardinalité, etc.
Le langage de contraintes d'objet (OCL Object Constraint Language) est un langage de contrainte déclaratif d’instructions ordonnées standard et un langage de requête, qui est utilisé pour associer des règles à des modèles.
Par exemple, on peut spécifier une structure, des invariants, des définitions et des pré/post conditions, des opérations MOF abstraites dans la langue OCL.
Voir mes tutoriaux sur OCL :
- Modélisation de système : comment utiliser OCL avec Eclipse, c'est bien la question que tout le monde se pose
- Modélisation de système : UML n'est rien sans OCL !
- Modélisation de système : OCL ça se complique !
- Modélisation de système : OCL vous en redemandez ?
- Modélisation de système : tutoriel OCL, la gestion des évènements
Le métamodèle de transformation contient trois éléments essentiels : source, cible et relation de transformation ou dérivation.
La relation de transformation est un ensemble de liens explicites entre les éléments de la source et le modèle cible.
Ces liens explicites jouent un rôle clé dans l’approche IDM.
Les relations entre les métamodèles définissent la structure des liens et des propriétés qu'ils doivent satisfaire et le méta-modèle de transformation, les liens qui doivent exister.
Une transformation de modèles est la génération d’un ou de plusieurs modèles cibles à partir d’un ou de plusieurs modèles sources.
Une transformation des entités du modèle source met en jeu deux étapes.
L’approche par modélisation consiste quant à elle à appliquer les concepts de l’ingénierie des modèles aux transformations des modèles elles-mêmes.
Une transformation endogène se situe dans le même espace technologique et les modèles source et cible sont conformes au même méta- modèle.
Par exemple transformation d'un modèle UML en un autre modèle UML
Une transformation exogène se situe entre 2 espaces technologique différents et les modèles source et cible sont conformes à des méta- modèles différents.
Une transformation en série peut servir à réaliser une application ou un processus basé sur une série de transformations de modèles.
Les types d’outils de transformation de modèles :
- Langage de programmation « standard » : Ex : Java, pas forcément adapté pour tout, sauf si interfaces spécifiques, ex : framework Eclipse/EMF
- Langage dédié d'un atelier de génie logiciel : Ex : MDG pour l’AGL Enterprise Architect, Langage de script de l’AGL MEGA, MDA Modeler IBM Rational, souvent propriétaire et inutilisable en dehors de l'AGL
- Langage lié à un domaine/espace technologique : Ex: XSLT dans le domaine XML, AWK pour fichiers texte ...
- Langage/outil dédié à la transformation de modèles : Ex : la norme QVT (Query View Transform) de l'OMG, le standard de l’industrie actuellement : ATL (Atlas Transform Language)
3 grandes familles de modèles et outils associés :
- Données sous forme de séquence : Ex : fichiers textes (AWK)
- Données sous forme d'arbre : Ex: XML (XSLT)
- Données sous forme de graphe : Ex : diagrammes UML, outils : QVT, ATL, …
3 grandes catégories de techniques de transformation :
- Approche déclarative : recherche de certains patrons (d'éléments et de leurs relations) dans le modèle source. Chaque patron trouvé est remplacé dans le modèle cible par une nouvelle structure d'élément. L’écriture de la transformation est « assez » simple mais ne permet pas toujours d'exprimer toutes les transformations facilement.
- Approche impérative : proche des langages de programmation usuels, on parcourt le modèle source dans un certain ordre et on génère le modèle cible lors de ce parcours. L’écriture transformation peut être plus lourde mais permet de toutes les définir, notamment les cas algorithmiquement complexes.
- Approche hybride : à la fois déclarative et impérative. La plupart des approches déclaratives offrent de l'impératif en complément car plus adapté dans certains cas.
Les référentiel pour stocker les modèles et méta-modèles utilise XMI (XML Interchange, norme de l'OMG).
Les principales implémentations des langages de transformation de modèles ATL et QVT utilisent le métamétamodèle Ecore d'Eclipse qui est le standard de l'industrie. On retrouve tous les principaux concepts du niveau M3 UML du MOF de l'OMG.
On trouve les métamodèles Ecore à peu près pour tout, les langages de modélisation normalisés (UML, SysML, BPMN, DMN, BMM, SOAML, ...) et même des langages open source comme celui de DROOLS, le moteur de règles métier, standard de l'industrie.
Voir mes articles sur Ecore :
- Eclipse Modeling Framework (EMF) : revoyons les fondamentaux
- Ingénierie Dirigée par les Modèles (IDM) : tutoriel Eclipse Ecore, le corps à corps avec les méta modèles
Les cadres d'architecture d'entreprise comme TOGAF (The Open Group Architecture Framework), Praxeme, ... énoncent des principes de dérivation des différents niveaux ou aspects. Mais aucune ne précise avec quels outils.
Alors, la question qui me tourmente, avez-vous ou votre organisation, mis en place des transformations de modèles et avec quels outils ?
Rhona Maxwel
@rhona_helena
"Parmi les objets répandus au hasard, le plus beau c'est le cosmos. L'harmonie invisible est plus belle que le visible."
Héraclite d'Ephèse
Articles conseillés :
- INGÉNIERIE DIRIGÉE PAR LES MODÈLES (IDM)
- Pour trouver les services logiques, les modèles sémantiques et pragmatiques tu dériveras. (« Praxeme 4ème commandement extrait de la bible de l’aspect logique »).
- Model-Driven Engineering (MDE) : modèles, métamodèles, métamétamodèles, méta... ?
- Ingénierie Dirigée par les Modèles (IDM) : le tour de passe-passe des transformations de modèles
- Le métamodèle Eclipse Ecore DMN ( Decision Model and Notation ) : comment concevoir son propre outil de modélisation DMN ? [2/4]
A découvrir aussi
- Communiquer et développer les compétences en urbanisation SI
- En urbanisation SI, comment définit-on la vue fonctionnelle et quels sont les liens avec la vue métier et applicative ?
- Urbanisation du Système d'Information : vous ne voyez pas, vous voulez que je vous donne un indice ?
Inscrivez-vous au site
Soyez prévenu par email des prochaines mises à jour
Rejoignez les 754 autres membres