Implementation of a Formal Software Requirements Ambiguity Prevention Tool

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

Keywords

Related Articles

Local Average of Nearest Neighbors: Univariate Time Series Imputation

The imputation of time series is one of the most important tasks in the homogenization process, the quality and precision of this process will directly influence the accuracy of the time series predictions. This paper pr...

Feature Fusion: H-ELM based Learned Features and Hand-Crafted Features for Human Activity Recognition

Recognizing human activities is one of the main goals of human-centered intelligent systems. Smartphone sensors produce a continuous sequence of observations. These observations are noisy, unstructured and high dimension...

Resources Management of Mobile Network IEEE 802.16e WiMAX

The evolution of the world of telecommunications towards the mobile multimedia following the technological advances has demonstrated that to provide access to the network is no longer sufficient. The need for users is to...

Development of Duck Diseases Expert System with Applying Alliance Method at Bali Provincial Livestock Office

Farming is one of the activities that have a business opportunity. One is raising ducks. The main results can be obtained from the breeding duck is a duck meat and eggs for consumption and also means praying ceremony in...

A Proposal of SNS to Improve Member’s Motivation in Voluntary Community Using Gamification

Recently, the number of voluntary communities such as local communities and university club activities are increasing. In these communities, since there are various types of members and there are no binding forces, it is...

Download PDF file
  • EP ID EP376463
  • DOI 10.14569/IJACSA.2018.090854
  • Views 130
  • Downloads 0

How To Cite

Rasha Alomari, Hanan Elazhary (2018). Implementation of a Formal Software Requirements Ambiguity Prevention Tool. International Journal of Advanced Computer Science & Applications, 9(8), 424-432. https://europub.co.uk/articles/-A-376463