Vous avez créé, avec Grady Booch et Jim Rumbaugh, le langage UML, qui a été largement adopté pour la modélisation logicielle. Quel avenir lui prédisez-vous ?Selon moi, UML sera un standard, avec tout ce qu’il faut pour en faire un langage exécutable. Aujourd’hui, vous devez d’abord modéliser, puis générer le code ?” en C++ ou en Java, par exemple. Demain, il existera plusieurs familles de langages ?” pour la modélisation business, pour la modélisation système, pour le temps réel. Mais elles seront toutes basées sur UML et pourront fonctionner sur différentes plates-formes, comme.Net, ou en environnement Java, par exemple. L’important, c’est que l’on n’ait qu’un seul langage de programmation. Et si l’on considère que l’on peut sans doute générer 80 %, voire 90 %, du code à partir de la phase de modélisation, vous n’avez alors besoin de Java et de C++ que pour les 10 à 20 % restants du code.L’objectif consiste donc, notamment, à simplifier les tâches de développement. Jusqu’où est-il possible d’aller dans ce sens ?Une étape importante consistera à assister le développement. L’idée, c’est que, dans un projet logiciel, chaque rôle peut être joué par un agent intelligent. Il y aura, par exemple, un agent pour le testeur, un pour le testeur de composants, un autre pour le concepteur de composants, un autre encore pour le spécialiste des “use cases”, pour l’architecte, etc. Ces agents seront des petits logiciels contrôlés par des règles. Ils seront proactifs dans le sens où ils pourront regarder un modèle de composant et suggérer une action. Un agent pourra, en outre, être sensible à un contexte lui permettant de comprendre exactement où en est le développeur. Il sera alors en mesure de suggérer des améliorations, ou la prochaine “microactivité” à exécuter. Par exemple, supposez que le développeur crée une classe. Avec les outils traditionnels, il faut créer la classe avec un éditeur, éventuellement générer une documentation sous traitement de texte, puis l’insérer dans le planning du projet, etc. Avec un agent, tout serait automatisé.Donc, même les non-informaticiens pourront développer du logiciel ?Dans le futur, 80 % des logiciels seront développés par des gens qui ne sont pas des programmeurs. De plus, les agents vont faire ressortir les processus business. A l’heure actuelle, ils sont déjà capables de capturer un langage spécialisé compréhensible par l’homme. Il en résulte ensuite un modèle, puis le modèle donne du code, et ainsi de suite.Au début des années quatre-vingt-dix, vous disiez qu’il était temps de penser à un cessez-le-feu dans la guerre des méthodologies. Compte tenu des évolutions que vous pressentez, où en est-on aujourd’hui ?Au regard des langages de modélisation, la guerre est finie. Tous les méthodologistes ont adopté UML. Ils reconnaissent simplement : “Le langage UML est correct, je peux faire avec”. Maintenant, nous allons nous battre sur les processus de développement. Il est vrai que j’attendais une plus forte opposition de la part des méthodologistes. Mais ils sont restés très silencieux. Tout ce qui arrive aujourd’hui, c’est la programmation extrême et l’alliance agile. C’est là une guerre très focalisée. Nous ne sommes pas en désaccord avec ce qu’ils disent, mais nous accordons plus d’importance qu’eux à l’architecture. Les méthodologistes agiles sont centrés sur le code. Or, je me dis que si je produis un bon modèle, je pourrai travailler à un plus haut niveau, puis générer le code. Ce qu’ils font est seulement insuffisant à mon avis.Pourquoi ?Il est très facile de faire d’un bon processus un processus agile, mais il est très difficile de faire d’un processus agile un bon processus. Et c’est un bon processus qui crée un bon logiciel. En revanche, ce qui est bien avec la communauté agile, c’est que ses membres ont identifié et exprimé clairement le fait qu’il fallait aller vite.Quelle sera la prochaine étape pour “aller plus vite” ?Nous réfléchissons au principe d’une place de marché pour composants. On ne développe plus aujourd’hui de systèmes d’exploitation ni de systèmes de gestion de bases de données, ni de middlewares. Le middleware, c’est du logiciel réutilisable dans un champ très large d’applications. Nous travaillons donc sur une place de marché pour composants, où l’on peut acheter et vendre des composants sur des marchés de niche. Dans n’importe quelle industrie verticale, on trouve déjà des composants logiciels susceptibles d’être réutilisés. Et ces composants ne sont pas simplement de petits composants, comme des composants UML. Ce sont parfois des sous-systèmes entiers.Quand cette place de marché pour composants sera-t-elle mise en route ?Nous avons formé un consortium avec des compagnies comme Microsoft et IBM. C’est un prérequis pour se mettre d’accord sur des standards. Cela peut prendre des années… Dans ce cas précis, je pense plutôt à un ou deux ans.
🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.