Simple Science

La science de pointe expliquée simplement

# Informatique# Génie logiciel# Informatique distribuée, parallèle et en grappes

S'attaquer aux mauvaises pratiques de code dans les plateformes cloud open-source

Un nouvel outil cible les problèmes de qualité du code dans les applications cloud.

― 7 min lire


Qualité du code dans lesQualité du code dans lesplateformes cloudqualité du code.Nouveau outil qui évalue et améliore la
Table des matières

Les plateformes cloud open-source deviennent de plus en plus populaires pour les entreprises car elles sont bon marché et permettent une mise en place rapide d'applications. Cependant, à mesure que ces plateformes deviennent plus avancées, elles rencontrent des problèmes liés à la qualité du code, ce qui peut les rendre difficiles à maintenir. Les "code smells", qui sont des signes de problèmes plus profonds dans le code, peuvent mener à de tels problèmes de qualité. Bien qu'il y ait eu beaucoup d'attention sur les avantages de l'utilisation du cloud open-source, pas assez d'attention n'a été accordée à l'amélioration de la qualité du code lui-même.

Qu'est-ce que les Code Smells ?

Les code smells sont des motifs dans le code qui suggèrent qu'il pourrait y avoir un problème, ce qui peut affecter la facilité de maintenance du logiciel. Corriger ces code smells, un processus connu sous le nom de Refactoring, peut aider à améliorer la qualité du logiciel. Malheureusement, il manque des outils et des méthodes pour trouver et traiter ces odeurs dans l'environnement cloud.

Le défi de la Détection des Code Smells

Pour mieux maintenir les applications cloud open-source, il est important d'analyser quels code smells se produisent le plus souvent dans les environnements cloud et de créer des outils pour les repérer. Cet article propose un système appelé CloudScent qui recherche ces code smells spécifiquement dans les plateformes cloud open-source. Nous avons testé notre méthode dans des environnements cloud réels en utilisant OpenStack, une plateforme cloud open-source bien connue.

Le besoin de CloudScent

L'informatique cloud permet aux utilisateurs d'accéder facilement à des ressources partagées. Cependant, à mesure que les organisations comptent de plus en plus sur l'informatique cloud open-source, maintenir la qualité du code reste un défi. La présence de code smells peut avoir un impact considérable sur la maintenabilité et la fiabilité de la plateforme cloud open-source. Alors que les efforts précédents se sont concentrés sur la détection des code smells en utilisant des commentaires d'utilisateurs et d'autres méthodes, ces approches négligent souvent les besoins spécifiques des applications cloud.

Le modèle CloudScent

CloudScent utilise des règles pour trouver différents types de code smells dans des domaines clés des plateformes cloud open-source. Les principales zones que nous avons examinées dans OpenStack incluent nova, keystone, horizon et neutron. Nous nous sommes concentrés sur huit types spécifiques de code smells, y compris le code répétitif, le code mort, les multiples retours, les longues déclarations, les noms de fonctions, les longues classes et méthodes, les longues listes de paramètres et les longues conditions et boucles.

Comment fonctionne CloudScent

CloudScent repose sur un ensemble de règles qui aident à identifier ces odeurs spécifiques. Une fois que nous avons sélectionné les huit code smells que nous voulions cibler, nous avons conçu un ensemble d'algorithmes pour les trouver dans le code. Le système a été testé en utilisant des fichiers de code d'exemple et des cas réels d'OpenStack.

Processus de détection des Code Smells

Le processus de détection commence par décomposer le code en unités gérables, dans ce cas, des fonctions. Chaque fonction est analysée pour diverses caractéristiques telles que le nombre de lignes de code, les paramètres et les variables. Si une fonction correspond aux critères de l'un des code smells ciblés, le système enregistre les détails.

Par exemple, pour trouver le code mort, le système vérifie s'il y a des lignes qui n'effectuent pas d'opérations utiles. Pour les longues déclarations, il divise les lignes de code en parties plus petites et les compte pour déterminer si l'une d'elles dépasse des limites de longueur raisonnables. De même, les longues boucles et les longues conditions sont identifiées en fonction du nombre de lignes qu'elles occupent.

Expérimentation et résultats

Le modèle CloudScent a été testé dans l'environnement OpenStack en utilisant des fichiers de code Python. Nous nous sommes concentrés sur les quatre principaux composants d'OpenStack, ce qui nous a aidés à comprendre l'occurrence des différents code smells dans ces domaines.

Lorsque nous avons exécuté CloudScent, nous avons constaté qu'il pouvait identifier de manière cohérente les code smells sélectionnés lors de plusieurs tests, indiquant sa fiabilité. Les résultats ont montré qu'à mesure que la taille des fichiers de code augmentait, le nombre de code smells avait également tendance à augmenter. Par exemple, nous avons remarqué que le code répétitif commençait à apparaître plus fréquemment dans les fichiers de plus de 900 lignes de code.

Implications pour les développeurs Cloud

Les résultats de CloudScent peuvent fournir aux développeurs cloud des aperçus précieux pour maintenir la qualité du code des plateformes cloud open-source. En sachant quels code smells sont répandus, les développeurs peuvent prendre des décisions éclairées sur les domaines à privilégier pour leurs efforts de refactoring.

La normalisation des odeurs détectées a montré un schéma clair : les fichiers plus volumineux avaient tendance à avoir plus de code smells. Cela souligne l'importance d'auditer régulièrement les fichiers plus grandes pour résoudre les problèmes avant qu'ils ne s'aggravent.

Préoccupations de validité

Bien que notre recherche ait produit des résultats utiles, il y a certaines limitations. Notre focus était principalement sur OpenStack, donc les résultats pourraient ne pas s'appliquer universellement à toutes les plateformes cloud open-source. Les recherches futures devraient tester CloudScent sur d'autres environnements cloud pour voir si des schémas similaires sont trouvés.

De plus, impliquer des experts de l'industrie dans nos évaluations pourrait fournir de meilleures perspectives sur la précision et l'efficacité de la détection des code smells. Puisque nous avons examiné une seule version d'OpenStack, des tests supplémentaires avec différentes versions aideraient également à garantir la fiabilité de nos résultats.

Directions futures

Nous prévoyons d'étendre CloudScent pour suggérer des corrections possibles pour les code smells détectés, en veillant à ce que les changements apportés ne cassent pas la fonctionnalité existante. Nous visons également à identifier les causes profondes de ces odeurs dans l'environnement cloud.

De plus, nous sommes intéressés à modifier l'outil pour détecter un plus large éventail de code smells et à le tester sur d'autres projets pertinents, comme OpenNebula. Travailler avec des professionnels de l'industrie cloud nous aidera également à valider notre modèle proposé de manière efficace.

Conclusion

En conclusion, CloudScent offre une méthode pour détecter les code smells spécifiquement dans les environnements cloud open-source. En mettant en œuvre cet outil, les développeurs cloud peuvent mieux comprendre les problèmes de code auxquels ils font face et prendre des mesures pour les résoudre.

Améliorer la qualité du code dans les plateformes cloud open-source est crucial pour maintenir leur efficacité. En regardant vers l'avenir, notre recherche vise à continuer d'améliorer ce modèle et à collaborer avec des experts de l'industrie pour s'assurer qu'il répond aux besoins des ingénieurs logiciels cloud.

Source originale

Titre: CloudScent: a model for code smell analysis in open-source cloud

Résumé: The low cost and rapid provisioning capabilities have made open-source cloud a desirable platform to launch industrial applications. However, as open-source cloud moves towards maturity, it still suffers from quality issues like code smells. Although, a great emphasis has been provided on the economic benefits of deploying open-source cloud, low importance has been provided to improve the quality of the source code of the cloud itself to ensure its maintainability in the industrial scenario. Code refactoring has been associated with improving the maintenance and understanding of software code by removing code smells. However, analyzing what smells are more prevalent in cloud environment and designing a tool to define and detect those smells require further attention. In this paper, we propose a model called CloudScent which is an open source mechanism to detect smells in open-source cloud. We test our experiments in a real-life cloud environment using OpenStack. Results show that CloudScent is capable of accurately detecting 8 code smells in cloud. This will permit cloud service providers with advanced knowledge about the smells prevalent in open-source cloud platform, thus allowing for timely code refactoring and improving code quality of the cloud platforms.

Auteurs: Raj Narendra Shah, Sameer Ahmed Mohamed, Asif Imran, Tevfik Kosar

Dernière mise à jour: 2023-07-22 00:00:00

Langue: English

Source URL: https://arxiv.org/abs/2307.12146

Source PDF: https://arxiv.org/pdf/2307.12146

Licence: https://creativecommons.org/licenses/by/4.0/

Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.

Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.

Plus d'auteurs

Articles similaires