A tool to detect pragmatic ambiguity with possible interpretations suggestion in software requirement specifications

The success of any software must meet the stakeholder’s expectations and needs. Requirement specifications are collected from clients and documented in software requirements' specifications. Most software requirement documents are written in natural languages. Natural language requirements may...

Full description

Bibliographic Details
Main Authors: Mohamed, Khalid Abdikarim, Din, Jamilah, Baharom, Salmi
Format: Article
Published: University College TATI 2022
Description
Summary:The success of any software must meet the stakeholder’s expectations and needs. Requirement specifications are collected from clients and documented in software requirements' specifications. Most software requirement documents are written in natural languages. Natural language requirements may be inconsistent and ambiguous. Such inconsistencies and ambiguities can result in misinterpretations and incorrect implementations in designing and developing of software. The purpose of this study is to detect and correct ambiguity in software requirements. Ambiguity is a statement that has more than one meaning. The most common types of ambiguities are semantic, syntactic, lexical, syntax, and pragmatic. Therefore, this study aims to estimate the degree of ambiguity of typical computer science words (e.g., system, application, database) when used in different domains. Word embedding is used for identifying and detecting ambiguous words in a requirement. Then the study uses linked data for resolving ambiguity words. To evaluate the proposed tool, open-source software specification documents was used to check its performance by comparing human detection and correction capacity and the outcome demonstrates that humans have difficulty detecting and correcting ambiguity in software requirement specifications (SRS) from one domain to other domains as compared to the proposed tool. The result shows that the developed tool was accurate in detecting and correcting pragmatic ambiguities, compare to human.