Département d'informatique Jean Privat

Détection de défauts de conception dans les programmes Nit

Contexte

Les défauts de conception sont des problèmes récurrents du développement de logiciels causés par des mauvais choix conceptuels. Des techniques et outils existent pour automatiquement détecter, voir corriger, certains de ces défauts dans les langages (et modèles) courants. Une des approches efficaces consiste à déterminer des métriques sur les programmes à analyser, déduire de ces métriques des "mauvaises odeurs" qui sont des défauts de conception de bas niveau d'abstraction, puis corréler ces mauvaises odeurs via des règles pour déterminer des "anti-patrons" potentiels (qui sont des défauts de conception de haut niveau d'abstraction).

Nit, en tant que nouveau langage de programmation, possède plusieurs caractéristiques originales dont, entre autres, la banalisation de l'héritage multiple et le raffinement de classes qui permet à un module de modifier une classe existante. Ces caractéristiques font que les techniques et outils qui se basent sur des modèles objets traditionnels ne sont pas complètement adaptés aux programmes Nit.

Objectif

Le projet consiste à adapter les techniques de détection de défauts de conceptions existantes au langage Nit:

  • Quels sont les anti-patrons et mauvaises odeurs récurrents des programmes Nit ?
  • Quels sont les défauts originaux spécifiques à Nit ?
  • Quelles sont les métriques pertinentes et les règles permettant la détection des défauts de conception récurrents des programmes Nit ?

Validation

À la fin du travail, l'étudiant aura:

  • implémenté la collecte des métriques manquantes pour la détection (l'outil nitmetrics permet déjà de collecter de nombreuses métriques) ;
  • implémenté les règles de détection des mauvaises odeurs et des anti-patrons grâce aux métriques collectées ;
  • évalué ses métriques sur des programmes Nit existants.

Encadrement

  • Jean Privat, professeur à l'UQAM, dont l'expertise porte sur les langages à objets et la compilation.
  • Naouel Moha, professeure à l'UQAM, dont l'expertise porte sur le génie logiciel et les patrons/anti-patrons de conception