(a) Extrait de code pour l'utilisation de l'API de géocodage Google Maps (b) Dockerfile contenant les spécifications d'environnement requises pour exécuter l'extrait de code. Crédit :Horton &Parnin
Une équipe de chercheurs de la North Carolina State University a récemment effectué une analyse empirique du statut exécutable des extraits de code Python partagés sur GitHub. Leur étude, prépublié sur arXiv, présente également Gistable, une nouvelle base de données d'extraits de code Python exécutables sur le système gist de GitHub, qui pourraient permettre des études reproductibles dans le domaine du génie logiciel.
Tous les jours, les développeurs de logiciels du monde entier créent et partagent du code en ligne pour démontrer et décrire de nouveaux concepts de programmation. GitHub est l'une des plus grandes plateformes en ligne sur laquelle les développeurs peuvent partager leurs extraits de code et collaborer au développement de logiciels. Actuellement, il en contient plus de 300, 000 extraits Python et plus de 4,5 millions d'essentiels dans une variété de langages de programmation.
Bien que les extraits de code publiés en ligne puissent être très utiles, parfois, ils ne sont pas directement exécutables par d'autres. Cela peut être dû à des erreurs d'analyse dans le code ou à des problèmes d'exécution d'extraits de code dans des environnements contenant des dépendances non satisfaites.
Pour mieux comprendre combien d'extraits de code hébergés sur le système gist de GitHub sont réellement exécutables, des chercheurs de la North Carolina State University ont mené une évaluation approfondie de l'exécutabilité des scripts Python accessibles au public hébergés sur la plate-forme. Leur étude visait à identifier les problèmes courants liés à l'exécution d'extraits de code, ce qui pourrait fournir des informations précieuses pour des recherches plus approfondies sur la gestion automatisée de la configuration logicielle.
Dans leur étude, les chercheurs ont également présenté Gistable, une base de données et un cadre extensible construits sur le système essentiel de GitHub. Gistable en contient 10, 259 extraits de code Python, dont environ 5, 000 sont livrés avec un Dockerfile pour les configurer et les exécuter sans erreur d'importation.
"Notre travail sur Gistable a été motivé dans le cadre d'un projet plus vaste concernant la configuration automatisée des environnements applicatifs, " Eric Horton, l'un des chercheurs qui a mené l'étude, a déclaré Tech Xplore. "Compte tenu d'une base de code, comme les extraits étudiés dans Gistable, nous voulons trouver un processus qui peut créer un environnement d'exécution suffisant pour eux sans nécessiter l'intervention d'un développeur. Pour ce faire, nous avons d'abord dû prendre du recul et répondre à quelques questions. D'abord, est-ce un cas d'utilisation courant ? Nous devions établir une base de référence pour la fréquence à laquelle les applications existantes nécessitent une sorte de configuration non triviale. Seconde, lorsqu'il n'est pas exécutable, quel type de configuration est nécessaire pour permettre l'exécution ?"
Dans leur étude, les chercheurs ont découvert que 75,6% des éléments essentiels de Python analysés nécessitaient des configurations substantielles pour surmonter des problèmes tels que les dépendances manquantes, fichiers de configuration, le recours à un système d'exploitation spécifique, ou d'autres défis de configuration d'environnement. En outre, les hypothèses que les développeurs font sur les noms de ressources lorsqu'ils tentent de résoudre les erreurs de configuration se sont avérées correctes moins de la moitié du temps.
« Nous avons constaté qu'environ 30 % de notre échantillon appartenait à la catégorie « difficile à configurer », la difficulté de configuration la plus courante étant les dépendances sur des bibliothèques externes, " expliqua Horton. " Nos recherches dans un avenir immédiat se concentreront sur les techniques permettant de trouver et d'installer ces bibliothèques. Après, nous espérons résoudre d'autres difficultés de configuration courantes découvertes dans le cadre de Gistable."
Globalement, un environnement insuffisamment configuré était le principal facteur empêchant les extraits de code Python d'être exécutables. Alors que dans certains cas, les configurations correctes de l'environnement d'application pourraient être récupérées automatiquement, d'autres ont nécessité d'autres interventions. Dans le futur, les chercheurs prévoient d'étudier des stratégies pour effectuer de manière cohérente des configurations d'environnement efficaces.
"Je pense que la réalisation la plus significative de cette étude a été notre enquête sur la façon dont les développeurs effectuent la configuration manuellement, " a déclaré Horton. " Non seulement les réponses des participants ont-elles confirmé qu'il s'agit dans de nombreux cas d'un problème difficile, mais ils nous ont également aidés à classer les choses qui peuvent rendre la configuration difficile. C'est très utile, car cela nous oriente vers une liste concrète d'éléments pour de futures recherches. »
© 2018 Tech Xplore