Partager la publication "Comment limiter l’ambiguïté dans les spécifications ?"
Dans un contexte industriel où toute conception complexe doit être formalisée par écrit et où ces traces écrites peuvent désigner une entité fautive en cas d’échec ou d’accident, les spécifications techniques se multiplient. Le Chaos Manifesto, qui répertorie les causes d’échecs des projets industriels, place les exigences parmi les principales. L’approche adoptée par l’équipe R&D de Prometil est de fournir un outil qui détecte les erreurs et l’ambiguïté dans le texte des spécifications (ou exigences) : Semios.
À l’échelle d’une organisation, le temps passé à rédiger et corriger ces documents représente un investissement très important et la qualité obtenue est très variable d’un projet à l’autre, notamment en fonction de différents facteurs relatifs aux rédacteurs (niveau d’expertise technique, rédactionnelle, fatigue, …). Différents standards cohabitent à l’intérieur d’un domaine (IEEE, INCOSE, IREB, etc.) et à l’intérieur d’une organisation (guides de rédaction) pour harmoniser ces documents, mais même après plusieurs phases de correction des erreurs, oublis et imprécisions subsistent. Pour pallier ces faiblesses dans les documents qui encadrent techniquement autant que contractuellement les projets, certains outils permettent d’assister la relecture pour en assurer la qualité. Parmi eux, Semios est un produit issu du Traitement Automatique des Langues Naturelles (TALN) et repose sur la formalisation de connaissances linguistiques pour assurer une analyse sémantique en profondeur (accès au sens du texte et pas uniquement à la forme des mots).
L’ambiguïté, c’est quoi ?
L’ambiguïté est une notion inhérente au langage humain et sa complexité en fait un challenge intéressant pour arriver à la détecter automatiquement. Les deux principaux aspects de l’ambiguïté linguistique telle qu’elle existe dans les spécifications sont abordés ici, mais de nombreuses ressources scientifiques sont accessibles en ligne, comme cet article sur l’ambiguïté en général ou celui-ci (en anglais) sur l’ambiguïté dans les exigences.
L’ambiguïté, on la détecte comment ?
Certains mots sont intrinsèquement ambigus, c’est-à-dire qu’ils apportent systématiquement une notion d’imprécision dans le message, et nous les appelons « termes flous ». L’ambiguïté d’autres termes dépend du contexte, c’est le cas des termes génériques que nous appelons « termes sous-spécifiés » quand aucun élément ne donne leur référence précise.
- Les termes flous peuvent être des adjectifs (« vitesse moyenne« , « quand le signal est faible« , « choisir le mode approprié« , …) ou d’adverbes (« environ 100°C », « contrôler régulièrement« , « quand presque tous les émetteurs », …). Leur ambiguïté est la même dans la langue du quotidien que dans les spécifications, mais s’il s’agit d’éléments que l’on peut commenter, justifier voire corriger dans une situation de communication informelle, leur présence est à bannir des exigences. Grâce à des ressources lexicales (listes de mots auxquels sont associées différentes informations linguistiques, comme leur catégorie grammaticale ou le degré de flou), Semios est capable de détecter tous les termes de cette classe sémantique. Il existe cependant des cas dans lesquels un terme flou ne doit pas être signalé au correcteur, par exemple parce qu’il fait référence à un concept précis du domaine, c’est-à-dire qu’il s’agit d’un terme du domaine ou d’un terme métier. Prenons l’adjectif « normal » qui est très flou puisque son sens dépend directement des connaissances de celui qui l’emploie. S’il est associé au nom « mode » dans le contexte du pilotage d’engins il s’agit d’un terme qui fait référence à un concept précis. Pour preuves, son opposition au terme « mode dégradé », le fait qu’il apparaisse parfois (mais pas systématiquement) entre guillemets, ainsi que les déclarations des experts du domaine avec lesquels nous collaborons pour faire gagner en pertinence aux analyses de Semios.
- Dans le cas des termes sous-spécifiés, l’ambiguïté est bien plus complexe à détecter puisqu’une simple liste de mots (aussi riche et structurée soit-elle) ne suffit pas à évaluer si le message est clair et complet. Il s’agit des termes sous-spécifiés qui sont généralement des noms génériques, comme « système« , « dispositif« , « composant » dans presque tous les documents, et parfois « logiciel », « moteur » ou « fonction » selon le domaine et le projet dans lesquels ils sont employés. Contrairement aux termes flous, il est quasiment impossible de prédire les termes issus de cette classe qui apparaîtront dans un ensemble de spécifications, tout comme il est tout aussi difficile d’établir une liste finie et adaptée au domaine. Une expertise en linguistique permet d’identifier la première série (« système », « dispositif » et « composant » comme des hyperonymes généraux, tandis que « logiciel », « moteur » et « fonction » se trouvent bien plus bas, ontologiquement parlant. Pourtant, ils peuvent tous poser problème s’ils ne sont pas accompagnés d’éléments distinctifs pour s’assurer que le lecteur-utilisateur comprenne explicitement la référence visée par le rédacteur. Prenons pour exemple un ensemble d’exigences dédiées à la conception d’éléments mécaniques dans le domaine aéronautique. « Le moteur doit se couper immédiatement en cas de… ». Il est évident qu’un aéronef contient plus d’un type de moteur, pour alimenter le système de déplacement au sol, la fermeture des portes ou l’inclinaison des ailes par exemple. Donc « le moteur » est un terme sous-spécifié, c’est-à-dire qu’il lui manque un élément distinctif (« Le moteur AB », « Le moteur qui alimente X », …). À l’heure actuelle, Semios détecte certains termes sous-spécifiés généraux (comme « système ») et notre ambition est d’automatiser la création de ressources lexicales spécifiques à chaque domaine pour que l’analyse s’adapte très rapidement aux documents issus de différents contextes industriels.
L’ambiguïté, un sujet de recherche qui réunit les professionnels académiques et industriels
Ce second point est l’objet d’un travail de recherche dans le cadre d’une thèse Cifre en collaboration avec l’équipe CARTEL du laboratoire de linguistique CLLE-ERSS (Université Toulouse 2 – Jean Jaurès). Ce travail est basé sur la théorie distributionnelle d’Harris (1954) qui suppose que des mots partageant certaines distributions (= certains contextes) partagent des propriétés sémantiques très fortes (synonymie, antonymie, hyponymie, méronymie, relations plus lâches, etc.). Une Analyse Distributionnelle Automatique réussie permettra de créer semi-automatiquement des lexiques contenant les termes qui ne doivent pas apparaître sans un élément qui les spécifie sous peine d’être à l’origine d’une incompréhension et entraîner des risques d’échec du projet ou d’accidents lors de l’utilisation du système décrit par les spécifications. À plus long terme, notre ambition est de classer les types d’ambiguïté avec suffisamment de finesse pour proposer aux correcteurs des modèles de reformulation adéquats, ce qui limiterait la redondance de certaines corrections. Par exemple, selon les contextes, « environ » pourrait être remplacé soit par des intervalles de valeurs soit par une tolérance relative (« environ 100°C » -> « entre 95°C et 105°C » ou « 100°C +/- 5% »), tandis que « système » pourrait générer une alerte qui proposerait une liste classée par probabilité descendante des termes complexes susceptibles de le spécifier correctement « système de freinage, système de refroidissement, etc. ».
Une réflexion au sujet de « Comment limiter l’ambiguïté dans les spécifications ? »