Connaissez-vous le paradigme 'Model Driven Architecture (MDA)' ?

Connaissez-vous le paradigme 'Model Driven Architecture (MDA)' ?

MDA signifie Model Driven Architecture. L’idée de générer une partie d’application (plus ou moins importante) à partir d’un modèle de données et de diagrammes d’interactions et d’utilisations (tel que l’UML) n’est pas nouveau, mais aujourd’hui il existe de très bon outils (libres ou non) permettant de le faire. ...

MDA

MDA signifie Model Driven Architecture. L’idée de générer une partie d’application (plus ou moins importante) à partir d’un modèle de données et de diagrammes d’interactions et d’utilisations (tel que l’UML) n’est pas nouveau, mais aujourd’hui il existe de très bon outils (libres ou non) permettant de le faire. Adromeda en fait partie.

J’ai traduit ici, le descriptif du projet AndroMDA sur la page d’accueil du site:

AndroMDA (à prononcer”Andromeda”) est un framework de génération extensible qui adhère au paradigme ‘Model Driven Architecture (MDA)’. Des Modèles UML peuvent ainsi être transformés en composants déployable pour votre plateforme favorite (J2EE, Spring, .NET). Contrairement aux autres outils MDA, AndroMDA est livré avec un set de cartouches déjà fonctionnels qui ont pour cibles des outils de développement actuels tels que Axis, jBPM, Struts, JSF, Spring and Hibernate. AndroMDA permet également de développer ses propres cartouches ou bien de customiser celles existantes. Il est ainsi possible de générer un code customisé à partir de son outils UML favoris.

AndroMDA est livré avec les fonctionnalités suivantes:

  • Un design modulaire: les principaux blocs d’AndroMDA sont pluggable and et peuvent être échangés pour satisfaire vos besoin.
  • Supporte les principaux outils UML tels MagicDraw, Poseidon, Enterprise Architect et bien d’autres.
  • Des templates basés sur des moteurs de templates reconnus. actuellement, Velocity et FreeMarker sont supportés.
  • Des cartouches prêtes à l’emploi pour les architectures d’entreprise les plus connues (EJB, Spring, Hibernate, Struts, JSF, Axis, jBPM).
  • Site d’AndroMDA: http://www.andromda.org.

Je trouve ce concept très efficace, c’est pour cette raison que j’en parle ici. A noter qu’AndroMDA est un projet Open-Source qui repose sur Maven. De plus un plugin Eclipse sera bientôt disponible pour une meilleur intégration.

Concernant le support de Java EE 5, une cartouche EJB3 sera bientôt disponible.

Pour conclure, je vous conseille d’essayer de toute urgence. Attention cependant, si vous n’êtes pas familier avec ce type de développement (MDA), je vous conseille de prévoir une petite demi-journée pour mieux cerner les avantages de cette méthodologie de développement, et tester par vous-même.

Un tutoriel pas à pas est disponible sur le site du projet.

Un des avantages non négligeable de ce type de méthodologie de développement, est le gain de temps, qui permet de mieux se concentrer sur la couche service de l’application, et non sur d’autres couches, qui ne nécessitent pas le temps qu’on leur consacre habituellement.

Une association magique selon moi:

UML + MDA => EJB3 & JSF => Un projet avec un modèle généralement plus clean et un cycle de développement plus court. Attention, les EJB3 et les JSF étant des technologies très récentes, je vous conseille plutôt de générer du code pour Struts et Hibernate.

N’hésitez pas à poster des commentaires et infos, si le sujet vous intéresse, je suis très intéressé par le sujet.