La démarche MDA
Défini par l'Object Management Group et formalisé en 2001, le MDA - Model Driven Architecture est inspiré des approches définies notamment par Shlaer et Mellor (OOA, Object Oriented Analysis), et trouve ses fondations au sein d'un ensemble de constats qui font l'unamimité dans l'industrie du logiciel :
Les auteurs d'UML dès son origine, ont souligné l'intérêt de produire un modèle d'analyse complet, indépendant de la cible technique, et qui représente un modèle « pivot », au sens où il est le point commun des différentes cibles techniques d'une application donnée.
Aussi, de nombreuses entreprises ont défini des processus de production du logiciel qui intègrent l'obtention d'un modèle d'analyse type MDA, i.e. qui possède les bonnes propriétés décrites dans le MDA : complétude, consistance, indépendance vis à vis de la cible technique.
Cependant beaucoup d'entre elles ont observé, pour la phase de production des modèles d'analyse UML, un retour sur investissement très mitigé : les phases de conception puis d'implémentation, qui consistent à transposer les modèles d'analyse en une solution exécutable spécifique à une plateforme cible, conduisent systématiquement à invalider certains modèles d'analyse ; la cause essentielle réside dans la réelle difficulté que l'on a à valider des modèles UML, sans pouvoir les exécuter, ou simuler leur exécution.
Se pose alors le problème de la correction et de la maintenance des modèles d'analyse, de la gestion de l'impact sur les modèles de conception, sur le code, les tests et les phases de validation, et bien sûr de l'intérêt d'un investissement sur une phase d'analyse généralement lourde (typiquement 20 à 25% du coût total d'un projet), qui ne conduit pas à des livrables valides.
De cet ensemble de limites est né le MDA. De façon très résumée, le MDA se propose d'adresser les problèmes suivants :
Les modèles fondamentaux : le PIM et le PSM
La démarche MDA dissocie deux livrables fondamentaux :
MDA et les phases d'un projet
On retrouve avec MDA les phases habituelles d'un projet : spécification, analyse, conception, implémentation et test. Nous détaillons ci-dessous les liens entre les livrables UML au sein du MDA.
Dans le schéma ci-dessus figurent :
Bien que ne figurant pas ici, il est à noter que la phase habituelle de tests unitaires, d'intégration et fonctionnels, est présente mais considérablement minimisée par le fait que le code critique réside dans les 5/10% écrits à la main ; le code généré est lui beaucoup moins exposé aux bugs techniques.