Note : 7 ; Un très bon livre, pour comprendre les concepts clés de MDA, les métamodèles associés et leurs mécanismes de transformation.
Mon snobisme naturel m’incite généralement à préférer les livres américains à leurs équivalents français. Le fait que je m’intéresse aujourd’hui à un ouvrage bien de chez nous ne doit rien à une quelconque cabale hexagonale, mais bien aux qualités intrinsèques dudit ouvrage.
MDA est un sujet complexe, qui nécessite d’en comprendre les fondements afin de pouvoir saisir les nombreux « buzzwords » que sont OCL, Semantic Actions, et autres CIM, PIM, PSM et MOF ! C’est exactement l’approche de ce livre : après un chapitre de présentation générale de MDA, on aborde tout de suite la pierre angulaire du MDA : le MOF (méta-object facilities) encore appelé méta-métamodèle ! Si il est un sujet ardu dans MDA, c’est bien ce fameux MOF (vous l’avez probablement compris rien qu’en lisant la phrase précédente). Mais l’auteur s’en tire fort bien, de manière exemplaire devrais-je même dire car au chapitre 6, on se plonge même dans la manipulation d’un métamodèle construit à l’aide du framework EMF d’Eclipse (celui-là même qui est au cœur de Rational Software Modeler / Architect) : bravo ! Bien sûr, il vous faudra avoir le goût des métamodèles, mais dans le cas contraire, MDA n’est probablement pas pour vous. UML2 est bien entendu abordé, et si vous n’aviez pas encore compris ce que sont UML infrastructure et superstructure (on ne saurait vous en blâmer) et la fameuse dépendance « merge », l’explication est ici. Je met juste un bémol sur les explications dédiées aux classes du métamodèle UML2 qui sont un peu fastidieuses.
Les standards connexes, si ils sont traités brièvement ne le sont pas moins clairement, avec une mention spéciale pour le traitement de XMI et DI (diagram interchanges) ce dernier sujet n’étant même jamais abordé dans les autres textes. De même, si vous êtes noyés dans les problèmes d’incompatibilités de XMI, la réponse est ici. La clé de voûte de MDA, la transformation de modèles n’est pas en reste, puisque l’auteur développe les 3 approches possibles : transformation par programmation, par « templates » et par règles de programmation, la 1ère et le 3ème approche étant par la suite illustrés dans la prise en compte des plates-formes d’exécution, J2EE et PHP respectivement, la transformation entre 2 métamodèles différent (car l’auteur présente un métamodèle PHP simplifié pour l’occasion) est carrément la cerise sur le gâteau ! On est pas loin du tour de force.
Sur le fond, l’approche de l’auteur (fusion des informations de transformation avec le modèle) s’oppose avec l’approche de Kleppe & Warmer qui est de séparer les informations de transformation du modèle. Personnellement je préfère cette dernière approche. Cela ne retranche rien à la qualité de cet ouvrage, que je conseille à la condition que vous recherchiez l’approche « en profondeur » et soyez friand de métamodèles !
L’étude cas et la présentation de deux outils MDA (Rational Software Architect et Objecteering MDA Modeler) ne sont pas la meilleure partie de l’ouvrage, mais elles complètent utilement celui-ci en donnant une illustration concrète.
Voilà donc un livre solide et complet sur MDA. Il requiert un peu e motivation pour aborder le sujet sous l’angle métamodèle, mais il équilibre de façon fort heureuse les principes et la pratique, le tout dans un volume raisonnable, puisque le livre compte 260 pages.
Référence complète : MDA en action : Ingénierie logicielle guidée par les modèles – Xavier Blanc – Eyrolles 2005 – ISBN : 2-212-11539-3
http://www.goodreads.com/book/add_to_books_widget_frame/2212115393?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on