Pour simplifier, Leonardi est un générateur d'IHM, qui se base sur le MCD de l'application : on lui donne en entrée le modèle de données, ainsi qu'un certain nombre de paramètres, et il conçoit l'interface de l'application.

C'est cette idée de générer des IHM (voire de manière plus générale du code) à partir du modèle de données qui constitue le paradigme "Model Driven Architecture" (MDA).

Celui-ci a maintenant plusieurs années et on voit arriver sur le marché des produits matures basés dessus : ainsi, Leonardi n'est pas le seul acteur libre du marché : il en existe au moins deux autres que sont AndroMDA et Appfuse.

Cependant, même si ces produits ont le même but, ils n'ont pas la même approche technique :

  • Leonardi génère un code spécifique, le "MMI Model" (sous forme XML). Celui-ci est embarqué dans l'application finale, et est parsé dynamiquement à l'exécution par un MMI Engine, qui générera l'interface. Le "MMI Model" est générique, il existe plusieurs "MMI Engines", spécifiques à la cible désirée (client riche, PDA, application web...).
  • AndroMDA et Appfuse sont tous deux basés sur Maven. Chacun dispose de plusieurs "connecteurs" de sortie (JSF, Struts, SpringMVC), et en fonction de celui qui est choisi, ils génèrent le code correspondant. Aucun moteur spécifique à ces produits n'est nécessaire à l'exécution.

Note : à côté de ces solutions gratuites, il existe plusieurs autres solutions MDA payantes, telles que Celerio de Jaxio, dont nous avions déjà parlé. Il semblerait que cette solution offre beaucoup plus de fonctionnalités qu'un Appfuse (par exemple), mais le prix n'est pas du tout le même.