• [^] # Re: MDA ? Mon c** !

    Posté par . En réponse au journal Generate Early, Generate Often !. Évalué à 2.

    Évidemment ce que tu détaille là ressemble bien plus au MDA tel qu'il est définit par l'OMG cependant ce processus, basé sur un PIM suivi d'une transformation de modèles vers un PSM à depuis longtemps montré à quel point il était inefficace.

    D'aucune manière nous disons "Acceleo = MDA", Acceleo est une des briques nécessaires pour la mise en place d'une démarche pilotée par les modèles, concrètement c'est - selon moi - la brique la plus importante. La transformation de modèle est possible via ATL, la comparaison via EMF compare et plein d'autres projets Eclipse offrent toutes les briques nécessaires (cf les bundles).

    Acceleo permet la géneration depuis un modèle abstrait (PIM) un modèle proche de la plateform (PSM) ou n'importe quel autre formalisme (DSL), c'est un projet libre dont le but n'est pas d'accumuler les buzz words mais plutôt de fournir un outil permettant aux développeurs de gagner du temps en ne s'attachant qu'aux parties du code nécessitant une vrai réflexion et de construire des applications de meilleure qualité.

    Nous ne visons pas à être "conforme" MDA car cette conformité n'existe pas, comme tu l'a toi même dit la spec ne dit rien sur "Comment peut on faire pour transformer notre modèle abstrait en modèle proche de la plateforme ?", elle considère qu'il y'a un processus un peu magique qui le fait.

    Ici Acceleo utilise le modèle abstrait, la description de la plateforme technique (exemple : PHP+PEAR) est dans le module de génération.
    A partir du modèle abstrait et de ce module on obtient une application PHP+PEAR conforme aux specs du modèle abstrait. Ce n'est pas terminé, tout n'est pas spécifié ! Le code peut être complété par le développeur, les specs peuvent changer et l'on peut re-générer, on ne perdra pas nos ajouts successifs.

    "partie transformation de ce qui est écrit dans ces derniers langages vers le langage de programmation est à la discrétion, actuellement, de l'AGL "
    Ici aucune discretion, Acceleo est libre, ses modules sont libres, la transformation est joyeusement modifiable par tout un chacun.

    mon avis :

    Générer le code depuis un PSM n'a aucun intérêt, toutes les informations sont déjà là et modifier un modèle sera toujours plus compliqué que modifier directement le code source, une approche générative n'apporte qu'à partir du moment où l'on génère N fichiers à partir d'un élément du modèle.
    Exemple : J'ai modélisé un composant, je vais générer les fichiers de description décrivant les dépendances, l'implémentation de base qui gère le cycle de vie du composant, une interface pour ceux qui veulent y accéder et une implémentation par défaut que le développeur pourra compléter.

    "comme les langages de programmations ne sont pas MOF compliant,"
    C'est faux, ils peuvent tout à fait l'être cependant l'intérêt est nul , en quoi manipuler un modèle conforme à un meta-modèle de code sera plus simple que de manipuler directement les fichiers de ce dernier ?