Comment va la santé… de votre écosystème logiciel?

par Christian Du Brulle

Quand il parle de ses recherches portant sur le génie logiciel, le Pr Tom Mens (Université de Mons) aime faire un parallèle avec le « Jenga ». Il s’agit de ce jeu de blocs de bois disposés en une tour où un à un les joueurs doivent retirer un élément. Le perdant étant celui qui déstabilise tellement l’ensemble, en prélevant le bloc de trop, que tout s’écroule.

« En ce qui concerne les écosystèmes logiciels, c’est exactement la même chose », confie le Dr Mens, du service de Génie Logiciel, au département d’Informatique de l’UMons.

Les logiciels open source: une priorité

« Mais le jeu est bien plus complexe. Dans un écosystème informatique, et je m’intéresse tout particulièrement à ceux qui sont « open source », les blocs sont très nombreux, particulièrement variés et souvent interdépendants. Pourquoi se concentrer sur l’open source? Parce que 80% des logiciels utilisés dans n’importe quel outil technologique aujourd’hui sont open source », précise le chercheur.

Ces écosystèmes logiciels, comme tous les écosystèmes, qu’ils soient informatiques ou biologiques, sont en constante évolution, d’une longévité importante et particulièrement hétérogène.

Effet boule de neige

En informatique, un groupe ou un développeur qui travaille sur un sous-système, sur un petit logiciel bien spécifique, va tenter de l’améliorer, de le développer avec l’aide et les commentaires de ses collègues et de la communauté. Si son programme génère un problème dans un autre programme, le développeur est alerté et tente de le corriger ».

L’écosystème logiciel est une sorte de mille-feuille où la faiblesse d’un élément peut gâter l’ensemble du produit. Si un programme « A » est utilisé par un programme « B », lui-même indispensable au bon fonctionnement d’un programme « C », on imagine sans peine la fragilité de l’ensemble si « A » venait à causer des problèmes; « Où s’il n’était plus régulièrement mis à jour, par exemple pour assurer sa propre sécurité », précise Tom Mens.

Prévenir des problèmes techniques, mais aussi sociaux

Les problèmes potentiels de santé des écosystèmes informatiques sont donc de deux types: techniques d’une part, mais aussi sociaux. Si un développeur ou un groupe de développeur décide d’abandonner le suivi de tel ou tel programme, cela risque à terme de causer pas mal de souci à l’ensemble de la communauté et des utilisateurs. « Quand on parle du volet social de cette problématique, il ne s’agit pas uniquement de l’abandon du suivi d’un programme. Et il peut aussi s’agir de simples problèmes de communication entre développeurs, de jalousie au sein d’une équipe… », souligne le Pr Mens.

Depuis 2012, l’UMons a développé une belle expertise dans ce domaine. D’abord en s’inspirant des écosystèmes biologiques pour modéliser l’évolution des écosystèmes logiciels.

Ensuite en participant à un programme commun avec le Québec (« SECO Health »). Ce programme est toujours en cours et tente pour sa part d’identifier les indicateurs des problèmes de santé des logiciels afin de prédire l’impact de leur propagation. Bien sûr, il s’agit aussi de formuler des recommandations pour enrayer cette spirale délétère.

Un projet « Excellence of Science »

Enfin avec « SECO-Assist », un des premiers programmes de recherche bicommunautaire « EOS » (Excellence of Science ), cogéré par le F.R.S.-FNRS et son alter ego flamand, le FWO, il s’agit de passer à la vitesse supérieure.

« Quatre équipes mettent leurs compétences en commun afin de réaliser une percée scientifique dans ce domaine », précise le Dr Mens, coordinateur de ce projet. « Il s’agit d’assister les écosystèmes de l’avenir en matière de résilience, d’évolutivité, d’hétérogénéité, mais aussi en matière d’interactions sociales ».

Ce dernier objectif social est plus particulièrement pris en charge par l’UMons. Les chercheurs de l’Université de Namur, de leur côté, se concentrent sur l’optimisation de l’utilisation des bases de données (logicielles). Du côté de la Vrije Universiteit Brussel (VUB), les chercheurs travaillent sur la réutilisation des logiciels disponibles tandis qu’à l’Université d’Anvers (UAntwerpen), l’équipe partenaire désire mettre au point des tests automatiques analysant les composantes de l’écosystème afin de détecter préventivement les bugs potentiels.

À Mons, en vue d’améliorer la santé sociale des écosystèmes logiciels, l’équipe va se concentrer sur diverses tâches:

  • – identifier les contributeurs « toxiques »
  • – retenir les « contributeurs clés »
  • – attirer de nouveaux contributeurs
  • – s’assurer d’une diversité suffisante
  • – prédire les risques d’abandon

Le travail va être long: quatre ans. Mais Tom Mens et ses collègues sont confiants. « Nous allons nous inspirer des travaux issus d’autres disciplines, dit-il. Par exemple ceux réalisés en matière d’écologie (biodiversité), en toxicologie ou encore en sociologie/psychologie » pour trouver des solutions ».