Detection et analyse de l'impact des defauts de code dans les applications mobiles. (Detection and analysis of impact of code smells in mobile applications)
Les applications mobiles deviennent des logiciels complexes qui doivent etre developpes rapidement tout en evoluant de maniere continue afin de repondre aux nouveaux besoins des utilisateurs ainsi qu'aux mises a jour regulieres du contexte d'execution, a savoir le systeme d'exploitation des peripheriques mobiles. S'adapter a ces contraintes peut provoquer la presence de mauvais choix d'implementation ou de conception que nous appelons defauts de code. La presence de defauts de code au sein d'une application peut degrader la qualite et les performances d'une application en compliquant les taches de maintenance et d'evolution. Il est alors important de connaitre ces defauts mais aussi de pouvoir les detecter et les corriger, afin de permettre aux developpeurs d'ameliorer la qualite et les performances de leur application. Les defauts de code sont bien connus pour les applications orientes objets et de nombreux outils permettent leurs detections, mais ce n'est pas le cas pour les applications mobiles. Les connaissances concernant les defauts de code dans les applications mobiles sont lacunaires, notamment au niveau de l'impact de la correction de ces defauts sur l'application, de plus les outils permettant la detection et la correction des defauts sont inexistants ou peu matures. Nous presentons donc ici une classification de 17 defauts de code pouvant apparaitre dans les applications Android, ainsi qu'un outil permettant la detection et la correction des defauts de code sur Android. Nous appliquons et validons notre methode sur de grandes quantites d'applications (plus de 3000) dans deux etudes qui evaluent la presence et l'evolution du nombre des defauts de code dans des applications populaires. De plus, nous presentons aussi deux approches destinees a evaluer l'impact de la correction des defauts de code sur les performances et la consommation d'energie des applications. Nous avons applique ces approches sur des applications libres ce qui nous a permis d'observer que la correction des defauts de code est benefique dans la plupart des cas.