Comparative Study of The Performance of Various Classifiers in Labeling Non-Functional Requirements


  • Laszlo Toth Department of Software Engineering, University of Szeged
  • Laszlo Vidacs MTA-SZTE Research Group on Artificial Intelligence, University of Szeged



Requirements Engineering, Feedback processing, Natural Language Processing, Machine Learning


Software systems are to be developed based on expectations of customers. These expectations are expressed using natural languages. To design a software meeting the needs of the customer and the stakeholders, the intentions, feedbacks and reviews are to be understood accurately and without ambiguity. These textual inputs often contain inaccuracies, contradictions and are seldom given in a well-structured form. The issues mentioned in the previous thought frequently result in the program not satisfying the expectation of the stakeholders. In particular, for non-functional requirements, clients rarely emphasize these specifications as much as they might be justified. Identifying, classifying and reconciling the requirements is one of the main duty of the System Analyst, which task, without using a proper tool, can be very demanding and time-consuming. Tools which support text processing are expected to improve the accuracy of identification and classification of requirements even in an unstructured set of inputs. System Analysts can use them also in document archeology tasks where many documents, regulations, standards, etc. have to be processed. Methods elaborated in natural language processing and machine learning offer a solid basis, however, their usability and the possibility to improve the performance utilizing the specific knowledge from the domain of the software engineering are to be examined thoroughly. In this paper, we present the results of our work adapting natural language processing and machine learning methods for handling and transforming textual inputs of software development. The major contribution of our work is providing a comparison of the performance and applicability of the state-of-the-art techniques used in natural language processing and machine learning in software engineering. Based on the results of our experiments, tools can be designed which can support System Analysts working on textual inputs.