
Le webzine de la recherche
Pour des logiciels sans défauts
Pr Ettore Merlo, Département de génie informatique et génie logiciel
Le Pr Ettore Merlo pratique la réingénierie des logiciels et de l’intelligence artificielle pour repérer et corriger les erreurs dans les programmes où détecter des similitudes entre des logiciels différents.
Comment assurer la qualité d’un logiciel produit par l’industrie ? « En le soumettant à des normes », déclare le Pr Ettore Merlo. « Il faut passer par les mêmes phases qu’en ingénierie classique: exigences, spécifications, design, implantation et tests. Le défi, c’est l’expansion permanente de la complexité et du volume des programmes informatiques. »
Ce spécialiste de la réingénierie des logiciels et de l’intelligence artificielle met au point des programmes qui analysent et transforment automatiquement les systèmes en PHP, C/C++, Java, Cobol, ou autres langages. Ses analyses peuvent servir à la vérification de la sécurité des applications informatiques, domaine de haute pertinence dans le contexte actuel. Les analyses structurelles, statiques et dynamiques peuvent aller jusqu’à l’analyse par réseaux de neurones des informations en langue naturelle dans les systèmes (variables, commentaires, documentation).
Le Pr Merlo a également développé des approches automatiques pour sélectionner ou générer des tests pour les logiciels. Ses recherches s’orientent également vers l’analyse des duplications de fragments de code. « Lorsqu’on duplique des parties de code pour les modifier, les erreurs résiduelles sont dupliquées et propagées aussi. Nous sommes capables de retracer de façon efficace et précise les duplications modifiées et les variations profondes entre plusieurs versions d’un gros logiciel. Nous savons aussi repérer les similitudes entre deux logiciels différents. C’est, entre autres, utile dans les cas de litige sur la propriété intellectuelle. »