Que cherchez-vous?
51 Résultats pour : « Portes ouvertes »

L'ÉTS vous donne rendez-vous à sa journée portes ouvertes qui aura lieu sur son campus à l'automne et à l'hiver : Samedi 18 novembre 2023 Samedi 17 février 2024 Le dépôt de votre demande d'admission à un programme de baccalauréat ou au cheminement universitaire en technologie sera gratuit si vous étudiez ou détenez un diplôme collégial d'un établissement québécois.

Événements à venir
Génie logiciel Recherche et innovation Les systèmes logiciels, le multimédia et la cybersécurité

Effet du réusinage sur la qualité des applications Android

Achetée sur Istockphoto.com. Droits d’auteur.

RÉSUMÉ:

Les applications (ou applis) mobiles doivent constamment évoluer et, parfois, les contraintes de temps sont telles que de mauvais choix de conception ou d’implémentation sont faits, causant inévitablement des problèmes de qualité logicielle. Le réusinage (aussi refactoring) est une approche largement reconnue pour résoudre ces problèmes de qualité. Alors que l’effet du réusinage sur la qualité des logiciels orientés objet a été largement étudié, ce n’est toujours pas le cas pour les applications mobiles. Cet article porte donc sur la première étude empirique visant à combler cette lacune. En effet, nous avons mené une étude empirique à grande échelle sur l’évolution de 300 applications Android à code ouvert constituant 42,181 opérations de réusinage. Nous avons analysé l’effet de ces opérations sur 10 métriques de qualité par une méthode d’inférence causale basée sur le modèle des doubles différences (DD). Nos résultats indiquent que lorsque le réusinage influence les métriques de qualité, il tend généralement à les améliorer. Par contre, dans de nombreux cas, le réusinage n’a pas d’effet notable sur les mesures de qualité, mais cause une détérioration de la mesure de cohésion LCOM (Lack of Cohesion Metric). Ces résultats mettent en lumière la pratique actuelle du réusinage dans le développement d’applications Android. Mots-clés : Application mobile, réusinage, qualimétrie, Android, étude empirique.

Introduction

Les applications Android subissent de constantes modifications et améliorations pour répondre aux exigences rapides et changeantes des utilisateurs. Ces activités de maintenance peuvent nuire à la qualité si elles sont mal gérées [1] [2]. Ainsi, pour faciliter l’évolution des logiciels, les développeurs doivent continuellement améliorer leur structure. Le réusinage est l’approche la plus courante pour améliorer la structure interne des systèmes logiciels sans affecter leur comportement externe [3] [4] [5].

Les applications mobiles diffèrent beaucoup des systèmes logiciels classiques [6] [7] [8] en raison de leurs limitations matérielles (mémoire, unité centrale, taille de l’écran, etc.), de la nature hautement dynamique du marché des applications mobiles et des exigences sans cesse croissantes des utilisateurs. Ces différences ont des répercussions sur le développement et l’évolution des applications mobiles. En effet, contrairement aux systèmes logiciels orientés objet [4] [9] [10], l’effet du réusinage sur la qualimétrie des applications mobiles a reçu peu d’attention.

Pour combler cette lacune, nous avons mené une étude empirique sur un ensemble de données composé de 300 applications Android à code ouvert. Nous avons analysé l’effet de 10 opérations de réusinage sur 10 métriques de qualité.

Conception de l’étude

Pour réaliser notre étude, nous avons conçu un essai contrôlé portant sur deux groupes de modifications de code. Le premier groupe était composé de changements de code liés au réusinage (groupe de traitement), et le second comportait des changements de code sans réusinage (groupe de contrôle). Ensuite, nous avons étudié l’effet des deux groupes sur la qualimétrie pour effectuer des analyses statistiques à l’aide du modèle des doubles différences (DD). La figure 1 décrit la démarche de notre étude, composée de six grandes étapes : (1) sélection des applications Android, (2) extraction du réusinage, (3) extraction des soumissions (commits), (4) extraction des changements non réusinés, (5) qualimétrie, et (6) analyse de l’effet du réusinage.

Étude empirique sur des applications Android

Figure 1. Démarche de notre étude empirique

Nous avons ciblé les applications Android à code ouvert offertes gratuitement dans Google Play (accompagnées de leur historique de versions hébergé sur GitHub) en faisant une recherche personnalisée sur GitHub. Nous avons obtenu un total de 19 212 applications. Ensuite, nos filtres ont réduit ce nombre à 1 923 applications valides. Enfin, nous avons choisi au hasard un ensemble de 300 applications représentant 15 % de l’ensemble final, ayant subi 42 181 opérations de réusinage.

Étape 2 : Extraction du réusinage

Dans cette étape, nous avons collecté toutes les opérations de réusinage relatives aux applications étudiées, à l’aide de RefactoringMiner, un outil de ligne de commande à code ouvert [11]. Dans l’ensemble, notre processus d’extraction a identifié 10 types communs de réusinage [3].

Étape 3 : Extraction des soumissions de changement

Après l’extraction de toutes les opérations de réusinage, nous avons collecté les ID de toutes les soumissions de réusinage et des soumissions qui précèdent immédiatement la soumission de réusinage. L’API de GitHub a facilité ce processus, en particulier, la commande git clone pour télécharger le code source de chaque soumission de réusinage et de sa soumission précédente.

Étape 4 : Extraction des changements non réusinés

À cette étape, nous avons extrait un ensemble de soumissions qui contiennent des changements non réusinés. Pour ce faire, nous avons choisi au hasard un ensemble de soumissions non réusinées représentant notre groupe de contrôle. Pour chaque soumission, nous avons collecté l’ID et les soumissions qui le précèdent. Ensuite, nous avons repris la procédure de l’étape 3 pour collecter leur code source.

Étape 5 : Qualimétrie

Nous avons mesuré un ensemble de facteurs de qualité pour chaque réusinage et pour les changements non réusinés. Pour calculer ces valeurs, nous avons eu recours à un outil à code ouvert populaire, le CK-metrics Suite.

Étape 6 : Analyse de l’effet du réusinage

Nous avons calculé les différences entre les valeurs qualimétriques avant et après le réusinage, de la classe. Ensuite, nous avons appliqué deux méthodes statistiques : (1) le test Rank Sum de Wilcoxon [12] et l’effet non paramétrique de Cliff’s delta [12], et (2) l’inférence causale [13].

Effet sur la qualimétrie

1. Réusinage

  1. Couplage : le réusinage a un effet positif important sur le couplage quant aux mesures CBO et RFC, mais pas sur la mesure NOSI. Les réusinages les plus influents favorisant un faible couplage sont la méthode Move et la méthode Extract and Move.
  2. Cohésion : les mesures de qualité de cohésion LCOM, TCC et LCC, peuvent présenter des variations statistiquement significatives dues aux opérations de réusinage liées au déplacement des attributs et des méthodes. Les réusinages qui influent le plus sur la cohésion sont l’attribut Move, la méthode Move, et la méthode Extract and Move. LCOM, par contre, semble plus volatile en cas de réusinage.
  3. Complexité : plusieurs types de réusinage ont tendance à améliorer la complexité en diminuant la mesure WMC. Les réusinages les plus concluants sont l’Extract Super Class, la méthode Extract et la méthode Move.
  4. L’héritage : les réusinages hiérarchiques peuvent améliorer l’attribut de qualité de l’héritage (DIT). Les réusinages les plus influents sont l’attribut Pull Up, l’Extract Super Class et la méthode Push Down.
  5. Taille de conception : la plupart des types de réusinage tendent à réduire les mesures de taille de conception LOC et VQTY. Les réusinages les plus influents sont l’Extract Superclass, la méthode Pull UP/Push Down et la méthode Move.

2. Modifications sans réusinage

Les mesures de qualité n’ont pas montré de changement significatif sans réusinage (groupe de contrôle), sauf LOC et VQTY qui ont tendance à augmenter après chaque soumission. En effet, il est normal que les mesures liées à la taille de la conception augmentent au fur et à mesure de l’évolution du projet. Ces résultats prouvent que les changements de mesures observés dans les données de l’étude sont dus aux activités de réusinage et non au hasard.

Conclusion

Nous avons présenté une étude de l’effet du réusinage sur la qualimétrie dans les applications Android. Nos résultats montrent que plusieurs types de réusinage ont un des retombées positives sur la qualimétrie (méthodes Move et Extract and Move). De plus, la cohésion (LCOM) est la mesure la moins cohérente, s’améliorant sous certains types de réusinage et se détériorant sous d’autres. Enfin, pour les soumissions sans réusinage, les mesures ne montrent aucun changement significatif, à l’exception évidente des mesures de taille de conception.

À propos des auteurs
Oumayma Hamdi is a Master’s degree student at ÉTS. Her research focuses on the quality of Android applications.

Ali Ouni est professeur au Département de génie logiciel et des TI à l’ÉTS. Ses travaux portent sur la qualité, la maintenance et l’évolution de logiciels, et sur l’application des techniques d’intelligence artificielle au génie logiciel.