IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MDE Discussion :

architecture dirigée par les modèles


Sujet :

MDE

  1. #1
    Débutant  
    Inscrit en
    Décembre 2008
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 163
    Points : 41
    Points
    41
    Par défaut architecture dirigée par les modèles
    bonjour à tous,

    si vous permettez, je veux savoir si on nous demande de concevoir un tel système en utilisant l'approche MDA, quels modèles doit on concevoir exactement (est ce que les metamodèles et les modèles ou seulement les modèles??)

    aussi, doit on commencer par le CIM pour arriver au PIM?

    qu'est ce qu'on entend par plateforme sachant que je vais concevoir un editeur de contenu pédagogique?

    est ce que l'outil starUML permet la modélisation et aussi la transformation ou seulement la modélisation sinon quels sont les logiciels de transformation?


    merci infiniment

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 217
    Points : 253
    Points
    253
    Par défaut
    Citation Envoyé par thouraya24 Voir le message
    bonjour à tous,

    si vous permettez, je veux savoir si on nous demande de concevoir un tel système en utilisant l'approche MDA, quels modèles doit on concevoir exactement (est ce que les metamodèles et les modèles ou seulement les modèles??)

    aussi, doit on commencer par le CIM pour arriver au PIM?

    qu'est ce qu'on entend par plateforme sachant que je vais concevoir un editeur de contenu pédagogique?

    est ce que l'outil starUML permet la modélisation et aussi la transformation ou seulement la modélisation sinon quels sont les logiciels de transformation?


    merci infiniment
    Bonsoir,

    Comme souvent, vous avez bien sûr plusieurs possibilités (une multitude / "foultitude" en fait).

    Je ne sais pas encore où en sont vos compétences / votre expérience en matière de développement logiciel en général, en matière de conception en particulier, et plus spécifiquement en modélisation, mais je peux bien sûr vous donner quelques pistes à côté de la masse d'information que vous aurez à filtrer par vous même à partir des FAQs, tutoriaux, etc que vous trouverez ici dans ses forums et là, via wikipedia et autres.

    Dans la propre vision que j'en ai, et même si c'est assez grossier, vous allez je pense trouver par vous même assez vite que tout ce qui tourne autour des Model Driven Architectures vous conduit à re-considérer le processus de développement que vous connaissez probablement déjà "non orienté model" à travers une "lentille déformante" qui aura comme principales propriétés :

    * en toute première remarque, il faut dire que par "MDA" il y a (encore une fois, comme souvent) toujours des débats animés sur ce que cela est censé devoir désigner (certains exclus du MDA tout ce qui n'implique pas de près ou de loin les définitions données par l'OMG, d'autres sont plus "souples", etc ) ; mon point : ne vous arretez pas a cela, ou du moins ne perdez pas trop de temps sur les querelles de chapelles et déterminez par vous même, avec l'avis éclairé d'autres personnes, ce qui semble etre (pour vous, donc, au moins) les propriétés du consensus qui n'existe pas encore sur ce terme

    * après, bien sûr, il s'agit d'introduire la notion de "modèle" dès le départ parmi les fondations principales (par modèles, entendre : résultat d'une modélisation, mais aussi, ce qui prête parfois à confusion parce que ni tout à fait dépendant ni tout à fait indépendant de la première : "patterns", "templates" )

    * ensuite, même si au sens strict modéliser n'implique pas de façon absolue de travailler avec l'approche objet (on peut modéliser en logique pure sans jamais parler d'objets mais plutot de notions comme les fonctions et les domaines / ensembles), elle va fortement encourager (ou tot ou tard vous mettre en contact avec) le paradigme objet et tout ce qu'il implique : langages de programmation, la plateforme d'execution (Java, .NET, pour les principaux qui essaient de s'abstraire du système d'exploitation hote), outils (entre autres, les EDIs et outils de modélisaton), enfin, méthodes et notations (dont la plus "célèbre" : UML) ; il y aura aussi, si base de données il y a, des interactions avec la theorie de l'algèbre / du modèle relationnel de Codd (mise en oeuvre plus ou moins fidèlement avec, ou sans, SQL)

    * également, l'activité de modélisation dans le contexte MDA va s'étendre sur plusieurs dimensions, à des degrés divers (en fonction de vos préférences ou de la criticité de son objet ; ici par "objet" entendre : ce que vous tenter de modéliser) ; citons d'abord le fonctionnel / le métier de l'application et le "technique", emplacement et usage des technologies ou briques logicielles retenues bien sûr, mais aussi des choses un peu entre les deux comme les ontologies (p.ex : "qu'est ce qu'on entend par réseau d'affiliés ?" ; une idée claire de l'ontologie, aidera à ne pas oublier d'acteur important dans le diagramme de use cases UML, ou de relation d'héritage ou autre dans le diagramme de classe, etc)

    * au final, il ne faut pas perdre de vue qu'il s'agit quand même "de produire du code" qui tourne ; donc certaines variantes de mise en oeuvre MDA préconiseront de ne pas chercher à générer telle ou telle "nature" de code (voire pas de code généré du tout) et de n'utiliser les modèles que comme "guides" / "la source officielle" de l'application spécifiée formellement, d'autres voudront au contraire générer le plus de code qu'il est possible de générer à partir de la modélisation de l'application dans toute son envergure : IHM, tier applicatif, middlewares s'il y en a, tier de persistance, etc

    De ma propre expérience, et cela sera certainement confirmé par d'autres sur cette discussion, il est très peu probable qu'il s'avèrera absolument nécessaire pour vous de maitriser tous les diagrammes UML "sur le bout des doigts", dans ses moindres recoins (si vous choisissez cette notation comme point de départ pour mettre en oeuvre MDA) avant de modéliser concrètement et utilement dans l'outil que vous aurez retenu ; l'information portée par les FAQs, tutoriaux et discussions sur ces forums est déjà largement conséquente pour vous permettre de démarrer rapidement.

    Sachez cependant qu'à côté de l'arbre de "dérivations" (en termes d'outils, de modèles d'architectures presque "tout faits / prêts à emploi" ) déjà impressionnant que nous connaissons aujourd'hui (pour toutes les plateformes ou presque, et pour beaucoup de langages, à objet du moins) à partir de la seule notation UML, ma remarque ci dessus sur la sous-utilisation significative d'UML relativement a toute sa puissance "theorique" a conduit certains "récemment" (depuis 5 ou 6 ans, si on prend comme point de départ les premiers outils concrets) a ré-orienter leur stratégie de mise en oeuvre de MDA.

    Et ce, en ne prenant plus UML comme point de départ, mais plutôt de ré-utiliser, en élevant le niveau d'abstraction a celui de la modélisation, un "vieux" concept lié aux notations spécialisées pour un domaine, utilisées avec succès au moins depuis qu'Unix existe (avec yacc, les troff, etc) : celui de Domain-Specific Language. Les premiers "domain specific languages" (versus "programming languages" ) etaient donc textuels, puis sont apparues des notations de modélisation spécialisées graphiques ; c'est de cela dont il s'agit.

    Au risque de caricaturer ou d'etre un peu trop approximatif, mais je ne veux pas faire beaucoup plus long là dessus, disons que l'idée est de "concevoir" votre propre meta modèle (c'est une notion en fait très générale, comme celle de méta langage, et UML est très connu pour l'avoir "introduite" de façon populaire, lors de sa définition) c'est à dire votre langage de modélisation, puis à l'aide d'outils adequats... de faire votre propre outil de modélisation principal, qui met en oeuvre cette notation que vous avez inventée pour décrire vos modèles d'application, outil éventuellement (souvent) augmenté du (des) generateur(s) de code ad hoc, pour tel ou tel type d'artefact (C#, SQL, fichiers de config, etc).

    Cela semble au premier abord, "un peu tordu" et/ou trop ambitieux / compliqué, mais on s'aperçoit assez vite que certaines architectures logicielles "inventées à l'ancienne", sans mettre MDA de façon consciente dans la boucle, se pretent bien a cette retro-modélisation qui va vous faire "deviner", par itérations, le meta modèle adapté au domaine de l'application, pour obtenir une notation de modélisation qui "colle au mieux" a ce dernier et qui permet de créer l'outil de modelisation / les generateurs de code les plus pertinents, en prenant en quelque sorte des "raccourcis" sur ce qu'on aurait fait en UML "classique".

    Je ne vais pas etayer plus ici sur cette derniere approche qui a tout mon interet personnel actuel, mais je serai ravi de repondre a vos questions sur celle ci, si vous en avez, au moins en privé, du mieux que je pourrai, en tirant profit de l'expérience que j'en ai dessus, bien sûr, positive comme négative.

    Voilà, en espérant vous avoir donné "une vue d'avion" utile des problématiques et concepts que vous allez rencontrer, je passe la balle à ceux qui voudront bien préciser ce que j'ai mal exprimé ou oublié, voire corriger certains points, ce dont je ne doute pas qu'ils feront.

    'HTH

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 217
    Points : 253
    Points
    253
    Par défaut
    Citation Envoyé par thouraya24 Voir le message
    [...]
    est ce que l'outil starUML permet la modélisation et aussi la transformation ou seulement la modélisation sinon quels sont les logiciels de transformation?
    Pour répondre concrètement à au moins une de vos questions, et pour l'avoir utilisé, oui, StarUML est pas mal du tout, pour modéliser en UML.

    Il a quelques petits défauts ergonomiques et je n'ai pas pu tirer grand chose de lui pour ce qui est de générer beaucoup de code utilement, mais sur la partie modélisation UML proprement dite, il s'en sort très honorablement, pour un outil gratuit. Mais on peut probablement trouver encore mieux, toujours gratuit, depuis.

    En effet, la dernière fois que je l'ai téléchargé/installé/utilisé, son développement / "support" semblait en stand by depuis au moins plus d'un an... n'oubliez pas de jeter un oeil à cet aspect.

    'HTH

    Enfin, joyeux noel !

  4. #4
    Débutant  
    Inscrit en
    Décembre 2008
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 163
    Points : 41
    Points
    41
    Par défaut
    joyeux noel à vous aussi,

    comme vous etes expert du domaine pouvez vous me repondre encore à cette question est ce que les profils UML me permette seulement de modéliser un PSM ou aussi ils peuvent me servir pour modéliser des metamodèles?

    merci bcp

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 217
    Points : 253
    Points
    253
    Par défaut
    Citation Envoyé par thouraya24 Voir le message
    [...]
    comme vous etes expert du domaine pouvez vous me repondre encore à cette question est ce que les profils UML me permette seulement de modéliser un PSM ou aussi ils peuvent me servir pour modéliser des metamodèles?
    Hmm... "expert" est pour le coup un bien grand mot, pour ce qui concerne les définitions (et le reste) donnés par l'OMG concernant MDA...

    En effet, je ne suis pas, loin s'en faut, un farouche partisan des visions de l'OMG concernant MDA.

    Car à mon goût (mais on peut ne pas être d'accord, bien sûr, ça me pose pas de problème plus que ça...), ils se sont un peu "accaparé" les concepts, bon, à la rigueur pourquoi pas, puisqu'ils se veulent normatifs, mais ce faisant, leur "vision" et la manière dont ils ont identifié et introduit les notions de PIM et de PSM, relativement à l'usage fait d'UML, ont une très forte connotation/coloration CORBA/Java...

    Or, ce n'est pas anodin, car le paradigme objet "guidé" par une notation comme UML pour la modélisation, et dorénavant informé par l'initiative MS avec .NET, ne méritait peut être pas (bah, toujours d'après moi) d'être en quelque sorte "enfermé" dans leurs directives colorées de la sorte, pour concevoir des meta modeles UML dérivés (via les profiles)...

    Mais bon, si vous parlez de Platform Independant Model et de Platform Specific Model, il y a une forte probabilité pour que vous soyez vous même plus du côté OMG/CORBA/Java qu'ailleurs, donc mes réserves et préoccupations ne vous intéressent probablement pas plus que ça à votre tour...

    Maintenant, pour répondre à votre question, telle que vous l'orientez, j'ai l'impression que vous avez compris a quoi servent PIM, PSM, et les profiles (du moins, toujours dans la vision OMG) ; cependant, j'ai aussi l'impression que vous avez une moindre notion de ce qu'on entend par méta modèle et la relation exacte avec les UML Profiles... Je ne vais pas vous faire un cours incomplet et/ou maladroit ici, mais je vous invite plutôt de relire attentivement ce que disent l'OMG eux mêmes à ce propos :

    http://www.omg.org/technology/docume...le_catalog.htm

    Donc, ma réponse, serait :

    "oui", on utilise les profiles pour passer (ou transformer) un PIM en un PSM ; et "non", les profiles (qui sont eux mêmes des "sous ensembles augmentés" du meta modele UML spécialisés pour un domaine particulier) ne servent pas à "modéliser des méta modèles" ...

    En fait, pour votre info, le méta modèle d'UML lui même est modélisable/modélisé en... UML ; et cela, si ça ne faisait pas partie des objectifs de conception d'UML de pouvoir le faire, c'était a minima fortement souhaité/espéré ; donc, si vous voulez modéliser un méta modèle "maison", je suppose que vous suivrez la même voie : vous le ferez en UML.

    Ce qui m'amène à vous poser la question : mais au fait, pourquoi voudriez vous faire cela ?

    Pour ce que j'ai compris du MDA de l'OMG, mis en oeuvre pour modéliser des applications avec un "métier" (versus les notations ou outils de modélisation eux mêmes), il vous suffit de maitriser tout ou partie de ces notions : UML, le méta modèle UML (du moins, "les bases"), les profiles UML, le PIM, et le PSM, puis de savoir les mettre en oeuvre dans votre outil de modélisation UML favori.

    Je ne pense pas, en revanche, que vous deviez savoir (méta-)modéliser, dans le cas le plus général qui soit, d'autres méta modèles que celui d'UML "standard" (ou parties de celui-ci, p.ex, pour créer des profiles) ; sinon, vous seriez alors en train de (méta-)modéliser une autre notation de modélisation que celle d'UML, spécifique à votre domaine, et alors ce n'est plus exactement l'approche MDA, mais plutôt DSM (Domain-Specific Modelling, avec domain specific languages)...

    (?)

    'HTH

  6. #6
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Lysiandad nous a fais part de son point de vue expert sur le sujet. Du coup je n'ai pas grand chose à rajouter, outre que :

    UML, doté de son mécanisme d'extension par les profils, est suffisant pour créer des PIM et des PSM, qui sont des modèles (pas des méta-modèles).

    L'orientation objet sous-jacente du MDA provient de ses fondations : le méta-méta-modèle de l'OMG, le MOF (méta-object facility). Comme l'a fais remarquer Lysiandad, cela est pragmatique car les plateformes technologiques cibles repose sur des technologies objet. Néanmoins, il est possible de quitter l'univers MDA en utilisant un autre méta-méta-modèle (possiblement non objet).

    StarUML permet de faire des diagrammes UML, ça c'est certain. Maintenant, il est très limité dans la génération de code et ne prend pas en compte la démarche MDA. En fait, je ne sais pas quels sont les outils réellement capables d'implémenter la démarche MDA telle qu'elle a été vendue par l'OMG. Tout du moins, si ces outils existent, alors il ne doivent pas être gratuit. Des choses sont à surveiller du coté des projets Eclipse en incubation...


    PS pour Lysiandad : les "domain specific languages" s'opposent aux "General purpose languages", et non pas aux "programming languages"
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 217
    Points : 253
    Points
    253
    Par défaut
    Citation Envoyé par Hephaistos007 Voir le message
    [...]
    PS pour Lysiandad : les "domain specific languages" s'opposent aux "General purpose languages", et non pas aux "programming languages"
    Oui, bien sûr. J'ai forcé l'opposition entre les deux natures de langages, à dessein, mais de manière un peu maladroite c'est vrai :

    par "domain specific" j'entendais bien un langage / une notation conçu pour exprimer un modèle / une "théorie" (au sens logique du terme : un ensemble structuré d'énoncés et de relations entre énoncés, interprétable/exécutable d'une manière ou d'une autre par un outil, voire seulement par l'homme, dans une ontologie donnée, que l'on souhaite bornée -- le domaine) ;

    donc, oui, la classe des langages "non-domain specific" n'est bien sûr pas restreinte aux seuls langages de programmation (p.ex, UML, un archetype de langage "general purpose", dans une ontologie de modélisation "à objet" qui se veut justement... générale, puisqu' "unifiée" )

Discussions similaires

  1. Ingénierie dirigée par les modèles: documents
    Par tonguim dans le forum ALM
    Réponses: 0
    Dernier message: 27/02/2015, 14h29
  2. Initiation à l'ingénierie dirigée par les modèles
    Par Mickael Baron dans le forum Modélisation
    Réponses: 1
    Dernier message: 17/06/2012, 16h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo