Litcius/Paper detail

Fault-Prone Software Requirements Specification Detection Using Ensemble Learning for Edge/Cloud Applications

Fatin Nur Jannah Muhamad, Siti Hafizah Ab Hamid, Hema Subramaniam, Razailin Abdul Rashid, Faisal Fahmi

2023Applied Sciences11 citationsDOIOpen Access PDF

Abstract

Ambiguous software requirements are a significant contributor to software project failure. Ambiguity in software requirements is characterized by the presence of multiple possible interpretations. As requirements documents often rely on natural language, ambiguity is a frequent challenge in industrial software construction, with the potential to result in software that fails to meet customer needs and generates issues for developers. Ambiguities arise from grammatical errors, inappropriate language use, multiple meanings, or a lack of detail. Previous studies have suggested the use of supervised machine learning for ambiguity detection, but limitations in addressing all ambiguity types and a lack of accuracy remain. In this paper, we introduce the fault-prone software requirements specification detection model (FPDM), which involves the ambiguity classification model (ACM). The ACM model identifies and selects the optimal algorithm to classify ambiguity in software requirements by employing the deep learning technique, while the FPDM model utilizes Boosting ensemble learning algorithms to detect fault-prone software requirements specifications. The ACM model achieved an accuracy of 0.9907, while the FPDM model achieved an accuracy of 0.9750. To validate the results, a case study was conducted to detect fault-prone software requirements specifications for 30 edge/cloud applications, as edge/cloud-based applications are becoming crucial and significant in the current digital world.

Topics & Concepts

Computer scienceAmbiguitySoftware requirementsSoftware requirements specificationSoftwareCloud computingSoftware engineeringMachine learningArtificial intelligenceSoftware systemSoftware constructionData miningReliability engineeringEngineeringProgramming languageOperating systemSoftware Engineering ResearchSoftware System Performance and ReliabilitySoftware Engineering Techniques and Practices