Abstract:
The software development process consists of a series of phases e.g., requirement
engineering, design, coding, and testing, and each phase is critical for fulfilling the
needs of a software user. Requirement engineering is vital to understand, analyze and
document the needs and expectations of the user. The functional requirements define
the roadmap for the software development process. Functional requirements have not
gained attention. No state of art discussed formatting and classification of functional
requirements subclasses such as ubiquitous. Optional, unwanted behavior, event-
driven, and state-driven, and there were no larger datasets publicly available
furthermore no datasets were formatted in standard syntax.
So, the current research focuses to classify functional requirements subcategories e.g,
ubiquitous requirements, event-driven, unwanted behavior, optional features, and
state-driven requirements. This research aims to format the requirements using the
EARS (Easy Approach to Requirement Syntax) boilerplate and perform several DL,
ML techniques, and NLP experiments on a larger dataset of more than 9000
requirements which were created through processing 315 software requirement
specifications documents of BS (CS) and BS (SE) final year projects (FYP) of CUI,
Lahore to classify functional requirements subclasses. Using natural language
processing (NLP) and machine learning (ML) techniques, this study intended to create
a framework for classifying functional needs and their subclasses. All software
requirements were altered through a series of procedures like normalization, and
feature extractions techniques like TF-IDF. Several Machine Learning and Deep
Learning experiments were conducted e.g., Logistic Regression (LR), Bernoulli Naïve
Bayes (BNB), Decision Tree (DT), Multinomial Naïve Bayes (MNB), Random Forest
CNN, and Long Short-Term Memory algorithms to classify functional requirements
subclasses. CNNmodel got a higher result about 0.93 and LSTM achieved an accuracy
of 0.92.