Detecting, classifying, and tracing non-functional software requirements
Document Type
Article
Publication Date
9-1-2016
Abstract
In this paper, we describe a novel unsupervised approach for detecting, classifying, and tracing non-functional software requirements (NFRs). The proposed approach exploits the textual semantics of software functional requirements (FRs) to infer potential quality constraints enforced in the system. In particular, we conduct a systematic analysis of a series of word similarity methods and clustering techniques to generate semantically cohesive clusters of FR words. These clusters are classified into various categories of NFRs based on their semantic similarity to basic NFR labels. Discovered NFRs are then traced to their implementation in the solution space based on their textual semantic similarity to source code artifacts. Three software systems are used to conduct the experimental analysis in this paper. The results show that methods that exploit massive sources of textual human knowledge are more accurate in capturing and modeling the notion of similarity between FR words in a software system. Results also show that hierarchical clustering algorithms are more capable of generating thematic word clusters than partitioning clustering techniques. In terms of performance, our analysis indicates that the proposed approach can discover, classify, and trace NFRs with accuracy levels that can be adequate for practical applications.
Publication Source (Journal or Book title)
Requirements Engineering
First Page
357
Last Page
381
Recommended Citation
Mahmoud, A., & Williams, G. (2016). Detecting, classifying, and tracing non-functional software requirements. Requirements Engineering, 21 (3), 357-381. https://doi.org/10.1007/s00766-016-0252-8