Auteurs:
(1) Gaurav Kolhatkar, Institut de technologie informatique de Pune du SCTR, Pune, Inde ([email protected]) ;
(2) Akshit Madan, Institut de technologie informatique de Pune du SCTR, Pune, Inde ([email protected]) ;
(3) Nidhi Kowtal, Institut de technologie informatique de Pune du SCTR, Pune, Inde ([email protected]) ;
(4) Satyajit Roy, Institut de technologie informatique de Pune du SCTR, Pune, Inde ([email protected]).
Résumé — La conversion d'épopées ou d'histoires utilisateur en leur représentation appropriée en pseudocode ou code est une tâche fastidieuse, qui peut prendre une grande partie du temps dans un projet industriel. Avec ce document de recherche, nous visons à présenter une méthodologie pour générer du pseudocode à partir d'une user story agile donnée de petites fonctionnalités afin de réduire le temps global passé sur le projet industriel. Le pseudocode est une représentation indépendante du langage de programmation des étapes impliquées dans un programme informatique, qui peut être facilement convertie dans n'importe quel langage de programmation. En tirant parti du potentiel du traitement du langage naturel, nous souhaitons simplifier le processus de développement dans les organisations qui utilisent le modèle Agile de développement logiciel. Nous présentons une méthodologie pour convertir un problème décrit en langue anglaise en pseudocode. Cette méthodologie divise la tâche de conversion de texte en pseudocode en deux étapes ou sous-tâches, chacune étant traitée comme une tâche de traduction automatique individuelle. L'étape 1 est la conversion de texte en code et l'étape 2 est la conversion de code en pseudocode. Nous constatons que le modèle CodeT5 donne les meilleurs résultats en termes de score BLEU lorsqu'il est entraîné séparément sur les deux sous-tâches mentionnées ci-dessus. Le score BLEU est une métrique utilisée pour mesurer la similarité entre un texte traduit automatiquement et un ensemble de traductions de référence.
Termes de l'index : génération de texte en code, génération de code en pseudocode, transformateurs
L'efficacité du travail est de la plus haute importance dans les organisations et les entreprises modernes. La majorité des lieux de travail utilisent aujourd'hui le modèle Agile pour le développement de logiciels. Agile est une approche de développement logiciel basée sur le développement itératif, dans laquelle les tâches sont divisées en itérations ou sprints plus petits. Dans Agile, des outils de gestion de projet tels que Jira sont utilisés pour documenter les exigences des utilisateurs sous forme d'épopées ou de user stories. Les développeurs doivent comprendre ces exigences et écrire du code pour celles-ci. Cependant, une quantité importante de temps et d'efforts de développement peut être économisée en automatisant le processus de génération de code/pseudo-code, en particulier pour les problèmes simples ou répétitifs qui ont déjà été résolus. La motivation de notre document de recherche est de simplifier le travail des développeurs afin qu’ils puissent se concentrer sur des tâches plus complexes et, ce faisant, optimiser le cycle de vie du développement logiciel.
Jira est une application logicielle utilisée pour le suivi des problèmes et la gestion de projets. Il est largement utilisé par les équipes de développement agiles pour suivre les bugs, les histoires, les épopées et d'autres tâches. Les épopées sont de vastes corpus de travail qui peuvent être décomposés en un certain nombre de tâches plus petites (appelées histoires). Les stories, également appelées « user stories », sont de courtes exigences ou demandes rédigées du point de vue d’un utilisateur final. Notre objectif est de convertir des épopées/histoires en pseudo-code.
Malgré les avantages du modèle Agile, le développement de logiciels peut encore s'avérer un processus difficile et long, notamment lorsqu'il s'agit de traduire les exigences des utilisateurs en code fonctionnel. Les développeurs traduisent souvent manuellement les épopées ou les histoires des utilisateurs en code dans le cadre de ce processus, ce qui peut prendre beaucoup de temps et de travail.
Notre étude vise à étudier le potentiel de l'utilisation de méthodes d'apprentissage automatique et de traitement du langage naturel pour automatiser le processus de génération de code et de pseudocode à partir de user stories afin de résoudre cette difficulté. Ce faisant, nous espérons rationaliser les tâches des développeurs, améliorer le cycle de vie du développement logiciel et accroître l'efficacité de l'ensemble du projet industriel.
Les progrès récents dans le domaine du traitement du langage naturel ont permis d’automatiser diverses opérations autrefois manuelles. Les développements récents en matière d’apprentissage profond, en particulier, ont permis de créer des modèles de langage naturel sophistiqués capables d’extraire le contexte et le sens de la saisie de texte. En utilisant ces modèles, nous pouvons créer rapidement et efficacement du code ou du pseudocode à partir de user stories, soulageant ainsi la pression sur les développeurs.
Notre étude examinera diverses méthodologies actuellement utilisées, notamment les systèmes basés sur des règles, les modèles statistiques et les techniques d'apprentissage profond, pour produire du code ou du pseudocode à partir de user stories. Nous évaluerons les avantages et les inconvénients de chaque méthodologie et proposerons une nouvelle stratégie qui tire le meilleur parti de leurs avantages.
Dans l’ensemble, notre document de recherche vise à rendre le développement de logiciels plus efficace et efficient en automatisant le processus de génération de code/pseudocode à partir des user stories. Ce faisant, nous espérons permettre aux développeurs de se concentrer sur des tâches plus complexes, de réduire le risque d'erreurs et, à terme, de proposer de meilleurs produits logiciels aux utilisateurs.
Cet article est disponible sur arxiv sous licence CC 4.0.