Software requirements classification: definition, approaches, and applications
Yiqing Liang
Abstract
Yiqing Liang
Abstract
System level requirements for software are plagued with such problems as conflicts, inconsistencies, ambiguities, incompleteness, and are often just wrong. Early fix of errors in the requirements analysis phase of the software engineering life cycle would be most desirable. A review of existing software requirements engineering techniques reveals none that are satisfactory, and especially none could better cope with requirements in a natural language form. Any effort that can alleviate these problems, especially with regard to natural language form, will contribute. In this response, the theory of requirements classification is developed that holds promise of being able to assist in removal of requirements problems. The new theory defines software requirements classification and its activities, identifies its prospective applications in requirements engineering. Two approaches to requirements classification are proposed. One approach is to classify software requirements according to predefined taxonomy by making use of a knowledge based system, employing the relations of verbs and software functions. The other approach is to cluster software requirements according to their similarities through a TTC (Two-Tiered-Clustering) algorithm. The first tier cluster is based on a verb taxonomy and the second tier clustering is based on the syntactical similarities among software requirements statements. A major objective of this algorithm is to aggregate a set of N requirements into a set of M requirements clusters where M $\ll$ N. This algorithm thus enables us to discriminate between requirements statements and group them in accordance with similarity characteristics that exist across requirements statements. Once this aggregation is accomplished and requirements are classified through this indexing and clustering technique, it is possible to analyze them to determine the existence or absence of problems such as conflict, incompleteness, inconsistency, and imprecision within and across requirements statements clusters. A test case involving a very large set of requirements has been investigated and the results show that the TTC algorithm provides the information necessary to successfully differentiate between similar and dissimilar requirements and cluster similar requirements. This approach appears to be much more flexible than other indexing schemes such as the faceted approach and the predefined taxonometric approach.
OpenAlex reports 2 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
System level requirements for software are plagued with such problems as conflicts, inconsistencies, ambiguities, incompleteness, and are often just wrong. Early fix of errors in the requirements analysis phase of the software engineering life cycle would be most desirable. A review of existing software requirements engineering techniques reveals none that are satisfactory, and especially none could better cope with requirements in a natural language form. Any effort that can alleviate these problems, especially with regard to natural language form, will contribute. In this response, the theory of requirements classification is developed that holds promise of being able to assist in removal of requirements problems. The new theory defines software requirements classification and its activities, identifies its prospective applications in requirements engineering. Two approaches to requirements classification are proposed. One approach is to classify software requirements according to predefined taxonomy by making use of a knowledge based system, employing the relations of verbs and software functions. The other approach is to cluster software requirements according to their similarities through a TTC (Two-Tiered-Clustering) algorithm. The first tier cluster is based on a verb taxonomy and the second tier clustering is based on the syntactical similarities among software requirements statements. A major objective of this algorithm is to aggregate a set of N requirements into a set of M requirements clusters where M $\ll$ N. This algorithm thus enables us to discriminate between requirements statements and group them in accordance with similarity characteristics that exist across requirements statements. Once this aggregation is accomplished and requirements are classified through this indexing and clustering technique, it is possible to analyze them to determine the existence or absence of problems such as conflict, incompleteness, inconsistency, and imprecision within and across requirements statements clusters. A test case involving a very large set of requirements has been investigated and the results show that the TTC algorithm provides the information necessary to successfully differentiate between similar and dissimilar requirements and cluster similar requirements. This approach appears to be much more flexible than other indexing schemes such as the faceted approach and the predefined taxonometric approach.
Key concepts: Software requirements, Requirement, Requirements analysis, Requirements elicitation, Non-functional testing, Requirements engineering, Non-functional requirement, Software requirements specification