UNIVERSITÉ NATIONAL DU VIETNAM INSTITUT FRANCOPHONE INTERNATIONAL Spécialité : Réseaux et Systèmes Communicants Lesly ROC APPRENTISSAGE AUTOMATIQUE APPLIQUÉ À LA DÉTECTION DES AMBIGUÏTÉS DÈS LA PHASE DE SPÉCIFICATIONS LOGICIELLES HỌC MÁY ÁP DỤNG CHO VIỆC PHÁT HIỆN NHỮNG MỜ ÁM NGAY TẠI GIAI ĐOẠN THIẾT KẾ PHẦN MỀM MEMOIRE DE FIN D’ETUDE DE MASTER 2 EN INFORMATIQUE Sous la direction de Bruel GERANÇON, PhD Hanoi 2023 UNIVERSITÉ NATIONAL DU VIETNAM INSTITUT FRANCOPHONE INTERNATIONAL Spécialité : Réseaux et Systèmes Communicants Lesly ROC APPRENTISSAGE AUTOMATIQUE APPLIQUE AUX TESTS LOGICIELS ỨNG DỤNG HỌC MAY TRONG KIỂM THỬ PHẦN MỀM MEMOIRE DE FIN D’ETUDE DE MASTER 2 EN INFORMATIQUE Sous la direction de Bruel GERANÇON, PhD Hanoi 2023 ATTESTATION SUR L’HONNEUR J’atteste sur l’honneur que ce mémoire a été réalisé par moi-même et que les données et les résultats qui y sont présentés sont exacts et n’ont jamais été publiés ailleurs. La source des informations citées dans ce mémoire a été bien précisée. LỜI CAM ĐOAN Tôi cam đoan đây là công trình nghiên cứu của riêng tôi. Các số liệu, kết quả nêu trong Luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác.
Các thông tin trích dẫn trong Luận văn đã được chỉ rõ nguồn gốc. Signature de l’étudiant Approbation du superviseur “J’approuve par la présente que ce mémoire, dans sa forme actuelle, est prête à être examinée par un comité comme condition d’obtention du diplôme de master 2 en informatique à l’Université Nationale du Vietnam et L'université de Lyon1 ” Signature Remerciements Ce mémoire résulte de près de deux années de recherche et d'études poussées dans le domaine de l'informatique, spécialisé en communication réseau et systèmes, réalisées à l'Institut Francophone International/Université Nationale du Vietnam, dans le cadre d'un programme de double diplomation avec l'Université Claude Bernard Lyon1. Tout au long de ce cheminement académique, j'ai bénéficié du soutien et de l'accompagnement de plusieurs personnes. Je saisis cette opportunité pour exprimer ma profonde reconnaissance envers chacune d'entre elles.
En priorité, j'exprime ma gratitude envers Le créateur Tout puissant pour m'avoir doté de la santé, du courage et de la détermination nécessaire à la réalisation de ce projet d'envergure. Mon encadrant, le Docteur Gerançon Bruel, mérite également une reconnaissance spéciale pour ses recommandations éclairées, son orientation constante et son expertise. Sa disponibilité et son soutien ont été précieux tout au long de l'élaboration de ce mémoire, m'aidant à surmonter les nombreux défis rencontrés. Pendant ces deux années d'études, j'ai eu l'occasion d'engager d'innombrables discussions et débats enrichissants avec mes collègues et amis.
Je tiens à exprimer toute ma sincérité envers l'ensemble des collègues de l'Institut Francophone International qui m'ont permis d'approfondir mes connaissances et de mener à bien ce travail de recherche. Reconnaître individuellement chaque personne ayant influencé mon parcours serait complexe, c'est pourquoi je leur adresse mes remerciements de manière globale. Enfin, je souhaite exprimer ma profonde reconnaissance envers mes proches pour leur soutien indéfectible et leur compréhension. Ma mère, mes frères et sœurs ont toujours été d'un soutien inestimable, m'encourageant sans cesse dans mes études.
Depuis mes premiers pas à l'école, l'importance de l'apprentissage m'a été inculquée. Ma tendre épouse, Ludmilla Charles ROC, a été une source constante de joie et d'inspiration. Son soutien inconditionnel et sa compréhension ont rendu possible la réalisation de ces études. Sa présence a été une source d'inspiration continue et a contribué à l'achèvement de ce travail académique.
i Résumé Le développement logiciel, un processus complexe avec des phases interdépendantes, requiert une identification précoce des erreurs pour minimiser les coûts de correction. L'ingénierie des exigences, traduisant les besoins en spécifications détaillées, est cruciale, avec 71% des échecs de projets logiciels attribués à des erreurs d'ingénierie des exigences, dont 50% surviennent pendant la phase de spécification. La détection tardive d'erreurs peut engendrer des coûts jusqu'à 100 fois plus élevés. Dans le contexte du développement de systèmes critiques, la conformité aux normes internationales, notamment dans l'industrie ferroviaire, est essentielle.
La rédaction des exigences en langage naturel expose les spécifications à des ambiguïtés, nécessitant des outils pour détecter précocement les défauts logiciels. Ce mémoire propose un outil utilisant le traitement automatique des langues (NLP) pour détecter automatiquement les ambiguïtés dans les spécifications logicielles, telles que les cas d'utilisation, rédigées en langage naturel. L'outil, basé sur l'approche par triplets, évalue les techniques de rédaction de spécifications logicielles, décrivant leurs forces et lacunes. Les résultats de la recherche indiquent que le modèle de triplets permet d'identifier les ambiguïtés et les défauts logiciels dans les documents de spécifications.
Des taux de détection de 92,30% pour les documents d'exigences en français et de 100% pour les documents de spécifications en anglais ont été obtenus, démontrant la promesse de cette approche. Mots clés : Traitement automatique des langues, exigences logicielles, triplets, défauts logiciels ambiguïtés ii Abstract Software development, a complex process with interdependent phases, requires early error identification to minimize correction costs. Requirements engineering, translating needs into detailed specifications, is crucial, with 71% of software project failures attributed to requirements engineering errors, 50% of which occur during the specification phase. Late error detection can result in costs up to 100 times higher.
In the context of critical systems development, especially in the railway industry, compliance with international standards is essential. Drafting requirements in natural language exposes specifications to ambiguities, necessitating tools to early detect software defects. This research proposes a tool employing Natural Language Processing (NLP) to automatically detect ambiguities in software specifications, such as use cases, written in natural language. The tool, based on the triplets approach, assesses techniques for drafting software specifications, describing their strengths and weaknesses.
This research proposes a tool employing Natural Language Processing (NLP) to automatically detect ambiguities in software specifications, such as use cases, written in natural language. The tool, based on the triplets approach, assesses techniques for drafting software specifications, describing their strengths and weaknesses. Keywords: Natural language processing, software requirements, triples, software defects ambiguities iii Table des matières CHAPITRE 1 : INTRODUCTION .2- Question de la recherche .3 Objectif de recherche. 5 CHAPITRE 2 : Revue Littérature .1- L'Ingénierie des Exigences .2- Les documents d’exigences et leur importance .1 Ils sont importants pour plusieurs raisons :.
7 Le Processus d’ingénierie des Exigences : Analyse et Optimisation .4 Étapes de l'ingénierie des exigences .5 Les principes de l'Ingénierie des Exigences. 9 Analyse des besoins : .3- Objectifs de l'analyse des besoins : .4- Documentation/spécification des exigences : .6- Quelques conseils pour les exigences de rédaction : .7- Validation des exigences : .8- Techniques de Validation .9 Exigences de Qualités .11- Ambiguïtés des exigences logicielles .- Le traitement automatique du langage naturel .1 Segmentation de phrases .- Présentation du GPT-3 l’approche LNP utilisé dans le cadre de cette recherche .2- Pourquoi le choix du GPT-3 D’open AI. Technique de rédaction d’exigences logicielles .1- Les Cas d’utilisation (Use Cases) .2- Les récits d’utilisation (User Stories) .3- Exemple de rédaction d’un cas d’utilisation .4- Limites des approches, méthodes ou techniques de rédaction d’exigences du logiciel .5- Spécification des exigences logicielles avec l’approche par triplets .1- Présentation de la méthodologie adoptée .1- Évaluation des techniques de rédaction des exigences logicielles .2- Choix de la technique par triplets pour la conception de notre outil.3- Conception d'un outil basé sur l'approche par triplet .4- Evaluation de l’outil .6- Résultats de l'Évaluation. 28 CHAPITRE 4 : Implémentation de la solution .1- Environnement de développement .1- Langage de Programmation Python .2- Caractéristiques du langage de développement Python .3- Les différentes étapes de l’implémentation de la solution .1- Installation et dépendances.2- Conception de l’interface utilisateur .3- Génération de couleurs aléatoires .6- Logique principale de l’application.8- Aperçu de l'algorithme .5- Ensemble de données .6- Création et Entraînement du Modèle .7- Architecture du Système .8 Flux de fonctionnement de l'application.
36 CHAPITRE 5 : Evaluation et Analyse Résultats .1- Présentation de l'outil logiciel "The Roc Ambiguity Detect" .3- Objectifs de l'outil .1- Détection Automatisée des Ambiguïté .3- Augmentation de la Qualité des Spécifications.4- Gain de Temps et d'Efforts .5- Support pour la Conformité aux Normes .4- Problèmes Résolus par "The Roc Ambiguity Detect" .- Fonctionnalités de l’outil .1- Importer un Document ou Écrire un Texte .2- Analyse des Ambiguïtés .5-Détails des Ambiguïtés.6- Évaluation de l'outil .2 - Collecte de données .- Synthèse des résultats .8- Réponses aux Questions de Recherche. 45 Conclusion, Contribution, Perspectives et limites de Recherche. 52 vi Table des Tableaux Tableau 1.- Résumé des critères de qualités d’exigences logicielles .- Résumé des types d’Ambiguïtés. 5 Tableau 3 : Synthèses des résultats de méthode non automatisé et automatisé.
45 vii Table des Figures Figure 1.- Statistiques des de défauts injectés dans la phase de spécification. 4 Figure 2 : Le processus d’ingénierie des exigences au sein du processus de développement logiciel. 7 Figure 3 : Figure résumant l'approche par triplet. 24 Figure 4 : Ressources matériels.
28 Figure 5 : Installation streamlit. 29 Figure 6 : Installation d’Openai. 30 Figure 7 : Interface de l'application. 30 Figure 8 : Affiche des ambiguïtés.
30 Figure 9 : Détection des ambiguïtés. 31 Figure 10 : Résultat de l’analyse du jeu de données SRG. 43 Figure 11 : Résultat de l’analyse du jeu de données Marvel Electronics and Home Entertainment. 43 Figure 12 : Résultat de l’analyse du jeu de données du 3e cas.
44 viii Liste des sigles et acronymes IE : Ingénierie des exigences NLP : Natural Language Processing SRS : Software Requirements Specification NL : Natural Language SEL : Spécification d’Exigences Logicielles SDLC : Software Development Lifecycle ISO : International Organisation for Standardisation PMI : Project Management Institute ASQ : American Society for Quality AI : Artificial intelligence IEEE : Institute of Electrical and Electronics Engineers ix CHAPITRE 1 : INTRODUCTION Le développement de logiciels constitue une entreprise complexe, caractérisée par une série de phases interconnectées, dont la phase des exigences joue un rôle essentiel. Cette étape préliminaire s'avère cruciale dans la mesure où les erreurs logicielles ont la potentialité de surgir à tout moment au cours du processus de développement, générant ainsi des dépenses considérables pour leur détection et correction si elles ne sont pas mises en lumière dès les premiers instants. En conséquence, la détection précoce des erreurs logicielles s'impose comme une nécessité impérieuse, non seulement pour assurer la qualité finale du logiciel, mais aussi pour restreindre les coûts de réalisation des projets logiciels. Au cœur de cette démarche, l'ingénierie logicielle des exigences se révèle être le pilier sur lequel repose tout système élaboré avec succès.
Ce processus méticuleux consiste en une exploration minutieuse des besoins émanant des parties prenantes, qui sont ensuite convertis en une représentation explicite du comportement anticipé du système. Pour exprimer autrement cette idée, les exigences logicielles se matérialisent sous la forme de spécifications élaborées et détaillées, traduisant en termes précis les fonctionnalités escomptées, les performances recherchées, les contraintes à respecter ainsi que les comportements attendus du logiciel en question. Ces spécifications jouent un rôle fondamental en tant que fondement sur lequel reposent les phases de conception, de développement et de test du logiciel. Elles définissent de manière essentielle ce que le logiciel doit accomplir et comment il doit le réaliser.
Il est important de mentionner que l'omission ou l'interprétation erronée des exigences peut engendrer des défaillances notables dans un logiciel. En effet, des statistiques telles que celles du Standish Group [34] (ces statistiques se basent sur l’analyse de plus de 50 000 projets dans le monde entier, dont le coût moyen de développement va de 434.000 USD pour une petite entreprise à 2.000 USD pour une grosse organisation) font état d’une amélioration du taux d’échec des projets, lequel tournerait à présent aux alentours de 71%, grâce notamment à l’usage plus étendu des approches agiles.