Abstract:
In this paper, we review current requirements engineering (RE) research and identify future research directions suggested by emerging software needs. First, we overview the state of the art in RE research. The research is considered with respect to technologies developed to address specific requirements tasks, such as elicitation, modeling, and analysis. Such a review enables us to identify mature areas of research, as well as areas that warrant further investigation. Next, we review several strategies for performing and extending RE research results, to help delineate the scope of future research directions. Finally, we highlight what we consider to be the “hot” current and future research topics, which aim to address RE needs for emerging systems of the future.
Introduction:
The success of a software system depends on how well it fits the needs of its users and its environment [127, 130]. Software requirements comprise these needs, and requirements engineering (RE) is the process by which the requirements are determined. Successful RE involves understanding the needs of users, customers, and other stakeholders; understanding the contexts in which the to-be-developed software will be used; modeling, analyzing, negotiating, and documenting the stakeholders’ requirements; validating that the documented requirements match the negotiated requirements; and managing requirements evolution1. In this paper, we offer our views on the research directions in requirements engineering.
The paper builds on Nuseibeh and Easterbrook’s paper [127], hereafter referred to as the “2000 RE Roadmap Paper”, from the Future of Software Engineering track at ICSE 2000 [64]. Whereas the 2000 RE Roadmap Paper focused on current research in requirements engineering, this paper concentrates on research directions and identifies RE challenges posed by emerging and future software needs. We start, in Section 2, with an overview of the inherent difficulties in requirements engineering. In Section 3, we provide a summary of the state of the art of RE knowledge and research, and in Section 4, we enumerate general research strategies for advancing the state of the art. The strategies range from revolutionary research to empirical evaluation to codifying proven solutions. In Section 5, we highlight what we consider to be RE research hotspots: the most pressing needs and grand challenges in RE research. Some hotspot topics are natural extensions to existing knowledge and technologies, whereas others arise as RE aspects of predicted software needs. We conclude with strategic recommendations for improving the research infrastructure for RE researchers, thus facilitating the research community’s ability to make better progress on addressing these problems.
Why Requirements Engineering is Difficult:
In general, the research challenges faced by the requirements-engineering community are distinct from those faced by the general software-engineering community, because requirements reside primarily in the problem space whereas other software artifacts reside primarily in the solution space. That is, requirements descriptions, ideally, are written entirely in terms of the environment, describing how the environment is to be affected by the proposed system. In contrast, other software artifacts focus on the behavior of the proposed system, and are written in terms of internal software entities and properties. Stated another way, requirements engineering is about defining precisely the problem that the software is to solve (i.e., defining what the software is to do), whereas other SE activities are about defining and refining a proposed software solution. Several consequences follow from this distinction that cause requirements engineering to be inherently difficult:
Due to all of the above, RE activities, in contrast to other software-engineering activities, may be more iterative, involve many more players who have more varied backgrounds and expertise, require more extensive analyses of options, and call for more complicated verifications of more diverse (e.g., software, hardware, human) components.
Matrix Summarizing the State of the Art of Requirements Engineering:
Enumeration of Research Strategies:
Recommendations and Conclusions:
In this paper, we have described a number of exciting and challenging research directions in requirements engineering. Some of these directions are natural extensions of work already being performed by RE researchers, whereas others are major discontinuities due to fundamental changes in computing needs. All of the problems described above will require substantial effort in order to make progress towards effective solutions. To help alleviate this effort, we offer some recommendations of short- and long-term actions that the RE community could take, to position itself to make more rapid progress on these research problems.
There are five recommendations that the RE community could take immediate action on, to start improving the maturity of current requirements technologies:
The above actions would help the RE research community to make immediate progress on improving existing knowledge and techniques. In addition, there are some longerterm actions that would help to improve the community’s research infrastructure and its ability to confront the challenges posed by emerging systems:
In conclusion, the RE research community has made significant progress along many fronts. At the same time, the demands placed on computing and the cyberinfrastructure have increased dramatically, raising many new critical RE research questions. For these reasons, it is an exciting time to be involved in RE research. Technologies that make significant advances in solving these problems are likely to lead to paradigm shifts that will impact many future generations of developers, computing systems, and the ultimate stakeholders – consumers.