Séminaire: Venera Arnaoudova

Qui? Venera Arnaoudova, post-doctorante dans l’équipe de Naouel Moha Quand? Mercredi, le 10 septembre 2014, à 11h45 pour la pizza. Où? PK-5115 Titre: Vers l’amélioration du lexique du code source et sa cohérence Resumé: La compréhension de programmes est une activité clé au cours du développement et la maintenance de logiciels. Bien que ce soit une activité fréquente—même plus fréquente que l’écriture de code—la compréhension de programmes est une activité difficile et la difficulté augmente avec la taille et la complexité du programme. Le plus souvent, les mesures structurelles—telles que la taille et la complexité—sont utilisées pour identifier ces programmes complexes et sujets aux défauts. Cependant, nous savons que l’information linguistique contenue dans les identifiants et les commentaires—c’est-à-dire le lexique du code source—font partie des facteurs qui influent la complexité psychologique du programme, c’est-à-dire facteurs qui rendent un programme difficile à comprendre et à maintenir par des humains. Dans cette recherche, nous apportons la preuve que les mesures évaluant la qualité du lexique du code source sont un atout pour l’explication et la prédiction des bogues. La qualité des identifiants et des commentaires peut ne pas être suffisante pour révéler les bogues si on les considère en isolation—dans sa théorie sur la compréhension de programmes par exemple, Brooks avertit qu’il peut arriver que les commentaires et le code soient en contradiction. Nous adressons le problème de la contradiction et, plus généralement, d’incompatibilité du lexique en définissant un catalogue d’Antipatrons Linguistiques (LAs), que nous définissons en tant que mauvaises pratiques dans le choix des identifiants résultant en incohérences entre le nom, l’implémentation et la documentation d’une entité de programmation. Nous évaluons empiriquement les LAs par des développeurs de code propriétaire et libre et montrons que la majorité les développeurs les perçoivent comme mauvaises pratiques et par conséquent elles doivent être évitées. Nous distillons aussi un sous-ensemble de LAs canoniques que les développeurs perçoivent particulièrement inacceptables ou pour lesquelles ils ont entrepris des actions. En effet, nous avons découvert que 10% des exemples contenant les LAs ont été résolus par les développeurs après que nous les avons fait remarquer. Les explications des développeurs et la forte proportion de LAs qui n’ont pas encore été résolus suggèrent qu’il peut y avoir d’autres facteurs qui influent sur la décision d’éliminer les LAs, qui est d’ailleurs souvent fait par le moyen de renommage. Nous menons une enquête auprès des développeurs et montrons que plusieurs facteurs peuvent empêcher les développeurs de renommer. Ces résultats suggèrent qu’il serait plus avantageux de souligner les LAs et autres mauvaises pratiques lexicales quand les développeurs écrivent du code source— par exemple en utilisant notre plugin LAPD Checkstyle détectant des LAs—de sorte que l’amélioration peut se faire sur la volée et sans impacter le reste du code.

Comments are closed.