INTERVIEW 
 
Imad Bernoussi
Responsable marketing
technique

Netfective Technology
Imad Bernoussi (Netfective)
"Il est possible en dix minutes de générer une application métier, sans faire appel à des développeurs"
En lançant leur atelier de génération d'application Java/.Net, Netfective cherche à exploiter pleinement les possibilités d'UML, et par ce biais à bouleverser le monde du développement industriel.
24/11/2006
 
JDN Développeurs. Quelles innovations proposez-vous avec votre solution Blu Age ?
  En savoir plus
 Netfective Technology
Dossier Les plates-formes applicatives
  Sur le Web
Netfective Technology
Blu Age
Imad Bernoussi. Blu Age est un atelier permettant de générer des applications J2EE/.Net, sans recours à des ressources de développement, mais à partir de modèles UML/OCL. Les applications sont complètement générées sur la base des spécifications de l'environnement technique sur lequel l'application devra tourner. Blu Age s'affranchit de la nécessité de développer : l'intégralité de l'application est générée - et pas seulement une partie du code qu'il faudrait ensuite intégrer - de bout en bout, jusqu'aux fichiers EAR (ndlr : Enterprise ARchive, un format de paquetage utilisé par Java EE), dont les interfaces graphiques.

De fait, parce que l'on se base sur UML, le code source reste indépendant de la plate-forme de génération. Il est également facile de respecter les standards énoncés par les frameworks, afin de pouvoir reprendre le modèle UML en dehors de Blu Age. L'ensemble de l'application s'interface simplement, par le biais du standard XMI (ndlr : XML Metadata Interchange, un standard d'échange de données UML), avec les outils et méthodes du marché qui modélisent UML.

Depuis combien de temps la génération automatique d'application depuis des modèles UML est-elle une réalité ?

Les standards existent depuis un moment, mais ils arrivent aujourd'hui à maturité d'utilisation, tant pour les collaborateurs que les clients. Nous avons ainsi commencé avec UML 1.4, maintenant UML 2.0 et XMI 1.2. Auparavant, le développement se faisait uniquement sur des documents de conception technique, qui au final ne servaient à rien. Avec le temps, beaucoup de générateurs de code sont apparus, mais cela nécessitait une forte adaptation en fonction des plates-formes techniques. Maintenant, avec UML et un outil comme Blu Age, il est possible de disposer de la documentation UML et de générer le projet à partir de celle-ci, sans retouche de code.

Notre propre projet remonte à 2004, et si je suis convaincu que d'autres y travaillent, je pense que nous sommes les premiers aujourd'hui à garantir la génération d'application de A à Z. Cela répond tant à nos besoins internes qu'à la réalité du marché : faire face à la complexité technologique, disposer de plus d'agilité face aux utilisateurs...

Il n'y a pas de limite. Dès lors que vous pouvez représenter une complexité en UML, il est possible de la générer."
Quel niveau de complexité pour l'application peut-on atteindre à partir de modèle UML ?
Nous ne voyons pas de limites. Dès l'instant où vous pouvez représenter une complexité, il est possible de la générer. Toutes nos applications de gestion ont été générées au travers de représentations, sans devoir coder, en dehors de quelques cas particuliers. On arrive à tout faire dans le domaine de l'application de gestion : place de marché, back-office, site web distribué, utilisation avec ou sans souris... C'est une avancée pour la réalisation d'applications au forfait. Bien sûr, si par exemple on a besoin de réaliser des calculs compliqués, on ne modélise pas l'algorithme, mais on se reposera sur un appel de bibliothèque. C'est d'ailleurs nécessaire quand on a des clients qui préfèrent ne pas dévoiler leurs algorithmes internes.

Existe-t-il des paliers, ou des domaines, où il devient plus intéressant de coder directement plutôt que de passer par UML et un générateur ?
Il s'agit là d'un problème d'approche, de philosophie. Avec Blu Age, il n'y a pas de développement, mais du travail sur le modèle de conception, et le processus de génération. Dans les faits, il est possible de déboguer et regénérer une application sans faire appel à des développeurs, en 10 minutes.

Si on parle de paliers, il est évident que pour les petits bouts de code ponctuels, il mieux vaut travailler à la main. La génération d'application vise plutôt le groupe de personnes travaillant de concert à une réalisation. Nous parlons ici d'outils industriels, conçus avec une méthode qui pourrait remplacer facilement une partie des équipes qu'on exporte actuellement à Bombay, y compris à Bombay même.

Quels types d'application se trouvent encore en dehors des possibilités d'UML ?
UML peut tout représenter : le standard est fait pour ça, il couvre tout. On dispose de formalismes. Si vous prenez Photoshop, par exemple, avec une opération qui applique des filtres : on peut la modéliser. Le problème reste le suivant : à quel degré utiliser UML ? S'il s'agit de modéliser les algorithmes au détail près, cela n'en vaut pas la chandelle. On peut encapsuler les fonctions, les remonter dans le modèle, et réaliser tout l'enrobage.

Les usages d'UML se font par domaines applications, des usages typés sur lesquels il faut réfléchir en amont. Blu Age dispose de ses propres méthodes de génération, qu'il est tout à fait possible d'adapter : le produit est "ouvert", pas spécialisé. Il se peut qu'une modélisation nécessite une adaptation en amont, mais cela n'est jamais bloquant, quelle que soit la complexité de l'application.

Tous les domaines logiciels du monde peuvent être modélisés, sur le papier. Dans les faits, il y a un savoir-faire à avoir face aux modèles. UML n'apporte pas tout sur un plateau.

Sur le papier, tout peut être modélise, mais UML n'apporte pas tout sur un plateau."
Blu Age peut générer des applications Java et .Net. Comment se précisent les descriptions des interfaces graphiques pour chaque plate-forme ?
Le modèle UML utilisé reste standard. La maquette statique, implémentation MDA servant de modèle indépendant de la plate-forme, dispose de notions interprétées coté noyau. La complexité des interfaces graphiques est donc masquée au niveau du noyau. L'interface est tout d'abord représentée sous forme de maquette XHTML, puis généré au moyen de gabarits de génération, qui prend en charge le code ou les pages dynamiques selon la plate-forme.

Combien de temps cela prendrait-il de mettre en place un générateur pour une autre plate-forme, par exemple Flash ou XAML ?
Juste le temps de réaliser ce que l'on appelle des cartridge, ou cartouches de génération. Nous estimons le temps de développement à 20 ou 30 jours par cartouche, ce qu'il nous a fallu pour les cartouches JSF et Struts. Un certain nombre de cartouches est ainsi déjà implémenté, et utilisé au niveau des projets.

On ne va pas se lancer à avoir une cartouche pour tout, car les besoins technologiques changent tous les deux mois. Pour le moment, nous répondons aux besoins du marché, avec un jeu de cartouches déjà complet.

Considérez-vous la possibilité d'ouvrir le format de cartouche pour que chacun puisse ajouter son environnement à Blu Age ?
Pourquoi pas, mais cela implique des techniques d'export, dont il faut tirer les conséquences : comprendre ce qu'est un méta-modèle, comprendre la MDA, son application à l'environnement... UML dispose d'un certain nombre de diagrammes. Le problème que l'on se pose, c'est quel sens donner à tel ou tel type de diagramme. En fonction des normes d'une société, il faut donner un sens particulier à une interprétation, sens indépendant de la plate-forme technique, et de la méthode à utiliser pour ces diagrammes UML. Un même processus peut en UML être représenté avec différents types de diagrammes. Créer sa cartouche suppose d'adapter les profils UML et les méta-modèles, ce qui n'est pas donné à tout le monde.

Voyez-vous des outils équivalents arriver en masse sur le marché ?
Clairement, nous ne serons pas les seuls. Il va y avoir une émergence de ces outils ailleurs. Le métier évolue, et faire évoluer, par exemple, des développeurs Cobol vers les plates-formes modernes devient une nécessité. Problématique classique : comment faire pour que mes développeurs apportent une valeur ajoutée, sans se sentir idiots de ne pas être à jour. UML propose une rupture en terme de concept. En une dizaine de jours, un ex-Coboliste peut comprendre UML et composer une conception d'application. C'est tout l'intérêt de la vulgarisation d'UML, et la raison de l'existence de plus en plus de ponts entre le monde de la conception et celui de la génération.

Le couple UML/OCL devient aujourd'hui utile, et plus accessible. Bientôt, on pourra investir sur cette méthode, dès lors que l'on sait qu'une économie est rendue possible. UML devient, comme Java, une sorte d'Espéranto du développement : avec un même modèle, déployer sur plusieurs systèmes.

Blu Age vise à condenser 350 jours/hommes en 10 minutes de génération à partir d'un modèle UML."
UML est-il suffisamment simple et efficace pour devenir populaire auprès des développeurs Java ?
À l'heure actuelle, les développeurs se servent d'UML avant tout comme d'une méthode de documentation, pour montrer et discuter. De leurs côtés, les outils qui modélisent de l'UML ne débouchent le plus souvent sur rien : de la documentation au format Word ou UML, c'est joli, mais derrière, on dispose au mieux d'un éditeur de macros, donnant des bouts de code. Notre vision avec Blu Age, c'est de vraiment voir le résultat, de condenser 350 jours/hommes en 10 minutes de génération à partir d'un modèle.

Notre système de cartouche affranchit l'utilisateur de la conception technique, de la dépendance à la plate-forme. Un exemple concret : le passage de Websphere 5 à 6 a introduit une incompatibilité qui nécessitait de modifier 10 écrans un à un. Avec Blu Age, nous avons simplement mis à jour la cartouche, et le deuxième jour, en 10 minutes, l'application était regénérée. Cela évite les travaux dont la valeur ajoutée est inexistante, en les accomplissant dans un temps raisonnable.

Constatez-vous un problème d'adoption d'UML à l'heure actuelle ?
Les développeurs restent encore réticents face à UML : une fois la conception faite, ils ne voient pas encore quoi faire de celle-ci. C'est joli, mais rien ne tourne avec, ou dans le cas de générateurs basiques, cela ne marche que rarement. C'est la réalité actuelle.

Quelle est donc votre approche pour répondre à cette réticence ?
UML n'est pas un langage à compiler, mais une famille de langages, ou un méta-langage pour lequel il faut écrire le compilateur.Donc, Blu Age est un compilateur, avec ses propres modèles de génération, et pour cela il arrive à tout générer. C'est un instrument, l'outil pour ne pas tout faire à la main. Aujourd'hui, là où la génération à partir d'UML mène souvent à l'échec, notre méthode marche.

Est-il plus simple, rapide ou productif de développer avec UML puis générer en Java, que de coder en Java directement ?
  En savoir plus
 Netfective Technology
Dossier Les plates-formes applicatives
  Sur le Web
Netfective Technology
Blu Age
Cela dépend totalement de la taille du projet : les méthodes changent, l'industrialisation entre en jeu. On peut comparer cela à une voiture de ville et une Formule 1 : il y a des choses qui ne sont pas industrialisables, car pas intéressantes d'un point de vue économique. UML a sa place dans l'industrie du logiciel, pas chez le développeur isolé.
 
Propos recueillis par Xavier Borderie, JDN Développeurs

PARCOURS
 
 
Imad Bernoussi, 29 ans, est responsable marketing technique chez Netfective