Abstract:
Requirements Engineering is the first phase in software development life cycle and it also plays one of the most important and critical roles. The Requirements document mainly contains both Functional Requirements (FR) and Non-Functional Requirements (NFR). NFR specifies the quality attributes of the system including security, reliability, performance, maintainability, scalability, and usability. NFR defines the properties that a software product must have in order to meet the business needs of its users and represent additional constraints on the quality and properties of the software system. When developing a system, the developer has to prioritise the NFR from the user requirements document. Categorising these requirements requires specialised skills, experience, and domain knowledge. This process is a difficult and time-consuming task for developers. It is worthwhile to implement an automated or semi-automated classification of NFR from requirements documents. This procedure reduces the manual work, time, and mental effort associated with identifying specific NFR from a large number of requirements. This research paper gives a brief description of the NFR and its categories then it summarises the relevant previous work regarding NFR classification. The most previous studies that worked on the classification of NFR used machine learning algorithms to build an automated classification. This process needs a large amount of data to handle the learning phase, that is, hard to apply on non-functional user requirements written in languages other than English such as Arabic.