You are on page 1of 2

Chapter 4

SURFACING REQUIREMENTS INTERACTIONS

William N. Robinson
Department o/Computer In/ormation Systems
Georgia State University
Atlanta, GA 30301-4015 USA
http://cis.gsu.edu/-wrobinso
wrobinson@gsu.edu

Abstract: Requirements errors are numerous, persistent, and expensive. An important


subclass of requirements errors arise from inadequate analysis and
management of dependencies among requirements. Requirements interaction
management (RIM) addresses such errors.

In this chapter, we describe a requirements analysis technique, called root


requirements analysis, that can be used to identify requirements interactions,
as well as to provide a strategy for their removal. This simple technique is
based on: generalizing requirements to form root requirements, completely
comparing the root requirements, and applying simple metrics to the resultant
comparison matrix. Root requirements analysis is effective. In the case study
described in this chapter, the technique finds that 36 percent of the case's root
requirements interactions result in problems which require further analysis.
Moreover, the technique provides a specific operational procedure to guide the
efficient iterative resolution of identified requirements conflicts. The process
of root requirements analysis itself is not specific to a particular methodology.
It can be applied directly to requirements in a variety of forms, as well as to
the documentation of requirements development. We took this latter approach
in the case study illustrating how root requirements analysis can augment the
inquiry cycle model of requirements development. Finally, the technique is
amenable to support through collaborative CASE tools, as we demonstrate
with our DEALSCRIDE prototype.

1. INTRODUCTION

One of the main objectives of requirements engineering is to improve systems


modelling and analysis capabilities so that organizations can better understand

J. C. S. Prado Leite et al. (eds.), Perspectives on Software Requirements


© Kluwer Academic Publishers 2004
70 Perspectives on Software Requirements

critical system aspects before they actually build the system. As Brooks noted,
requirements definition is the most difficult development stage.
The hardest single part of building a software system is deciding precisely what
to build. No other part of the conceptual work is as difficult as establishing the
detailed technical requirements ...No other part of the work so cripples the
resulting system if done wrong. No other part is as difficult to rectify later. [4]

Consequently, requirements engineering research spans a wide range of topics


[32], but a topic of increasing importance is the analysis and management of
dependencies among requirements. We call this requirements interaction
management (RIM) and define it as

the set of activities directed toward the discovery, management, and disposition
of critical relationships among sets of requirements.

Although the term itself is new, requirements engineers have long recognized
that the topics and issues RIM encompasses are crucial to obtain a good
requirements specification.
RIM is applied after requirements have been elicited and represented. The thrust
of RIM is to analyze the extent to which a system can satisfy multiple requirements
simultaneously. A system has many components, and each component has many
requirements-requirements which can interact with other requirements and with
the environment. The satisfaction of one requirement can aid or detract from the
satisfaction of another, and the environment can increase or reduce requirement
satisfaction[49]. Single requirement methods exist-for example, to minimize
network latency or maximize network throughput-but they typically apply to only
one or a few requirements. As object-oriented methods and networked system
deployment become more common, the number of components (and their
interactions) will increase. Satisfying all these requirements through component
composition becomes extremely difficult.
As Neumann suggests,

The satisfaction of a single requirement is difficult enough, but the simultaneous


and continued satisfaction of diverse and possibly conflicting requirements is
typically much more difficult. [29]

Yet, despite the importance of managing requirements interactions, the state of


the art suffers three major problems [46]:

I. The specific kind of interaction being considered is not always clear.


2. There is a lack of systematic techniques for detecting conflicts among non-
operational requirements.
3. There is a lack of systematic techniques for resolving conflicts.
RIM seeks to address all three.

You might also like