ACTUALITÉ SCIENTIFIQUE
ET INNOVATION DE L'ÉTS
Améliorer la qualité du code source par l’intelligence artificielle - Par : Substance,

Améliorer la qualité du code source par l’intelligence artificielle


Accueilli au Département de génie logiciel et des TI à l’automne 2017, le professeur Ali Ouni s’intéresse à la maintenance, à l’évolution et à la qualité des logiciels ainsi qu’à l’application des techniques d’optimisation, dont les métaheuristiques, en génie logiciel.

 

Réusinage du code source

L’image d’en-tête a été achetée sur Istock.com et est protégée par des droits d’auteur.

Natif de Tunisie où il avait reçu la plus prestigieuse bourse d’études du gouvernement tunisien pour la qualité de son baccalauréat et de sa maîtrise, Ali Ouni a choisi de venir faire son doctorat à l’Université de Montréal, où il a obtenu un doctorat en informatique en 2014. Sa thèse lui a valu le prix d’excellence le plus prestigieux accordé aux candidats au doctorat de l’Université de Montréal.

Ses études, projets de recherche et mandats d’enseignement l’ont mené aux États-Unis, au Japon et au Moyen-Orient. Pendant ses études doctorales, il a été chercheur invité à l’Université du Michigan et à l’Université du Missouri. Il a par la suite fait des recherches et enseigné à l’Université d’Osaka, au Japon, et à l’Université des Émirats arabes unis, avant d’être accueilli à l’ÉTS.

Réusinage du code source

S’intéressant particulièrement à l’ingénierie logicielle et aux systèmes logiciels orientés objet et orientés service, ses recherches portent entre autres sur l’utilisation de techniques liées à l’intelligence artificielle – dont l’apprentissage machine et les métaheuristiques – pour créer des outils et des approches d’amélioration de la qualité des logiciels. L’objectif est de soutenir le cycle de vie volatil des logiciels en trouvant des meilleures méthodes pour réduire et gérer la complexité croissante des systèmes logiciels. Ultimement, ces techniques permettent d’augmenter la productivité des développeurs et de réduire substantiellement les coûts de maintenance des logiciels, lesquels représentent environ 70 % du budget total d’un logiciel.

Développeurs programmant un logiciel

« Généralement, les développeurs se concentrent sur la correction des bogues, l’ajout de nouvelles fonctionnalités et l’adaptation aux nouveaux environnements. Ils sont souvent soumis à des contraintes de temps et de budget et ne peuvent concevoir/coder une solution parfaite, respectant les règles de l’art, ni même maintenir les standards de qualité durant le cycle de vie du logiciel sans outils automatisés efficients.

C’est là que mes recherches prennent de l’importance. J’essaie de faire la promotion et de mettre au point de bonnes pratiques de programmation et de conception des logiciels », explique le chercheur. « Le réusinage est une technique disciplinée qui vise à améliorer progressivement la qualité d’un logiciel en améliorant la structure interne d’un programme, tout en préservant son comportement externe ».

Approche multiobjective du réusinage

Dans sa thèse de doctorat, le professeur proposait une approche multiobjective pour améliorer la qualité du logiciel (la flexibilité, la maintenabilité, etc.), corriger les « mauvaises » pratiques de conception (défauts de conception), et introduire les « bonnes » pratiques de conception (patrons de conception) au moyen du réusinage automatisé. Encore aujourd’hui, ces objectifs résument bien les grands axes de son expertise.

Conception d’un logiciel

Ali Ouni rêve entre autres de développer des outils conviviaux, robustes et pratiques, qui fonctionneraient en temps réel et révolutionneraient la façon dont les développeurs implémentent, maintiennent et font évoluer leur code. Ces outils seraient intégrés dans les environnements de développement modernes.

Liens avec l’industrie

Ayant à son actif de l’expérience industrielle acquise chez Ford, au Michigan, et Panasonic, au Japon, le professeur Ouni entend poursuivre sa collaboration avec ces organisations, mais également développer de nouveaux partenariats avec l’industrie québécoise.

Un auteur prolifique

Les publications du professeur Ouni sont souvent citées et la qualité de ses travaux lui a déjà valu des prix prestigieux. Récemment, il a été listé parmi les chercheurs « les plus actifs en génie logiciel dans les revues scientifiques les plus prestigieuses, dans la catégorie des chercheurs en début de carrière » selon une revue de la littérature publiée dans Journal of Systems and Software. L’un des premiers chercheurs à s’intéresser à la préservation de la cohérence de la sémantique du code source et lors du processus du réusinage, il a récemment été désigné comme l’un des chercheurs les plus actifs dans le domaine « réusinage basé sur des recherches » dans une étude publiée dans le journal Information and Software Technology.