Requirements engineering is the practice of eliciting, analyzing, prioritizing, negotiating, and specifying the requirements for a software-intensive system (Robertson and Robertson 1999). These activities engage various stakeholders in the task of identifying and producing an agreed-upon set of requirements that clearly specify the functionality, behavior, and constraints of the proposed system. The importance of the requirements engineering task is illustrated by several studies, which have shown that requirements-related issues, such as poorly specified requirements (Leffingwell 1997) and incomplete and changing requirements and specifications, are the root cause of many failed projects. To address these problems, researchers and practitioners have developed processes for identifying relevant stakeholders; discovering their needs, wants, and desires for the system; prioritizing and negotiating requirements; and specifying them in understandable, measurable, and testable ways (Robertson and Robertson 1999). In this article we focus particularly on recent efforts to use machine learning and recommender systems technologies for automating requirements engineering processes and enabling stakeholder and designer decision support.In general, the task of a recommender system in any domain is to identify items of interest to a given user of which that user may otherwise be unaware. The recommendation problem is
Recommender Systems in Requirements EngineeringBamshad Mobasher and Jane Cleland-Huang