Implementation of a Formal Software Requirements Ambiguity Prevention Tool
Journal Title: International Journal of Advanced Computer Science & Applications - Year 2018, Vol 9, Issue 8
Abstract
The success of the software engineering process depends heavily on clear unambiguous software requirements. Ambiguity refers to the possibility to understand a requirement in more than one way. Unfortunately, ambiguity is an inherent property of the natural languages used to write the software user requirements. This could cause a final faulty system implementation, which is too expensive to correct. The basic requirements ambiguity resolution approaches in the literature are ambiguity detection, ambiguity avoidance, and ambiguity prevention. Ambiguity prevention is the least tackled approach because it requires designing formal languages and templates, which are hard to implement. The main goal of this paper is to provide full implementation of an ambiguity prevention tool and then study its effectiveness using real requirements. Towards this goal, we developed a set of Finite State Machine (FSMs) implementing templates of various requirement types. We then used Python to implement the ambiguity prevention tool based on those FSMs. We also collected a benchmark of 2460 real requirements and selected a random set of forty real requirements to test the effectiveness of the developed tool. The experiment showed that the implemented ambiguity prevention tool can prevent critical requirements ambiguity issues such as missing information or domain ambiguity. Nevertheless, there is a tradeoff between ambiguity prevention and the effort needed to write the requirements using the imposed templates.
Authors and Affiliations
Rasha Alomari, Hanan Elazhary
Choice of Knowledge Representation Model for Development of Knowledge Base: Possible Solutions
In current society knowledge, information and intelligent computer systems based on knowledge base play a great role. The ability of an intelligent system to efficiently implement its functions depends on the efficiency...
A Robust System for Noisy Image Classification Combining Denoising Autoencoder and Convolutional Neural Network
Image classification, a complex perceptual task with many real life important applications, faces a major challenge in presence of noise. Noise degrades the performance of the classifiers and makes them less suitable in...
A New Method to Build NLP Knowledge for Improving Term Disambiguation
Term sense disambiguation is very essential for different approaches of NLP, including Internet search engines, information retrieval, Data mining, classification etc. However, the old methods using case frames and seman...
Pedestrian Crossing Safety System at Traffic Lights based on Decision Tree Algorithm
Pedestrians are one of the street users who have the right to get priority on security. Highway users such as vehicle drivers sometimes violate the traffic lights that is endanger pedestrians and make pedestrians feel in...
Autonomous Vehicle-to-Vehicle (V2V) Decision Making in Roundabout using Game Theory
Roundabout intersections promote a continuous flow of traffic. Roundabouts entry move traffic through an intersection more quickly, and with less congestion on approaching roads. With the introduction of smart vehicles a...