Requirements engineering: A systematic mapping study in agile software development

https://doi.org/10.1016/j.jss.2018.01.036Get rights and content

Highlights

  • SCRUM picture was replaced.

  • Requirements modification statement was revised.

  • References format was corrected.

Abstract

Context

Requirements engineering in agile software development is a relatively recent software engineering topic and it is not completely explored and understood. The understanding of how this process works on agile world needs a deeper analysis.

Objective

The goal of this paper is to map the subject area of requirements engineering in agile context to identify the main topics that have been researched and to identify gaps to develop future researches. It is also intended to identify the obstacles that practitioners face when using agile requirements engineering.

Method

A systematic mapping study was conducted and as a result 2171 papers were initially identified and further narrowed to 104 by applying exclusion criteria and analysis.

Conclusion

After completing the classification and the analysis of the selected studies it was possible to identify 15 areas (13 based on SWEBOK) where researches were developed. Five of such areas points to the need of future researches, among them are requirements elicitation, change management, measuring requirements, software requirements tools and comparative studies between traditional and agile requirements. In this research, some obstacles that practitioners face dealing with requirements engineering in agile context were also identified. They are related to environment, people and resources.

Introduction

Since the agile manifesto was released a lot of research has been intensively developed to explore the agile software development (Dybå and Dingsøyr, 2008, Diebold and Dahlem, 2014). The agile manifesto stated some values like “individual and interactions over process and tools, working software over comprehensive documentation, customer collaboration over contract negotiation, responding to change over following a plan” (Agile Manifesto: Manifesto for Agile Software Development 2001).

All of these values add flexibility and consequently agility to the software development process. However, recent studies indicate high rates of projects failure, including those that are using agile processes. According to a study published by the Standish Group (2014) about the results of software projects, five of the eight top projects cancellation factors are related to requirements. Incomplete requirements, low customer involvement, unrealistic expectations, changes in requirements and unnecessary requirements were listed as the main factors.

So, the question that remains is how to deal with it? The answer should be inside of requirements engineering area. In traditional requirements engineering some sequential activities are developed during five specific phases: elicitation, analysis, documentation, validation and verification phases (Kotonya and Sommerville, 1997). During all these phases it is necessary to manage the requirements. What is already known is that in the traditional development life cycle, all of these activities are done during the analysis phase of the software development life cycle. It is easy to imagine this occurring when a plan-driven approach is adopted, but when an agile approach is adopted all activities and phases described on traditional requirements engineering are not so clear. Agile requirements engineering (RE) activities are not sequential but are iterative and are performed during each of the several short development cycles [S1]. Requirements engineering in agile development is informal and based on the skills and knowledge of individuals (Dingsøyr et al., 2012). It is difficult to describe or characterize the agile requirements engineering because it is still cloudy, not only for software developers but for the research community too. The software development community as a whole is still unfamiliar with the role of the requirements engineering practices in agile methods (Inayat et al., 2015).

Motivated by this perception, the goal of this study is to explore the agile requirements engineering and bring to light more discussions promoted by literature foundations. To attend this goal it is intended to create a clear and objective way of visualizing the results instigating those who intend to follow this line of research. At the beginning of the research it was noticed that the field of this research is very broad and we need to find a way to promote adequate visibility of the results, focusing on the extensions of the areas that the agile requirements engineering can achieve rather than its depth. As described by Kitchenham and Charters (2007) a systematic mapping study allows the evidence in a domain to be plotted at a high level of granularity. Systematic mapping studies or scoping studies are designed to give an overview of a research area through classification and counting contributions in relation to the categories of that classification (Petersen et al., 2008). It provides a structure of the type of research reports and results that have been published by categorizing them. It often gives a visual summary, the map, of its results (Petersen et al., 2008). To make the results emerge correctly and to reduce the bias of this research a systematic mapping methodology was applied. The research questions that we aimed to answer are the following:

  • 1)

    On which requirements engineering topics are the researches on requirements engineering in agile software development concentrated?

  • 2)

    What are the gaps concerning the requirements engineering in the context of agile software development?

  • 3)

    What obstacles do the agile requirements engineering is facing (environment, people and resources)?

Section snippets

Theoretical background

Requirements engineering is concerned with identifying, modeling, communicating and documenting the requirements of a system and the context in which the system will be used [S2]. The use of the term “engineering” implies that systematic and repeatable techniques should be used to ensure that system requirements are complete, consistent and relevant (Kotonya and Sommerville, 1997). A requirement engineering process is a structural set of activities, which are followed to derive, validate, and

Related studies

During this research studies related to systematic reviews or mapping studies of requirements engineering in agile software development were found, as described in Table 1.

Inayat et al. (2015) conducted a systematic literature review on agile requirements engineering published between 2002 and June of 2013. In this study 21 papers were identified and the review identified 17 practices of agile requirements engineering, 5 challenges traceable to traditional requirements engineering that are

Research method

In this research a systematic mapping study was developed following the guidelines proposed in Kitchenham and Charters (2007) and Petersen et al. (2008). In the planning activity it was possible to identify the need for the review, to specify the research questions, the research string and the inclusion/exclusion criteria.

Results

In this section the results and the answers to the research questions are described.

Discussion

As already mentioned the goal of this study is to explore the agile requirements engineering and bring to light more discussions promoted by literature foundations. During this research we selected 104 papers related to agile requirements engineering. To attend this goal some research questions were formulated and answered. In this section some important aspects that emerged in this research are going to be discussed.

On Section 3 some related studies like systematic literature reviews and

Threats to validity

The first threat to the validity of this study is related to the bias on the process of selection of the studies. To reduce this bias the guidelines proposed in Kitchenham and Charters (2007) and Petersen et al. (2008) were used. The first difficulty appeared on preparing the search string. The first string that was proposed by the authors, with more than 15 attributes related to agile requirements engineering, could not be used in all databases. Some of them have restrictions related to the

Conclusion

This paper presented the results of a systematic mapping study on requirements engineering in agile software development context. In this review a total of 104 studies, published between 2001 and March of 2017, were selected to be reviewed and analyzed. The goal of this research was to map the subject area of requirements engineering in agile context to identify the main topics that have been studied related to requirements engineering in agile context and also to identify gaps in the

Karina Curcio has a Bachelor's degree in Informatics, Master's in Electrical Engineering at Federal University of Technology - Paraná. She is a PhD student and member of the Software Engineering Research Group at Pontifical Catholic University of Paraná and her research interests are in software engineering, software quality, software process improvement and innovation.

References (33)

  • K. Petersen et al.

    Systematic mapping studies in software engineering

  • I. Sommerville

    Software Engineering

    (2001)
  • K. Schwaber, J. Sutherland (2018) The Scrum guide - The definitive guide to Scrum: the rules of the game,...
  • M. Bano et al.

    Systematic reviews in requirements engineering: a tertiary study

  • J.D.R.V Medeiros et al.

    Requirements engineering in agile projects: a systematic mapping based in evidences of industry

  • V.T. Heikkila et al.

    A mapping study on requirements engineering in agile software development

  • Cited by (0)

    Karina Curcio has a Bachelor's degree in Informatics, Master's in Electrical Engineering at Federal University of Technology - Paraná. She is a PhD student and member of the Software Engineering Research Group at Pontifical Catholic University of Paraná and her research interests are in software engineering, software quality, software process improvement and innovation.

    Tiago Navarro has a Bachelor´s Degree in Informatics and is a Master student at the Pontifical Catholic University of Paraná. He is a professor at SENAI, teaching topics related to software engineering, software development and technologies.

    Andreia Malucelli has a Bachelor's Degree in Informatics, a Master's Degree in Electrical Engineering and a Doctorate in Electrical and Computing Engineering. She is a professor at the Pontifical Catholic University of Paraná and an experienced researcher in the following areas of computer science: software engineering, artificial intelligence, organizational learning, ontologies, multiagent systems and healthcare information systems.

    Sheila Reinehr has a Bachelor's Degree in Mechanical Engineering, a Master's Degree in Informatics and a Doctorate in Engineering. She is a professor at the Pontifical Catholic University of Paraná and an experienced researcher in the following areas of computer science: software engineering, software process improvement, software quality, project management, software product lines and metrics.

    View full text