A Tale of Two Agile Requirements Engineering Practices

A Tale of Two Agile Requirements Engineering Practices

DOI: 10.4018/978-1-5225-7598-6.ch115
(Individual Chapters)
No Current Special Offers


There are a number of concerns in agile software development, including requirements engineering. There are different types of agile requirement, of which currently the most common forms are use cases and user stories. The use cases and user stories have different origins, both in space and in time, but by being among the practices of scenario-oriented requirements engineering (SORE), they are not entirely unrelated. The purpose of this chapter is to situate use cases and user stories in the context of each other. This is done by means of a conceptual framework for systematically comparing use cases and user stories. The understanding of similarities and differences between use cases and user stories have pedagogical as well as practical implications.
Chapter Preview


In this section, a brief background on agile methodologies and requirements engineering is presented, and previous work on comparing use cases and user stories is analyzed.

Agile Methodologies

In the 1990s, a number of limitations of rigidity in approaches for development of certain types of software systems were realized. These limitations made it difficult for organizations that aimed for relatively short release cycles of their products to remain competitive in the market, had relatively small budgets to allocate for their projects, and required richer communication between technical and non-technical stakeholders (including customers and users) to address their needs better. The drive to cope with these limitations led to the inception of agility.

The Agile Manifesto constitutes the basis for a number of agile methodologies, including Agile Experience Design (AXD), Crystal Clear, Extreme Programming (XP), OpenUP, Scrum, and User-Centered Agile Process (UCAP). The agile methodologies have evolved over time and in certain cases, such as the Discipline Agile Delivery (DAD) process framework (Ambler & Lines, 2012), elements of multiple agile methodologies have been included.

Requirements Engineering

In software engineering, significant emphasis is placed on the requirements engineering, in general, and practices of requirements engineering, in particular, in the light of their impact on the later phases of software development and eventually their influence on the success of the software project (Wiegers, 2003). This causality is depicted in Figure 1. In requirements engineering, the attention is on the problem so as to devise a desirable and viable solution, namely the software system, which can satisfy the stakeholders.

Figure 1.

A causal relationship between the success of a software project and the practices of software requirements engineering


The agile methodology underlying an agile project determines the type of agile requirement to be adopted. For example, in Crystal Clear and OpenUP, an agile requirement can take the form of a use case (Jacobson et al., 1992) and in AXD, XP, Scrum, and UCAP, an agile requirement can take the form of a user story (Cohn, 2004).

Complete Chapter List

Search this Book: