Detecting Intra-Conflicts in Non-Functional Requirements
Abstract
When specifying user requirements, not only is it critical to ensure correct and unambiguous specification of functional requirements, but also that of Non-Functional Requirements (NFRs). A critical success factor in Requirements Engineering (RE) involves recognizing conflicts among NFRs specified by multiple stakeholders having differing concerns, priorities, and responsibilities. There indeed are numerous attempts made in the literature to resolve the conflicts between two NFRs, with the traditional view of considering the two NFRs different from each other e.g. security conflicting with the availability. In this paper, however, we propose that to introduce fine-grained conflict resolution – by also focusing on those situations where one NFR conflicts with another NFR of the same type. For ease of understanding, we propose to differentiate such conflicts by coining the term intra-conflicts. Thus, we propose fine-grained conflict resolution – by focusing on the notion of resolving conflicts between two NFRs of the same type. Needless to say, non-detection of any conflict between two NFRs – whether the NFRs are of the same type or not – at an early stage of RE, leads to higher costs for changes. The process of conflict resolution is essentially intuitive and hence is iterative. Our proposal hence is motivated by a view that differentiating the inter-conflicts with intra-conflicts, helps one in better focusing on the conflict resolution. We also propose an approach that allows a requirements analyst to semi-automatically identify intra-conflicts among NFRs at an early stage of RE using natural language processing, machine learning, and ontology-based semantic analysis. The controlled experiments, conducted on five publicly available datasets, achieve an average recall, precision, and F-measure of 0.57, 0.77, and 0.65 respectively.