Software Requirements Classification and Prioritisation Using Machine Learning
Software Development Lifecycle (SDLC) is a systematic process used to achieve high quality software that meets customer requirements. During SDLC requirements, engineering plays an important role. Prioritisation helps to focus on the most important requirements in terms of importance, cost, penalty, time and risk. Stakeholders (users, developers) of the software product identify requirements. The two major activities of requirement engineering process are requirements classification and requirements prioritisation. Sometimes requirement mentioned by stakeholder can be of both types, i.e. functional and non functional. So it is challenging to classify requirements separately in two different categories. There are many fundamental prioritisation techniques available to prioritise software requirements. In this paper, we have compared existing requirements prioritisation techniques based on ease of use, speed, scalability and accuracy. Our literature study suggests that the appropriate requirements prioritisation technique has to be selected that can help software developer to minimise the risk, penalty. In automating various tasks of software engineering, machine learning (ML) has shown useful positive impact. This paper discusses the various algorithms used to classify and prioritise the software requirements. The results in terms of performance, scalability and accuracy from different studies are contradictory in nature due to variations in research methodologies and the type of dataset used. Based on the literature survey conducted, we propose a new architecture that will use both types of datasets, i.e. Software Requirement Specifications (SRS) and user text reviews to create a generalised model. Our proposed architecture will attempt to extract features which can be used to train the model using ML algorithms. The ML algorithms for classifying and prioritising software requirements will be developed and assessed based on performance, scalability and accuracy.