• # MDA ? Mon c** !

    Posté par (site web personnel) . En réponse au journal Generate Early, Generate Often !. Évalué à 4.

    Ha MDA, ce bon buzz word utilisé à tout va par les anciens AGL pour rester dans le vent !
    Du MDA ? Non. De la simple génération d'un modèle UML vers un langage de programmation. Voilà c'est tout.

    Et MDA ? C'est bien plus que ça ! Pour ceux qui ne connaissent pas, voici, grosso modo c'est qu'est MDA (Model Driven Architecture) :
    - D'abord, à la source, un modèle indépendant de toute considération technique (donc de plate-forme, mais pas seulement, de frameworks aussi) : le PIM (Platform Independent Model). C'est ce que en gros on appelle le modèle d'analyse dans l'USDP (Unified Software Development Process). Le langage de modélisation utilisé pour écrire ce modèle doit respecter le MOF (un méta-langage de modélisation en gros). UML respecte le MOF. Le cycle de vie du PIM doit être géré.
    - A partir du modèle PIM, peut-être généré plusieurs PSM (Platform Specific Model) à l'aide d'un ensemble de règles de transformation qui prennent en compte les choix techniques pour la future implémentation. Ceci est réalisable parce que le PSM respecte aussi le MOF. C'est en gros ce que l'on appelle le modèle du design dans USDP pour avoir une analogie. Le cycle de vie du PSM doit aussi être géré.
    - A partir du PSM peut avoir lieu alors la génération vers un langage de programmation. Sauf que là, comme le langage n'est pas MOF compliant, cette partie, même si elle est indiquée (indiquer ne signifie pas spécifier) dans le MDA, ne fait pas partie vraiment du MDA. Pour s'en sortir, comme les langages de programmations ne sont pas MOF compliant, des langages MOF compliant (ce que l'on appelle aussi les profils UML) sont écrits afin de réaliser plus facilement cette génération ou plus exactement pour cacher ce problème; mais la partie transformation de ce qui est écrit dans ces derniers langages vers le langage de programmation est à la discrétion, actuellement, de l'AGL et n'entre pas dans le champs de spécification du MDA.

    Vous aurez compris, les AGL ou autres outils travaillant sur les modèles UML existant sur le marché, malgrès leur "MDA compliant", ne couvrent que le dernier aspect ... et qui n'entre pas vraiment dans le champs du MDA. Cherchez l'erreur.