SYSTEM REQUIREMENTS HOMEWORK WK 3

profilecoreygarrett123
Repetition_between_stakeholder.pdf

ORIGINAL ARTICLE

Repetition between stakeholder (user) and system requirements

Richard Ellis-Braithwaite1 • Russell Lock1 • Ray Dawson1 • Tim King2

Received: 15 July 2014 / Accepted: 9 September 2015 / Published online: 25 September 2015

� Springer-Verlag London 2015

Abstract Stakeholder requirements (also known as user

requirements) are defined at an early stage of a software

project to describe the problem(s) to be solved. At a later

stage, abstract solutions to those problems are prescribed in

system requirements. The quality of these requirements has

long been linked to the quality of the software system and

its development or procurement process. However, little is

known about the quality defect of redundancy between

these two sets of requirements. Previous literature is

anecdotal rather than exploratory, and so this paper

empirically investigates its occurrence and consequences

with a case study from a UK defense contractor. We report

on a survey of sixteen consultants to understand their

perception of the problem, and on an analysis of real-world

software requirements documents using natural language

processing techniques. We found that three quarters of the

consultants had seen repetition in at least half of their

projects. Additionally, we found that on average, a third of

the requirement pairs’ (comprised of a system and its

related stakeholder requirement) description fields were

repeated such that one requirement in the pair added only

trivial information. That is, solutions were described twice

while their respective problems were not described, which

ultimately lead to suboptimal decisions later in the devel-

opment process, as well as reduced motivation to read the

requirements set. Furthermore, the requirement fields

considered to be secondary to the primary ‘‘description’’

field, such as the ‘‘rationale’’ or ‘‘fit criterion’’ fields, had

considerably more repetition within UR–SysR pairs.

Finally, given that the UR–SysR repetition phenomena

received most of its discussion in the literature over a

decade ago, it is interesting that the survey participants did

not consider its occurrence to have declined since then. We

provide recommendations on preventing the defect, and

describe the freely available tool developed to automati-

cally detect its occurrence and alleviate its consequences.

Keywords User requirements � Stakeholder requirements � System requirements � Duplicate detection � Redundancy

1 Introduction

Requirements documents written in natural language are

usually the primary, and often sole means of communi-

cating the desired capabilities of a software system to its

developers or procurers [1]. Since requirements define the

design problem to be solved [2], their quality has long been

recognized as an important factor in the success of a

software project. Researchers have recently investigated

duplication within software requirements documents [3] in

the context of minimizing the ‘‘redundancy’’ quality defect

[4]. That is, where requirements engineers have not

adhered to the ‘‘Don’t Repeat Yourself’’ principle: ‘‘Every

piece of knowledge must have a single, unambiguous,

authoritative representation within a system’’ [5], i.e.,

& Richard Ellis-Braithwaite [email protected]

Russell Lock

[email protected]

Ray Dawson

[email protected]

Tim King

[email protected]

1 Computer Science, Loughborough University,

Loughborough, Leicestershire, UK

2 LSC Group, Lichfield, Staffordshire, UK

123

Requirements Eng (2017) 22:167–190

DOI 10.1007/s00766-015-0239-x

within a project’s requirements set. However, duplication

between the different types of requirements documents—

namely stakeholder (or user) and system—has yet to be

investigated empirically. We propose that between-docu-

ment redundancy is at least as concerning as within-doc-

ument redundancy; for as well as inheriting many of the

undesirable effects caused by cloning requirements or code

[3, 6], engineering process-related problems may be indi-

cated. For example, perhaps ‘‘flow down’’ from stakeholder

needs to system capabilities could be improved [7].

Hence, the subject of this paper is a pattern of repetition

that occurs between a project’s requirements documents

while following the generic ‘‘V’’ systems engineering

model [8], i.e., where stakeholder requirements (problems)

are transformed into system requirements (abstract solu-

tions). In confusion over a plethora of conflicting require-

ments engineering (RE) terminology and guidelines [9],

practitioners are sometimes led to write (or rather re-write)

system requirements (SysR) that add insignificant infor-

mation to their associated user requirements (UR), or vice

versa. For example, the UR ‘‘the user shall be able to write

an email’’, and the SysR ‘‘the system shall enable the user

to write an email’’. From an information-theoretic view-

point [10], these requirements could be considered dupli-

cates, since the difference between them expresses

information known about the whole set of SysRs. Such

duplication renders traceability between the two statements

an inefficient use of the reader’s time, where it should have

provided a source of rationale [11] and translation between

‘‘the voice of the customer’’ and ‘‘the voice of the engi-

neer’’ [12]. Nevertheless, both documents (UR and SysR)

must still be read by architects and developers to ensure

pertinence, since it is their responsibility to ‘‘find out the

real story behind the requirements’’ [13]. While doing so,

reading the occasional repeated requirement statement may

evoke feelings of déjà vu, but it is more concerning when a

significant proportion are repeated, since:

1. Duplication between URs and SysRs indicates a

misunderstanding of their role, and therefore potential

omission of either the problem or solution description,

indicating concerns about the SysR’s ‘‘flow down’’;

2. Finding worthwhile non-duplicated requirements

becomes akin to ‘‘finding a needle in the haystack’’,

hence risking ignorance of important requirements

(caused by readers losing the will to continue reading).

More than a decade ago, Kovitz [14] and Alexander [15]

independently identified and discouraged the reportedly

common practice of repeating the description between user

requirements and their associated system requirements.

Since this paper’s authors still witness this practice in

industry, the following research questions (RQs) were

constructed:

RQ1 According to the literature, what are the differences

supposed to be between a UR and a SysR?

RQ2 Does repetition between UR and SysR statements

(still) occur, and if so, how often?

RQ3 Why does UR–SysR repetition occur, and what

does it indicate about the project?

RQ4 Is UR–SysR repetition a problem, and if so, why?

RQ5 Can the problems caused by UR–SysR repetition be

reduced in existing and future requirements sets?

In summary, this paper sets out to explore repetition

between pairs of UR and SysR statements and to discuss

whether itcan be considered a problem inlight ofthe pertinent

RE literature. To provide more than anecdotal evidence in

answeringRQs2–5,wepresenttheresultsofacasestudyfrom

a UK defense consultancy. We discuss a survey of sixteen

software systems engineering consultants, and an analysis of

UR–SysR requirement pairs from two independent software

projects. While doing so, we describe the requirements

traceability analysis tool (free to download) [16] developed:

• to enable the investigation of RQs 2 and 5; • to support both producers and consumers of UR and

SysR documentation in future projects;

• under the wider research aim of increasing the usability of requirements quality assessment.

2 Background and terminology

The following sections will introduce the concepts of

requirements at the user, system, and software level (2.1

and 2.2), traceability between them (2.3), and similarity

analysis (2.4).

2.1 Requirements

There is little consensus on the precise meaning of the ter-

minology used in RE—especially on the term ‘‘requirement’’.

Jureta et al. [9] recently summarized that it is ‘‘variously

understood as (describing) a purpose, a need, a goal, a func-

tionality, a constraint, a quality, a behavior, a service, a con-

dition,ora capability’’.Fifteenyearsbeforethat,Harwelletal.

[17] asserted that ‘‘if it mandates that something must be

accomplished, transformed, produced, or provided, it is a

requirement—period’’. What both of these definitions share in

common is that a requirement is either about a problem (i.e., a

purpose, need, or goal to be accomplished) or about a solution

(i.e.,a functionality,quality,behavior,service,orcapability to

be transformed, produced, or provided). As Wieringa puts it,

there are ‘‘two schools of thought’’ in RE [18], and confusion

among practitioners about which ‘‘school’’ their requirements

should adhere to [15] seems inevitable due to the semantic

168 Requirements Eng (2017) 22:167–190

123

overload of the ‘‘requirement’’ term. Idealistic and ambiguous

guidelines, such as that requirements should describe what

software must do rather than how it will do it, only complicate

the issue [19], since as Kovitz [14] eloquently puts it, ‘‘ev-

erything that a piece of software does is what it does, and

everything that a piece of software does is how it does

something’’.

2.2 Stakeholder, system and software requirements

Qualifying adjectives, such as those in this section’s

heading, are often prepended to ‘‘requirement’’ to indicate

which ‘‘school of thought’’ the requirement belongs. Pop-

ular requirements [11], systems [2, 20], and software [21]

engineering textbooks, along with international systems

and software requirements engineering standards [22–24]

primarily refer to two such qualifiers: stakeholder and

system. In Table 1, we distill the definitions for these types

in terms of their domain (problem or solution?), role (for

what purpose?), and language (whose vocabulary is it

written in?), according to these sources. First, however, we

describe the scope of these qualified requirement types in

terms of their subtypes.

2.2.1 Stakeholder requirements subtypes

Given that a ‘‘stakeholder’’ is ‘‘an individual, group of peo-

ple, organisation, or other entity that has a direct or indirect

interest in a system’’ [11], then business, legal, or user

requirements could be considered as subtypes of stakeholder

requirement. For example, ‘‘business requirements’’

describe the ‘‘needs of the enterprise’’, rather than those of ‘‘a

particular stakeholder or class of stakeholders’’ [22]. Con-

fusingly, this terminology is occasionally used inter-

changeably. Throughout this paper, we continue the

convention (considered to be ‘‘incorrect’’ [25, 26]) of refer-

ring to ‘‘stakeholder’’ requirements as ‘‘user’’ requirements,

for coherence with the previous works on the topic [14, 15].

2.2.2 System requirements subtypes

Since a system is ‘‘a collection of components—machine,

software, and human, which co-operate in an organised

way to achieve some desired result’’ [11], there can be

requirements on the whole system, its components, and on

its interfaces. Hence, a software requirement is a system

requirement by definition, but a system requirement is not

necessarily a software requirement, since software

requirements are enforced solely by the software agent to-

be, and ‘‘a system does not merely consist of software’’

[25]. Whether or not a system requirements document

contains non-software requirements (such as expectations

on human behavior, hardware, or interfaces), depends on

whether the software will provide ‘‘essentially all the

functionality’’ of the envisioned system (as in ‘‘Software-

Intensive Systems’’ [20]), or whether it will be just one part

of a larger system [22].

2.2.3 Difference between stakeholder and system

requirements

To summarize Table 1 and to answer RQ1, translating a

UR to a SysR should involve at least:

1. A decision on the abstract system-to-be. Not doing

so risks that the SysRs will be too ambiguous to be

useful. For example, deriving specific SysRs on energy

usage that would be equally applicable to burglar

alarms, electric fences, and guard dogs is a difficult

task [27].

2. A transition from a stakeholder need to a system

responsibility. Not doing so risks that the need will

remain unsatisfied, and indicates that a desire may not

have been clarified, decomposed, derived, or allocated

[28], such that it is clear that a component (or more

generally, the system) will be causally responsible for it.

3. Technical, rather than customer-oriented language.

Not doing so risks that software developers misinter-

pret requirements and waste effort on software that the

customer will not accept; Rework in programming

costs exponentially more time than in requirements

[29].

The unanimous recommendation from Table 1 that URs

should describe problems while SysRs should describe

solutions cannot be interpreted as an absolute rule, since

problems and solutions are not conceptually orthogonal.

For example, Jackson notes that merely structuring a

problem moves the description toward a solution [36],

while Berry concludes that specifying a problem precisely

sometimes requires reference to the solution domain, and

so ‘‘for some requirements, it may be impossible to specify

what without saying something about how’’ [37]. Further-

more, a UR or a SysR can simultaneously be a description

of a problem and a solution, since what is an end in one

context is a means to an end in another (as is the prag-

matist’s argument against ‘‘intrinsic value’’ [38]). Simi-

larly, Zave and Jackson argue that ‘‘almost every goal is a

subgoal with some higher purpose’’ [39]; adapted to this

UR–SysR context is that even the most non-technical of

URs will rarely not be ‘‘solutions’’, e.g., to achieving

stakeholder happiness. (Consequently, alternative solutions

to the ‘‘engineering problem’’ should be scoped to the SysR

level to avoid requirements specifying that the stakeholder

should instead ‘‘adopt religion or devotion to family’’ [39],

for example.) Overall, the essence of the matter is not that

there should be a problem–solution dichotomy, but rather

Requirements Eng (2017) 22:167–190 169

123

T a

b le

1 D if fe re n c e s b e tw e e n u se r re q u ir e m e n ts

(U R )

a n

d sy st e m

re q u ir e m e n ts

(S y sR

) d e fi n it io n s

D o m a in

R o le

L a n g u a g e

U R

S y sR

U R

S y sR

U R

S y sR

T e x tb o o k s

R e q u ir e m e n ts

E n g in e e ri n g

(H u ll e t a l. )

‘‘ p

r o

b le

m to

b e so lv e d ’’

in th e ‘‘ e n c lo si n g

sy st e m ’’ [1 1 ]

‘‘ a b st ra c t

so lu

ti o

n ’’ [1 1 ]

‘‘ st a te [s ] w h a t th e st a k e h o ld e rs

w a

n t

to a

c h

ie v

e th ro u g h u se

o f th e sy st e m ’’ [1 1 ]

‘‘ st a te [s ] a b st ra c tl y

w h

a t

th e

sy st

e m

w il

l d

o to

m e e t th e

st a k e h o ld e r re q u ir e m e n ts ’’ [1 1 ]

‘‘ st

a k

e h

o ld

e r ’s

v ie w ’’ [1 1 ]

‘‘ a

n a

ly st

’s v ie w ’’ [1 1 ]

S y st e m s

E n g in e e ri n g

(S te v e n s e t a l. )

‘‘ p

r o

b le

m d o m a in ’’ [2 0 ]

‘‘ so

lu ti

o n … in

fu n c ti o n a l

te rm

s’ ’ [2 0 ]

‘‘ d

e fi

n e s

th e

r e su

lt s th a t th e sy st e m

w il l

su p p ly

to u se rs ’’ [2 0 ]

‘‘ d e fi n e s a n a b st ra c t m o d e l…

to r e a

so n

a b

o u

t th

e e n

d so

lu ti

o n

b e fo re

c o m m it m e n t to

a

sp e c ifi c d e si g n ’’ [2 0 ]

‘‘ u

se r s c a n e a si ly

u n d e rs ta n d ’’

[2 0 ]

‘‘ e x tr a d e ta il ’’ —

‘‘ d

e si

g n

e r s

& te

st e n

g ’’ [2 0 ]

S o ft w a re

E n g in e e ri n g

(S o m m e rv il le )

‘‘ a c o m p a n y …

d e fi n e [s ]…

n e e d

s’ ’ &

‘‘ a

so lu ti o n is n o t p re -

d e fi n e d ’’ [2 1 ]

‘‘ sy st e m ’s

fu n c ti o n s,

se rv ic e s…

to b e

im p

le m

e n

te d ’’

[2 1 ]

‘‘ so

th a t se v e ra l c o n tr a c to rs

c a n

b id …

o ff

e r in

g d

if fe

r e n

t w

a y

s o

f m

e e ti

n g

th e …

o r g

a n

iz a

ti o

n ’s

n e e d

s’ ’ [2 1 ]

‘‘ d e fi n e [s ] e x a c tl y w h a t is to

b e

im p le m e n te d ’’ …

‘‘ so

th a t th e

c li e n t u n d e rs ta n d s a n d

c a

n v

a li

d a

te w

h a

t th

e so

ft w

a r e

w il

l d

o ’’ [2 1 ]

‘‘ a b st ra c t…

fo r

th e

c u

st o

m e r

& e n

d -

u se

r [s

]’ ’ [2 1 ]

‘‘ p re c is e d e ta il

fo r

d e v

e lo

p e r s

& te

st e r s’ ’

[2 1 ]

S ta n d a rd s &

F ra m e w o rk s

IS O

2 9 1 4 8

‘‘ p ro v id e th e tr u e p ic tu re

o f th e

p r o

b le

m to

b e

so lv e d ’’ [2 2 ]

‘‘ c h a ra c te ri st ic s,

… a n d

fu n c ti o n a l …

re q u ir e m e n ts

fo r

a p ro d u c t

so lu

ti o

n ’’ [2 2 ]

‘‘ d

e sc

r ib

e [s

] th

e n

e e d

s th a t a g iv e n

st a k e h o ld e r h a s a n d h o w

th a t st a k e h o ld e r

w il l in te ra c t w it h a so lu ti o n ’’ —

‘‘ a b ri d g e

b e tw e e n b u si n e ss

re q u ir e m e n ts a n d th e …

so lu ti o n re q u ir e m e n ts ’’ [2 2 ]

‘‘ p ro v id e [s ] a d e sc ri p ti o n o f

w h a t th e

sy st

e m

sh o

u ld

d o in

te rm

s o f th e sy st e m ’s

in te ra c ti o n s o r in te rf a c e s w it h

it s e x te rn a l e n v ir o n m e n t’ ’ [2 2 ]

‘‘ b u si n e ss

m a

n a

g e m

e n

t’ ’

& ‘‘ b u si n e ss

o p

e r a

ti o

n a

l le

v e l’ ’ [2 2 ]

‘‘ u n d e rs ta n d a b le

b y b o th

th e

a c q

u ir

e r &

th e

te c h

n ic

a l

c o

m m

u n

it y ’’

[2 2 ]

S E B O K

‘‘ v ie w s o f st a k e h o ld e rs a s

th e y re la te

to th e

p r o

b le

m (o r

o p p o rt u n it y )’ ’ [2 3 ]

‘‘ sy n th e si s o f th e

fu n c ti o n s

re q u ir e d o f a n y

so lu

ti o

n sy st e m …

’’ [2 3 ]

‘‘ e n a b le s th e c h a ra c te ri z a ti o n o f th e

so lu ti o n a lt e rn a ti v e s’ ’ [2 3 ] &

‘‘ th e

b a

si s

o f S y sR

a c ti v it ie s,

sy st

e m

v a

li d

a ti

o n a n d

st a k e h o ld e r a c c e p ta n c e ’’ [2 3 ]

‘‘ b

a si

s o

f sy

st e m

a rc h it e c tu re ,

d e si g n , in te g ra ti o n & ,

v e r ifi

c a

ti o

n ’’ [2 3 ] &

‘‘ tr a n sl a te s a st a k e h o ld e r

re q u ir e m e n t in

th e la n g u a g e o f

th e su p p li e r’ ’ [2 3 ]

‘‘ u se rs , a c q u ir e rs ,

c u

st o

m e r s, a n d

o th e r

st a

k e h

o ld

e r s’ ’

[2 3 ]

‘‘ b e tw e e n th e

v a ri o u s

te c h

n ic

a l

st a

ff ’’ [2 3 ]

U K

M o D

A O F

‘‘ th e

p r o

b le

m ’’ [3 0 ]

‘‘ …

n o

t… a n ti c ip a t[ in g ]

a p

a r ti

c u

la r

so lu

ti o

n ’’

[3 1 ]

‘‘ so

lu ti

o n -f o c u se d

re sp o n se

to th e

c a p a b il it y -

fo c u se d U R s’ ’

[3 2 ]

‘‘ d

e fi

n e [s

]… th

e o

u tc

o m

e …

th a t th e u se r

n e e d s to

b e a b le

to a c h ie v e ’’ [3 3 ]

‘‘ d e fi n e s w h a t is n e e d e d … ’’ [3 2 ]

in te rm

s o f ‘‘

w h

a t

th e

sy st

e m

m u

st d

o [a n d ] h o w

w e ll it

m u st

p e rf o rm

’’ [3 4 ]

‘‘ u n d e rs to o d b y

th e

u se

r &

st a

k e h

o ld

e r s’

’ [3 3 ]

‘‘ su it a b le

fo r

c o

n tr

a c to

r s

& st

a k

e h

o ld

e r s’ ’

[3 5 ]

170 Requirements Eng (2017) 22:167–190

123

that both the positive and negative effects (and hence the

pertinence and adequacy) of a SysR can be understood

when it is related to one or many URs that describe the

problem(s) that should be treated.

At a more philosophical level, in a discussion over

what a UR or a SysR should be, it is crucial to remember

that requirements in themselves are intangible and exist

independently of their representations [40]. Indeed, aside

from UR and SysR documents, requirements and their

pertinence could be represented by other means, e.g.,

with goal graphs, as in GRL [41] or KAOS [42] (where

system requirements ‘‘implement’’ stakeholder goals

[43]). In RE, the important concern should not be the

choice of representation or associated nomenclature, but

rather that the ‘‘requirements problem’’ is solved [9], or

put bluntly, that the ‘‘how’’s satisfy the ‘‘what’’s such

that asking ‘‘why’’ of the ‘‘how’’ leads to the ‘‘what’’.

Then, the wider concern should be that the ‘‘what’’s will

be valuable, as is the topic of value-based requirements

engineering [44].

Finally, a discussion on ‘‘requirement’’ qualifications

and representations would not be complete without

addressing the distinction between the so-called Functional

Requirements (FRs) that prescribe desired behaviors, and

Non-Functional Requirements (NFRs) that prescribe

desired qualities [45]. Regardless of the myriad of defini-

tions proffered for these, Glinz demonstrates that the dis-

tinction lies in the requirement’s representation rather than

its concern [46]. For example, the different representations

‘‘…require username and password…’’ (FR) and ‘‘…probability of unauthorized access…’’ (NFR) refer to the same security concern, but provide different informa-

tion about it. Similarly, a UR and a SysR may both refer to

the same concern, yet their different representations should

provide different information. Stated in terms of the KAOS

meta-model for requirements engineering [42], if a

requirement’s SysR representation is missing, then infor-

mation about responsibility may be lost (i.e., which system

component will enforce the requirement?), while if the UR

representation is missing, then information about which

stakeholder(s) wish for the requirement, and why they wish

for it, may be lost.

To add illustration to the so-far conceptual discussion,

Table 2 provides examples of UR–SysR pairs from the

literature. Examples #1–6 are intended by the respective

authors to be examples of good practice, while #7 is

Kovitz’s example of the UR–SysR repetition bad practice.

The reader will observe that these translations from

UR to SysR vary in their adherence to the conceptual

definitions in Table 1, but as Rost describes, compliance

with RE standards by industry and even ‘‘semiofficial’’

authors is generally poor [47].

2.3 Traceability between user and software

requirements

All of the literature cited in Table 1 recommends that

relationships between SysRs and URs should be captured

and maintained, e.g., with a traceability matrix such as

MODAF view SV-5 [49], the House of Quality [12], or

more simply as a traceability field in the spreadsheet,

document, or database. The analysis enabled by such

traceability can be classified as either [11]:

• Impact analysis—‘‘What if this requirement is chan- ged?’’ (for change analysis);

• Derivation analysis—‘‘Why is this requirement here?’’ (for goal and cost/benefit analysis);

• Coverage analysis—‘‘Are all customer concerns cov- ered?’’ (for progress and accountability analysis).

Table 2 Examples of user requirement–system requirement (UR–SysR) pairs from the literature

# UR SysR

1 ‘‘The driver shall be able to deploy the vehicle over terrain type 4A’’ [11] ‘‘The vehicle shall transmit power to all wheels’’ [11]

2 ‘‘The \Management User[ requires data to be protected \Measure of Effectiveness[ from unauthorized access’’ [48]

‘‘The\Security System[shall provide encryption to electronic data’’ [48]

3 ‘‘The maximum duration of a trip from the mother craft to the beach is 1 h,

because trips over an hour will make most people too seasick to function

effectively’’ [28]

‘‘The landing craft shall have a minimum speed of 25 knots’’

[28]

4 ‘‘The elevator shall receive calls for up and down service from all floors of the building’’ [2]

‘‘The elevator system shall produce digitized passenger

requests’’ [2]

5 ‘‘Patients shall be medically aided within less than eight minutes on

average’’ [20]

[The system shall] ‘‘Locate available ambulance’’ [20]

6 ‘‘The MHC-PMS shall generate monthly management reports showing the

cost of drugs prescribed by each clinic during that month’’ [21]

‘‘The system shall automatically generate the report for

printing after 17.30 on the last working day of the month’’

[21]

7 ‘‘User shall be able to store grocery inventory data’’ [14] ‘‘System shall store grocery inventory data’’ [14]

Requirements Eng (2017) 22:167–190 171

123

The results of traceability analysis can be distilled by

traceability metrics to improve the identification of risks

and flaws early in the system life cycle [50]. For example,

coverage metrics could be calculated to describe the per-

centage of URs that relate to at least one SysR. Here,

complete coverage is highly desirable for convincing

stakeholders that their concerns will be addressed by the

system-to-be. However, the descriptive power of the cov-

erage metric depends on the URs and the SysRs according

to Table 1’s guidelines. For example, a 100 % UR cover-

age metric would not ensure what the metric is supposed to

ensure if it is calculated from a set of repeated UR–SysR

pairs. Indeed, many projects have failed to derive benefit

from traceability [51, 52], e.g., because of ‘‘traceability for

its own sake’’ or for process compliance. Hence, Asuncion

et al. propose that each traceability link made throughout

the system’s life should be questioned for its ability to be

beneficial [51], and in the case of tracing between a repe-

ated UR and a SysR, i.e., to form a UR–SysR pair, we do

not see much benefit. In summary, and to contribute to

answering RQ4, repetition between URs and SysRs

diminishes the efficacy of the aforementioned traceability

analysis, the impact of which ranges from misinforming

stakeholders about problem–solution coverage, through to

being unable to make value-oriented decisions in the

software project, e.g., in prioritization, trade-off analysis,

etc. [53].

2.4 Measuring the repetition in a UR–SysR pair

(string similarity from an information retrieval

perspective)

Being able to objectively quantify the degree of repetition

between UR–SysR pairs is essential for understanding the

extent of its existence, and therefore for the management

and reduction of it. Since URs and SysRs are typically

represented by textual statements, even if they were

derived from models such as in [54], their similarity—and

hence the degree of repetition between them—can be

quantified using string similarity metrics, of which, Cosine,

Jaccard, and Dice are the most popular [10]. These metrics

take as input two strings and output a normalized score in

the interval [0,1] for comparability of different string

lengths, starting at zero when there is no commonality (no

matter how different), and reaching one when there is no

difference [10]. These metrics are commonly calculated

(e.g., in e-mail spam detection [55]) according to the ‘‘bag

of words’’ model where a requirement’s description would

be processed into a set of unordered terms (words) and

their frequencies. The steps in processing a sentence to a

bag of words typically include tokenization (splitting the

sentence into words), and stemming (stripping words to

their ‘‘base meaning’’, e.g., ‘‘maintainable’’ becomes

‘‘maintain’’) [56]. The contrived problem that ‘‘user uses

system’’ and ‘‘system uses user’’ would be considered

equal, illustrates the drawback. However, this is not likely

to be an issue, since two requirement descriptions would

seldom use exactly the same frequencies of terms

sequenced differently to describe different information.

Besides, disregarding a term’s context (its surrounding

terms) improves recall (i.e., more similarity is detected),

since a term such as ‘‘performance’’, will be more common

between a UR–SysR pair than sequences of terms, such as

‘‘system performance’’, as n-grams [56] would represent.

While the Jaccard and Dice metrics are intuitive (in

essence, they divide the number of common terms by the

total number of terms), their disadvantages for this paper’s

context are:

1. That term occurrence is Boolean. For example, the

second occurrence of the ‘‘user’’ term is ignored in

‘‘the user shall be able to communicate with another

user’’;

2. That the importance of term difference is assumed to

be equal across all terms, but existence of the term

‘‘system’’ in a SysR is more trivial than the term

‘‘encryption’’.

Therefore, modern information retrieval applications

such as search engines favor a vector space model of

similarity using terms as dimensions, strings as vectors,

TF–IDF distance (term frequency–inverse document fre-

quency) as vector magnitudes, and the calculated cosine

measure of angular similarity between vectors [56] (as

visualized by the two-term example in Fig. 1). Hence, the

first aforementioned problem of the Jaccard and Dice

metrics (Boolean representation of term occurence) is

treated by considering the frequency of terms in each of the

strings.

The second problem of the Jaccard and Dice metrics

(assuming equal term importance) is treated by TF–IDF by

Engineering

Requirements

String A = [requirements, engineering, requirements]

String B = [requirements, engineering]

2

1

1 2

cos(a)=sim(String A, String B)

Fig. 1 Similarity between String A and String B using the cosine measure and the vector space model, as used to calculate TF–IDF

(figure modified and adapted from [57], and simplified to include only

two dimensions and hence only two terms)

172 Requirements Eng (2017) 22:167–190

123

multiplying the term frequencies by the term’s inverse

document frequency (the log-dampened probability that the

term could be picked at random from the projects set of

requirements). Hence, any non-similarity between a UR–

SysR pair comprised of terms frequently occurring in the

requirement set (e.g., the term ‘‘user’’ in a UR) is treated as

less significant than non-similarity comprised of rarer

terms. This weighting seems logical in the context of UR–

SysR repetition. For example, the differences in UR–SysR

pair #7 in Table 2 (-user, ?system, -be, -able, -to) are

likely to be common across the project’s set of URs and

SysRs, and they do not seem important enough to warrant

reading the SysR if the UR has been read.

The usefulness of IDF weighting is underpinned by the

assumption that important terms are rare while trivial terms

are common. However, take for example the term

‘‘notwithstanding’’, which despite being generally rare, is

not a significant indicator of a requirement’s concern.

Furthermore, specially rare terms, i.e., rare in a particular

requirement set but generally common, would also be

given an inflated importance by IDF. An example from this

paper’s case study is the replacement of the term ‘‘which’’

with ‘‘that’’ from a UR to a SysR. Hence, the impact of

trivial but rare differences between UR–SysR pairs needs

to be reduced by additional means. To do so, many infor-

mation retrieval systems remove ‘‘stop-words’’ prior to

calculating TF–IDF. That is, commonly occurring words

such as the, that, or with are removed after tokenization,

since while they ‘‘help build ideas’’, they ‘‘do not carry any

significance themselves’’ [58]. The list of 33 stop-words

used in Apache’s Lucence (popular information retrieval

software) provides a well-tested set [59]. Runeson et al.

[57] also suggest that if the strings are structured (i.e.,

based on a template), then the template’s structural words

should also be removed to reduce their impact on the

similarity measure. The EARS templates [60] provide such

a list of candidate stop-words commonly used to structure

natural language requirements. However, logical operators

and other high-information-value but common words exist

in both Lucene’s stop-word set and the EARS template.

These terms should not be removed in this paper’s RE

context because they are able to radically change a

requirement’s meaning with one term frequency change.

Hence, Lucene’s stop-word set and the EARS keywords

comprise the stop-word set for this paper, except for the

{and, or, no, not, when, while, where, if, then} terms.

Finally, it is worth citing Falessi et al.’s [61] recent

classification and comparison of natural language pro-

cessing (NLP) techniques for identifying equivalent

requirements. Falessi et al. conclude that a technique

comprised of the vector space model and the cosine simi-

larity metric, ‘‘if adopted in a traceability tool, is expected

to provide the maximum benefit to the human analyst

compared to other NLP techniques’’. Interestingly, they

observed that the use of synonymies (i.e., considering

synonymous terms such as ‘‘monitor’’ and ‘‘screen’’ to be

the same dimension in the vector space model) was

‘‘deleterious’’, ‘‘introducing more noise [i.e., false posi-

tives] rather than making a positive contribution’’. In

addition, Runeson et al. [57] remark on the difficulty of

constructing a domain-specific synonym list (for detecting

duplicate software defect reports) that would be ‘‘efficient

enough’’ to justify the effort. Indeed, they report an

insignificant improvement after attempting to do so.

Overall, Falessi et al. [61] find that ‘‘the simplest NLP

techniques are usually adopted to retrieve duplicates’’.

(The reader interested in learning more about TF–IDF is

directed to a one-page online tutorial [62], or to Manning

and Schutze’s [56] book for a more thorough treatment.)

3 Research method

This paper’s subject became of interest to the authors

during the first author’s placement at a UK defense con-

tractor as part of a wider research project [63]. We con-

structed the research questions introduced in Sect. 1 after

three interviews with experienced consultants from the

organization to ensure their relevance (mean 21.6 years

experience; SD 2.8). Since the studied phenomenon is

sociotechnical and cannot be accurately replicated in lab-

oratory conditions, it must be studied in its natural context.

Therefore, the case study research design is adopted, and is

guided by Runeson and Höst’s [64] guidelines for case

studies in software engineering. As such, our intention is

not to answer the research questions for the general pop-

ulation of software engineering practice, since the size and

variety of samples required to do so were unaffordable

within the resource constraints of this project. Instead, we

intend to contribute to (or in this case, start) the ‘‘chain of

evidence’’, and to ‘‘enable analytical generalisation where

the results are extended to cases which have common

characteristics’’ [64] (rather than generalize purely with

inferential statistics [65] and its commonly ‘‘unrealistic’’

random sampling assumption [66]). Consequently, the

sampling method used within this case study is a form of

non-probability ‘‘convenience sampling’’, guided by

aspects of ‘‘judgement sampling’’, ‘‘snowball sampling’’,

and ‘‘quota sampling’’ [67].

As further motivation for the case study research design,

Easterbrook [68] argues that it is well suited for ‘‘how and

why questions’’ due to its depth (rather than breadth) of

enquiry. Finally, falsification is afforded by single case

studies, and is sufficient for providing answers to our

research questions on the phenomena’s incidence and

consequences, especially RQ2’s ‘‘does it occur?’’ and

Requirements Eng (2017) 22:167–190 173

123

RQ4’s ‘‘is it a problem?’’ (i.e., only one non-pink flamingo

is required to refute that ‘‘all flamingos are pink’’). Lastly,

since robust case studies require ‘‘triangulation’’ of con-

clusions using different types of data collection methods

[64], Sect. 3.1 describes the questionnaire we employed

(subjective data), while Sect. 3.2 describes the similarity

analysis of UR–SysR pairs performed by our software tool

(objective data). This mixed-methods approach is espe-

cially important since a practitioner’s understanding of

UR–SysR repetition (including its frequency of occur-

rence) will likely be distorted due to cognitive biases, such

as confirmation bias or the availability heuristic [69].

3.1 Research method 1: Questionnaire

In order to answer RQs 2–4 (does UR–SysR repetition

occur, why does it occur, and is it a problem?), we selected

consultants from the organization who were experienced in

requirements engineering (n = 23) and invited them to

complete an online structured questionnaire. The ques-

tionnaire was constructed with compliance to Umbach’s

best practices in order to minimize potential for survey

error [70]. We received completions from 16 participants

(70 % response rate) reporting on 260 years of combined

software engineering experience (mean 16.25, SD 5.32).

The responses describe a combined total of 235 software

development projects (mean 14.68, SD 8.26) in the last

10 years. While these projects are not likely to be wholly

distinct, they are unlikely to be entirely homogenous due to

the nature of the consulting business. We asked the par-

ticipants to limit their responses to the last 10 years of their

career in order to ensure the currency and relevance of the

results. For each question in the survey, a ‘‘do not know or

N/A’’ option was provided to prevent any uninformed

responses distorting those provided with higher confidence.

Where percentages are used to describe results in this

paper, they are always relative to the total number of

participants (16) rather than the number of non-‘‘do not

know or N/A’’ responses.

3.2 Research method 2: UR–SysR similarity

analysis

In order to improve the robustness of our answer to RQs 2

and 5 (does it occur, and can problems be reduced?), we

used our software tool [16] to analyze pairs of requirements

documents from two software projects written by different

authors, i.e., one author per project and four requirements

documents in total. We were limited on the number of

projects whose documentation we could acquire due to

security restrictions, but it should be noted that this sample

size is strong compared to other research on requirements

documents from industry ‘‘due to nondisclosure

agreements between researchers and industry’’, or lack

thereof [61]. Crucially, in order to construct a ‘‘typical’’

case study (of Gerring’s 9 case types [71]), we sought UR

and SysR documentation that was representative of com-

mon practice, rather than of UR–SysR repetition. We were

assured by the three interviewed consultants of the docu-

ments’ typicality in the organization, as well as in the UK

defense IT industry—afforded by the consultants’ collab-

oration with other consultancies. (Confidence in the latter is

obviously lower than in the former due to the local and

isolated nature of a case study.)

We used our software tool to perform the following

processes:

1. Import requirements from documents, each comprised

of a global and a local (hierarchical) ID field, a

description text field (‘‘system/user shall…’’), a fit criterion text field (test case), and a rationale text field

(justification).

2. Reconstruct UR–SysR traceability links using textual

references from SysRs to the global IDs of URs (thus

forming the set of the project’s UR–SysR pairs).

3. Preprocess the text fields in the requirements according

to Sect. 2.4, as exemplified in Table 3.

4. Compute IDFs for the project’s set of URs and SysRs

(where the IDF’s ‘‘document’’ set is comprised of only

the requirement field being analyzed, e.g., the fit

criterion).

5. Calculate TF–IDF distance scores for each of the

project’s UR–SysR links (distance score is 1-

similarity score).

6. Display the UR–SysR pairs and their TF–IDF scores

for identification of false positives, as shown in Fig. 2.

7. Compute statistics (TF–IDF histograms and correla-

tions) to summarize the detected UR–SysR repetition.

Steps 1–2 required manual conversion of the MS Word

documents containing the requirement statements into CSV

files via MS Excel using copy and paste. Since our tool can

interactively map CSV fields to the core requirement fields

[72], a pre-defined requirement field structure is not

required. (This mapping and import stage would not be

required if the requirements were available in the require-

ments interchange format ReqIF [73], e.g., when using

SysML models.) Steps 3–5 were implemented using the

Java LingPipe linguistic analysis library [74] to ensure

robust and repeatable results. The following of LingPipe’s

tokenizer factories were used: IndoEuropean, LowerCase,

PorterStemmer, and Stop (with the stop-word list described

in Sect. 2.4). Punctuation was removed using the regex

‘‘\p{P}’’. Step 6 is assisted by our tool’s use the Java diff-

match-patch library [75] and Graphviz [76] to visualize

differences between a UR’s and a SysR’s tokens, and Step 7

is assisted by our tool’s use of the R statistics software [77].

174 Requirements Eng (2017) 22:167–190

123

Table 4 describes the number of requirements in the two

projects, their traceability, and their wordiness. In Project

A, all but three SysRs link to one UR (there are 55 trace-

ability links from SysRs to URs, and 52 SysRs). This

indicates that the majority of repetition discovered between

UR–SysR pairs in Project A can cause the repeated

requirement (either the UR or the SysR) to be redundant,

since it is not linked to other requirements. However, the

cost of redundancy (i.e., the time to read or write) in

Project B will likely be higher than it would be in Project

A, since the requirement statements contain more words.

All links between URs and SysRs are of positive rather

than negative polarity, and so each traceability link repre-

sents a UR–SysR pair in the sense that the SysR is some

part of the solution to the UR, as opposed to conflicting

with it.

From the relatively low number of requirements in

Project A and B, the reader might be wondering why the

degree of UR–SysR repetition is investigated using TF–

IDF calculated by the software tool, instead of just manual

inspection by humans. Indeed, a viable strategy might be to

ask people to rate the degree of repetition and then

calculate inter-rater reliability. However, one of the aims of

this research is to provide automated tool support to assist

quality analysis of requirements documents. The afore-

mentioned manual inspection’s time consumption would

be measured in hours (as elaborated in Sect. 4.3), while

automated analysis’ time would be measured in seconds or

minutes. Furthermore, manual verification by two IT pro-

fessionals external to this research, found that at the chosen

TF–IDF cutoff point (0.3) for classifying a UR–SysR pair

as repeated, there were no false positives (i.e., UR–SysR

pairs that were not considered repeated but were classified

as such), and so the TF–IDF derived results provide a

confident lower bound on the proportion of repeated UR–

SysR pairs in this case study. (This topic, and the lesser

effects of false negatives are later discussed in Sect. 4.4.1.)

3.3 Context of the case study

An overview of the projects that the participants described

in their questionnaire responses is provided in Tables 5, 6,

7, 8 and 9, where the percentages describe the distribution

of the participants’ responses to the questions.

Table 3 Preprocessing of a requirement description (a

SysR)

Unmodified SysR description field Tokenized, stemmed, and stop-words

removed

The system shall be able to display a list of files available at

each accessible location

system, abl, displai, list, file, avail, each,

access, locat

Fig. 2 Eclipse-based Java tool to import URs and SysRs, and

analyze and visualize both

repetition and traceability [16]

Table 4 Summary of the two software projects’ requirements

URs SysRs UR–SysR links (pairs) Words per requirement (description field)

Project A 30 52 55 Mean 14.4; SD 6.7

Project B 48 60 98 Mean 21.4; SD 5.6

Requirements Eng (2017) 22:167–190 175

123

The software projects’ benefits and usage seem in-line,

if not better than the averages reported in a recent survey of

the IT industry [78]. Interestingly, difficulty in contacting

end-users (Table 7) indicates that applying agile RE

approaches (i.e., no UR–SysR documentation) in this

organization’s context could be challenging [79]. Further-

more, since requirements were rarely explicitly traced to

business objectives (Table 9), it is especially important that

the URs describe the SysRs’ corresponding problem(s) in

order to contextualize and assure their pertinence and

adequacy.

The majority (75 %) of the participants had experience

in mostly military projects, while 18.75 % had experience

in mostly civil projects, and the remainder had approxi-

mately equally split experience. As such, most of the

requirements engineering practice reported on in this case

study will have adhered to the guidelines in the UK Min-

istry of Defence’s Acquisition Operating Framework

(AOF) [34]. This does not significantly limit the general-

izability of the results, since as Table 1 shows, the AOF is

mostly in agreement with the other standards and guide-

lines. Furthermore, the AOF seems opposed to redundancy

in requirements documents, since it offers two redundancy-

related guidelines for creating user requirements docu-

ments in [33]:

• ‘‘Exploit the hierarchy to minimize repetition. State- ments can inherit characteristics from parent nodes.’’

• ‘‘Avoid duplication. If two users/stakeholders have a common interest, record both sponsors against a single

statement.’’

These recommendations do not explicitly address

redundancy between UR and SysR documents, e.g., for the

first guideline, the hierarchy of URs may be decomposed

differently than the SysRs, since at the UR stage, the system

is not yet architected, i.e., split into functional components.

However, when combined with the AOF’s conceptual dif-

ferences shown by Table 1 and the exemplary differences

shown by requirement #2 in Table 2, we conclude that, in

theory, URs translated to SysRs in accordance with the AOF

should not contain a high degree of repetition.

4 Results

This section revisits each research question defined in

Sect. 1 and provides our answers to them. RQ1 was pre-

viously answered by Sect. 2.2.3, and so this section starts

from RQ2.

4.1 RQ2: Does UR–SysR repetition (still) occur?

There are two aspects to this question’s answer: the pro-

portion of projects that exhibited UR–SysR repetition (1)

and the proportion of UR–SysR pairs that exhibited repe-

tition within projects (2).

4.1.1 How many projects exhibited UR–SysR repetition?

The questionnaire asked the participants to describe how

many software projects they had seen in the last 10 years

that had exhibited repetition between the project’s UR and

SysR descriptions. To reduce the likelihood of misinter-

pretation, we included Kovitz’s example of UR–SysR

repetition (requirement #7 in Table 2) in the question. The

participants were given five ordinal categories to choose

from (chosen in place of interval or point estimates to

minimize the survey dropout rate), spanning from ‘‘nearly

none’’ to ‘‘nearly all’’ of their projects. Table 10 provides

the frequencies of the participants’ responses to these cat-

egories. In summary, 75 % of the respondents had seen

Table 5 Summary of the projects whose resulting software is now, or was ever in use by the end-users

*None Some *Half Most *All

6.25 % 18.75 % 18.75 % 37.5 % 18.75 %

Table 6 Summary of Table 5’s projects that achieved their intended benefits

*None Some *Half Most *All

6.25 % 31.25 % 18.75 % 43.75 % 0 %

Table 7 Summary of the projects that had easily contactable end- users

*None Some *Half Most *All

6.25 % 50 % 12.5 % 12.5 % 18.75 %

Table 8 Summary of the average proportion of the projects’ func- tionality that was redundant

*None Some *Half Most *All

0 % 81.25 % 6.25 % 0 % 0 %

12.5 % of the respondents selected the ‘‘do not know’’ option

Table 9 Summary of the projects that had explicit traceability from business objectives to software requirements

*None Some *Half Most *All

37.5 % 43.75 % 6.25 % 12.5 % 0 %

176 Requirements Eng (2017) 22:167–190

123

UR–SysR repetition in at least half of the projects they had

seen in the last 10 years, and all of the respondents had

seen at least some projects exhibiting UR–SysR repetition.

There was a difference in the respondents’ experience

(number of projects in the last 10 years) between those

who chose {*None, Some, *Half} (mean 10.7 projects; SD 6.1) and those who chose {Most, *All} in Table 10 (mean 17.7 projects; SD 8.7). Hence, it could be hypoth-

esized that those who saw repetition in half or less of their

projects would have seen more repetition if they had been

exposed to more projects. However, both the high variation

(SD 8.7) of the {Most, *All} group, as well as the Wil- coxon rank-sum test result of W = 16, p = 0.1 (not

requiring data to be normally distributed or on an interval

scale [80]), do not provide support for this hypothesis,

indicating no significant difference between stakeholder

experience and frequency of observed UR–SysR repetition.

The questionnaire asked the participants if they had

observed a higher or lower degree of UR–SysR repetition

throughout their whole career, as opposed to the last

10 years. The majority of the respondents (87.5 %) selec-

ted ‘‘no difference’’, while the remainder (12.5 %) selected

‘‘less repetition’’, and none selected ‘‘more repetition’’. In

other words, according to the memory of the respondents,

the incidence of UR–SysR repetition has not reduced in the

last 10 years, compared to their whole careers.

4.1.2 How many UR–SysR pairs exhibited UR–SysR

repetition?

All of the literature cited in Table 1 states that URs and

SysRs are primarily comprised of three core fields: the

requirement’s main description, a fit criterion (test case),

and a rationale (justification). Hence, this section presents

the analysis of repetition (i.e., TF–IDF scores for each UR–

SysR pair) in our sample project’s requirements’ descrip-

tion, fit criterion, and rationale fields.

Figure 3 shows a histogram of the TF–IDF distance

scores for the two projects’ UR–SysR pairs’ description

fields, where low distance scores represent a high degree of

repetition. It is apparent that while Project A has a sig-

nificant number of almost identical UR–SysR pairs (31 %),

the distribution is fairly symmetrical around the mean

(mean 0.49; SD 0.40; median 0.56; skewness = -0.02).

Hence, there is also a great deal of significantly different

pairs that are at risk of being overlooked by the reader.

Project B appears to exhibit less UR–SysR repetition since

it is skewed toward a higher degree of difference

(mean 0.65; SD 0.27; median 0.75; skewness = -1.02).

In summary, 43 % (24) of Project A’s and 16 % (16) of

Project B’s UR–SysR pairs’ description fields have a TF–

IDF distance score of up to 0.3. (The 0.3 threshold for

classifying a repeated UR–SysR pair was derived from

manually assessing the triviality of the differences between

the UR–SysR pairs, as is later discussed in Sect. 4.4.1.)

Hence, on average over the projects, nearly a third of the

UR–SysR pairs’ description fields were repeated with no

significant textual differences.

To demonstrate the meaning of the TF–IDF distance

scores shown in Fig. 3, examples of UR–SysR description

fields from both projects are provided in Table 11. The

requirement descriptions are presented as the output of

Myer’s difference algorithm with semantic cleanup applied

[75] in order to improve the reader’s comprehension of the

differences. The visual representation of the differences

allows the reader to quickly see that most of the listed UR–

SysR pairs are not parsimonious (i.e., where the less data

required to convey the message, the better). This edit-based

model of string similarity can be used to measure the

degree of similarity by counting the number of insertions

and deletions required to transform one string to the other,

e.g., the Levenshtein distance [81], as is used in the diff-

match-patch library [75].

However, edit-based similarity metrics are highly sen-

sitive to changes in the sequence of words, and do not

attempt to distinguish between important and trivial dif-

ferences. In this case study, we observed that the Leven-

shtein and TF–IDF distances for the description fields were

more strongly correlated in Project B (Pearson’s coeffi-

cient = 0.88) than Project A (Pearson’s coeffi-

cient = 0.80). Hence, more of Project A’s UR–SysR

differences were either common, rare, grammatical, or

word-order related. This information could be useful to

prioritize the review of UR–SysR pairs, since disagreement

between a Levenshtein and a TF–IDF score indicates that

the pair may seem more similar or different to the reader

Table 10 Projects where requirement descriptions were repeated between URs and SysRs in the last 10 years (2003–2013)

*None Some *Half Most *All

0 % 25 % 18.75 % 50 % 6.25 %

0%

17%

33%

TF-IDF cosine distance scores Project A Project B

Fig. 3 Distribution of string distance (TF–IDF) scores for the description fields of each UR–SysR pair

Requirements Eng (2017) 22:167–190 177

123

than they actually are. Finally, Table 11 indicates that the

scope for improving the projects’ requirements likely lies

in the problem domain. For example, the URs mostly refer

to ‘‘user’’ interactions with the solution rather than prob-

lems that a particular stakeholder (individual, class, or role)

wishes to be solved by the system-to-be.

Interestingly, the rationale field was repeated far more

than the description field in both projects (approximately

twice as many repeated UR–SysR pairs); 80 % (44) of

Project A’s and 35 % (34) of Project B’s UR–SysR pairs

have a TF–IDF distance score of up to 0.3. Furthermore,

Fig. 4 shows that a majority of UR–SysR pairs were of the

‘‘copy and paste’’ type (i.e., exact duplication). In fact, all

of Project A’s rationale fields could be considered dupli-

cated, since its non-similarities do not add valuable infor-

mation, e.g., SysRs containing phrases such as: ‘‘assumed

from user requirement’’. (This type of phrase could be

added to a stop-phrase list so that they are not considered to

be worth reading.) On average over the projects, two-thirds

of the UR–SysR pairs’ rationale fields were repeated with

no significant differences.

Figure 5 shows that on average, the fit criterion field

contained the most repetition between UR–SysR pairs;

80 % (44) of Project A’s and 73 % (72) of Project B’s UR–

SysR pairs have a TF–IDF distance score of up to 0.3. As

with the rationale field, most repetition tended to be almost

exact duplication. The similar but not duplicated UR–SysR

pairs (i.e., the second and third buckets in Fig. 5) were also

insignificant, consisting mostly of minor corrections or

updates, e.g., the UR ‘‘every example design data file’’ and

the SysR ‘‘example data file’’. Additionally, the mostly

different pairs (i.e., the last two buckets in Fig. 5) were also

trivially different, such as where the SysR’s field was

empty (and so for analysis of future projects we would add

an empty string to the stop-phrase list). To summarize the

fit criterion field’s repetition over the projects, four-fifths of

the UR–SysR pairs’ fields were repeated with no significant

differences.

Finally, we examined correlation between the UR–SysR

pair TF–IDF distance scores and the following variables:

1. UR and SysR description length;

2. UR and SysR document position (i.e., sequential IDs);

3. UR and SysR hierarchy depth, i.e., is SysR 1.1.1.1

more or less likely to be repeated from its UR than

SysR 1.1?

Table 11 Example UR–SysR TF–IDF distance scores and string ‘‘diff’’ analysis

TF– IDF

Requirement Description Field (UR/SysR)

0.02 The usersystem shall be able to identify the manufacturer’s part number that applies to the subject item of production

0.12 The system shall be able to read the content of a file on a storage medium accessible via aan address URL identified by the user

0.15 The usersystem shall be able enable the user to specify a single file for conversion (single file mode)

0.19 The usersystem shall be able to determineindicate the success of the conversion process through a status information return

0.21 The usersystem shall be able to review alldisplay a list of errors that arise from the processing of a new item create

0.25 The usersystem shall be able to convert one or more catalog files that are independent of the originating cataloguingcatalog management system from eOTD-r-xml to Modified Segment V (MSV)

0.4 The usersystem shall be able to respond to situations where existingdisplay a list of items of supply that potentially require cancelation

0.84 The usersystem shall be able to identify the address of a file that contains the specification for the itemsupport easy navigation through the hierarchy of accessible addresses

Key: strike-through: remove to form SysR; underline: insert to form SysR; plain style: commonality

0%

40%

80%

TF-IDF cosine distance scores Project A Project B

Fig. 4 Distribution of string distance (TF–IDF) scores for the rationale fields of each UR–SysR pair

0%

35%

70%

TF-IDF cosine distance scores Project A Project B

Fig. 5 Distribution of string distance (TF–IDF) scores for the fit criterion fields of each UR–SysR pair

178 Requirements Eng (2017) 22:167–190

123

4. UR and SysR hierarchical sibling position, i.e., is SysR

1.1.5 more or less likely to be repeated than 1.1.1?

5. Number of links to URs from the SysR.

No significant correlation for the first four variables

was found in either project (the strongest Pearson’s

coefficient was 0.31 for Project A’s SysR hierarchy depth

and its description fields’ TF–IDF scores). However,

Project B’s ‘‘number of links to URs from the SysR’’ was

moderately correlated with the description fields’ TF–IDF

distance scores (Pearson’s coefficient = 0.38). As could

be logically derived, it appears that a significant propor-

tion of Project B’s non-repeated UR–SysR pairs (i.e., the

rightmost buckets in Figs. 3, 4, 5) occurred where the

SysRs were linked to more than one UR. In other words,

because there were more links between URs and SysRs

than SysRs (98 vs. 60), more ‘‘related but not directly

derived’’ UR–SysR pairs existed. In support of this con-

clusion is Project A’s weaker correlation in the same

variables (Pearson’s co-efficient = 0.25) and its almost

equal number of UR–SysR links and SysRs (55 vs. 52).

Hence, there is less risk of wasting time due to the rep-

etition defect when reading SysRs that are linked to more

than one UR.

In summary, and to answer RQ2 in light of Table 10

(answering ‘‘how many projects?’’) and Figs. 3, 4 and 5

(answering ‘‘how many requirements?’’), we can say with

confidence that redundancy-causing repetition between the

textual fields of URs and SysRs has occurred in at least

half of the projects in the context of this case study

throughout the last 10 years. Based on the analysis of the

sample requirement documents, and after confirmatory

discussions with the survey participants, a conservative

estimate is that, on average, one-third of the participants’

projects’ UR–SysR pairs exhibited redundancy-causing

repetition. However, more than this proportion of a pro-

ject’s SysRs will have been repeated from their URs,

since a project’s SysRs are often linked to more than one

UR, and so there are usually more UR–SysR pairs than

SysRs. Furthermore, this estimate would be significantly

higher if it only concerned the requirement’s fit criterion

and rationale fields, which are often considered to be

secondary to the description field. While we cannot gen-

eralize from these results to the wider context of IT

software development, discussions with the participants

(who have worked with many other non-defense organi-

zations) indicate that similar results would be not be

unlikely where UR and SysR documents are produced.

(As Davies observed [7], it seems that many industry

projects have one generic ‘‘requirements’’ documents

containing an undifferentiated mixture of problem

descriptions and solution prescriptions.)

4.2 RQ3: Why does UR–SysR repetition occur?

Logically, there can only be three possible modes of

‘‘blame’’ when a UR’s description is repeated across to a

SysR:

1. The UR is defined too close to the solution space;

2. The SysR is defined too close to the problem space;

3. Despite analysis, the UR and the SysR are the same.

Before distributing the questionnaire, we interviewed

three experienced consultants to ask why these modes of

blame might occur. In total, five possible causes were eli-

cited to explain why a UR or a SysR might be repeated to

its associated SysR or UR:

• The stakeholder need was unknown; • The solution to the need was unknown; • There was not enough time to elicit the problem or

derive a specification of the solution;

• Internal standards required both requirements sets (UR and SysR) regardless of the project’s context;

• Customer standards required both requirements sets (UR and SysR) regardless of the project’s context.

We then constructed a question asking the participants

to rate the frequency of occurrence for each of these five

causes. To mitigate researcher bias, the three consultants as

well as the authors of this paper were asked to individually

assess the adequacy of the causal categories, for which

complete agreement was attained. An option to specify

other causes was also added to the question. As with the

previous questions, the ratings available to the participants

were in the form of five ordinal categories (plus a ‘‘don’t

know’’ option), ranging from the cause being applicable in

none of their projects to all of their projects. Figure 6

summarizes the responses to this question by showing the

distributions of the respondents’ ratings.

0% 25% 50% 75% 100% Laziness (other)

Ignorance (other)

Customer Standard

Lack of Time

Solution Unknown

Internal Standard

Need Unknown

Don't Know ~None Some ~Half Most ~All … projects

Fig. 6 Causes of UR–SysR repetition: distributions of responses for the causes’ perceived frequency of occurrence

Requirements Eng (2017) 22:167–190 179

123

The two ‘‘other’’ respondent-provided causes were:

• Ignorance of the conceptual difference between what a UR and a SysR should be;

• Laziness on the project stakeholders’ or requirements engineers’ behalf, i.e., they were not motivated to elicit

or translate the appropriate requirements.

While these ‘‘other’’ responses provide invaluable

insights into the causes of UR–SysR repetition, their fre-

quencies cannot be compared to the others in Fig. 6, since

other participants could have been reminded of their

occurrence had they been shown them. (As such, for these

two ‘‘other’’ causes, the ‘‘Don’t Know’’ totals represent no

response, rather than explicit ‘‘Don’t Know’’ responses.)

Among the reported causes of UR–SysR repetition,

‘‘stakeholder need was unknown’’ (categorized under the first

mode of blame) was significantly more commonly reported

than ‘‘solution was unknown’’ (categorized under the second

mode of blame). This is not surprising, since it is well known

that stakeholders and requirements engineers tend to describe

solutions rather than the problems to be solved by them [11].

(In such cases that lead to UR–SysR repetition, the require-

ments engineer has either duplicated or slightly rephrased the

description of the proposed solution in the SysR into the

supposed UR.) Stevens et al. [20] observe that practitioners

often believe URs to be impossible to elicit, e.g., ‘‘Designers

involved in making a sub-system, such as the engine for a car

… often remark ‘users don’t understand what I’m building— there are nouser requirements for my product’… Under these circumstances, designers will often provide functionality

which is perhaps not needed by the users’’. Similarly, both

Alexander’s paper entitled ‘‘Is There Such a Thing as a User

Requirement?’’ [26], and van Lamsweerde’s textbook [25]

provide arguments against the use of the term ‘‘User’’ to

represent the problem description concept (as is a URs pri-

mary concern according to Table 1). Indeed, while end-users

may not interact with components, those components should

exist only to address stakeholder problems—even if the pro-

ject was driven by means (i.e., innovation in IT) rather than by

ends (i.e., problems), as Peppard et al. report is so often the

case [82]. As such, requirements engineers are advised to

investigate the underlying need for proposed solution capa-

bilities by asking for their rationale [11, 20, 45], thereby

assuring the pertinence of the proposed solution and enabling

the evaluation of alternatives. If this good practice can be

followed, then the leading cause of UR–SysR repetition (i.e.,

the only cause having the majority of respondents report its

occurrence in at least half of their projects) could be avoided.

When a requirements engineer repeats a UR to a SysR

(or vice versa), they do so out of choice or by constraint.

Figure 6 shows that in this case study, the main (‘‘by

constraint’’) reason for UR–SysR repetition was adherence

to internal standards and processes that require UR and

SysR documentation regardless of context such as project

complexity. This cause was closely followed by a shortage

of time (though this is likely a component cause for all RE

defects), and then by the customer’s standards and pro-

cesses requiring UR and SysR documentation regardless of

context. A plausible explanation for the closeness of the

‘‘internal standard’’ and ‘‘customer standard’’ results is that

the consulting company has adopted the same requirements

standards and processes as their main customer, i.e., the

UK MOD’s Acquisition Operating Framework (AOF), and

so the small differences are likely to be caused by the

existence of projects not owned by that customer.

Finally, there is the case where the UR seems to be

equivalent to the SysR, i.e. the third mode of blame in

Sect. 4.2. To illustrate, we refer to Clements and Bass’s

anecdote [13] where a software project member prema-

turely specified the requirement of a particular database

for data persistence. However, the requirement’s origi-

nator was a business manager in charge of the develop-

ment staff who wanted to keep an under-worked database

team busy. It could then be argued that the requirement

encapsulates both a business problem and a software

solution. However, the two should be separated into the

need for the database team’s employment and the solution

idea for data persistence, otherwise the requirement

could be disregarded as rationale-less premature design,

without describing that disregard’s consequences. Many

of the guidelines in the sources cited by Table 1 make

reference to such situations, e.g., Stevens [20]

describes encountering a requirement for all engines on

an airliner to be constantly powered, rather than for the

airliner always having adequate power to fly. Neverthe-

less, it is plausible that a stakeholder could solely require

a solution, i.e., if they (oddly) find intrinsic value in

having all engines constantly powered, or in having a

database, or in having trendy technology. Where the lack

of a particular solution is stubbornly declared to be the

problem, and only where adequate analysis of the un-

derlying need has been attempted, UR–SysR repetition

indicates less of a risk that the stakeholders would reject

the system. However, it still causes requirements speci-

fication redundancy, limits innovation (by not exploring

alternatives), and worse, risks that the system would not

solve the underlying (and possibly changing) problems,

despite initially satisfying the stakeholder(s) (ultimately

leading to dissatisfaction). Hence, this third mode of

blame should be widely discouraged.

4.3 RQ4: Is UR–SysR repetition a problem?

The questionnaire asked the participants if they consider

UR–SysR repetition to be a problem, and Table 12 shows

that most do.

180 Requirements Eng (2017) 22:167–190

123

The questionnaire then asked for the participants’

rationale for their responses in Table 12. Of those who

believed it was a problem, 56 % described generic redun-

dancy-related consequences, e.g., the ‘‘time wasted creat-

ing and reading them’’, and the ‘‘risk of discrepancies’’.

One such response described that the restatement of a UR

into a SysR caused ambiguity and confusion. The next

31 % of the responses described ‘‘deferral of systems

thinking’’ and decision making to the developers, leading to

suboptimal and delayed decisions in the development

process, and in a high number of cases, scrap and rework.

The remaining 13 % of the responses can be summarized

by the quote: ‘‘very often we define the what, but not the

why’’, which makes the quality of existing and new deci-

sions difficult to ascertain. For example, one respondent

described that selection among alternative design options

was hindered since stakeholder preferences and rationale

were not adequately described.

The participants who responded ‘‘no weakly’’ or ‘‘un-

decided’’ (in Table 12) were interviewed to explore their

opinions. The most notable responses were:

• ‘‘Sometimes, URs and SysRs use the same terminology because it is the language that both the user and the

developer use. In such cases, it is not necessarily

helpful to seek to explain a clear UR in different terms

for the SysR.’’

• ‘‘If the project’s problem is not complex and well-tested solutions exist, then there is low risk in not translating

the URs. However, the process we follow requires us to

produce a UR and a SysR document regardless.’’

The first quote presents an argument that UR–SysR repe-

tition is not a problem if the project’s stakeholders ‘‘use the

same terminology’’, e.g., if they were all software developers,

and so where the language dimension of difference between a

UR and a SysR (Table 1) seems redundant. However, it does

not follow that they should use the same terminology when

writing URs and SysRs. While several of the guidelines in

Table 1 recognize that the information [22] and ‘‘overall look,

feel and structure’’ [35] within the different requirements

documents will be similar, they stipulate that they should

provide ‘‘different views for the same product’’ [22]. Simi-

larly, Dorfman observes that system requirements may ‘‘clo-

sely resemble’’ subsystem requirements where they only need

to be ‘‘allocated’’ to subsystems rather than translated (i.e.,

derived) [83]. However, this allowance concerns

requirements within the solution space, rather than between

the problem and solution space, which is where there is the

most risk in ‘‘translating’’ the requirements. Hence, seeing the

same terminology used between a UR–SysR pair indicates

that the same information is being described, and hence that

either the problem or the solution is not.

Follow-up discussions confirmed the URs were defined

entirely in terms of user–system interactions, and so

information about the problems to be solved by those

interactions was missing. This risks the system being ‘‘unfit

for purpose’’, or at least being suboptimal compared to the

possible alternatives. Overall, pursuing only descriptions

from a technical (i.e., development or engineering) view-

point neglects the essence of RE’s purpose.

The second quote presents the argument that low project

risk and complexity permits not deriving a set of SysRs

from the URs, instead repeating the SysRs from the URs in

order to comply with a process that requires both URs and

SysRs. Indeed, systems engineering standards and pro-

cesses were derived by engineers experienced in complex

projects such as satellites [8], which are arguably more

risky and complex than the typical software development

project. Instead, agile software development (which is

rarely used for large or complex system development [21])

‘‘shun[s] formal documentation of specifications’’ [79] and

favors a ‘‘product backlog’’ consisting of ‘‘user stories’’.

These ‘‘high-level requirements’’ focus on the goals of the

various user roles and their rationales, and defer description

of the solution to ‘‘intensive communication’’ between the

customers and the developers ‘‘before and/or during

development’’ [79]. Overall, the risk involved in not cre-

ating SysRs (and hence where SysRs are entirely repeated

from URs) seems negligible if:

1. The project is not risky from the developer’s view-

point, i.e., there is little need for a contractually

binding complete specification of system behavior;

2. ‘‘Intensive’’ communication between the developer

and the customer is possible;

3. Creation of prototypes and/or frequent releases is

economically viable;

4. The ‘‘optimal’’ solution to the problem is obvious and

‘‘tried and tested’’.

Where these points apply, and where either external or

internal standards require SysRs, then creating a set of

SysRs closely resembling the URs for the sake of process

compliance may be a ‘‘necessary evil’’ from the require-

ments engineer’s view. Indeed, since costs of deriving

perhaps not-so-useful SysRs were avoided, the ‘‘Laziness’’

cause of UR–SysR repetition (Fig. 6) may actually benefit

these projects. That being said, it is surely better to omit the

SysR document than to repeat it from the URs, since rep-

etition will lead to wasted time and inconsistency, despite

Table 12 Participant agreement on ‘‘Repetition between User Requirement and System Requirement pairs is a problem’’

No strongly No weakly Undecided Yes weakly Yes strongly

0 % 12.5 % 18.75 % 31.25 % 37.5 %

Requirements Eng (2017) 22:167–190 181

123

that it does not significantly risk the system being subop-

timal. Unfortunately, the requirements engineer may not

have the authority to make such a decision, and so UR–

SysR repetition may prevail.

To conclude RQ4 (is UR–SysR repetition a problem?), the

most concerning problem posed by repetition between a UR

and a SysR is the increased risk that the stakeholders will not

consider the system ‘‘fit for purpose’’ (as discussed in the

summary of Table 1). The less consequential but more tan-

gible problem is the increased redundancy within the

requirements set. This will no doubt increase the reading and

writing costs, in addition to increasing the risk of inconsis-

tencies—a significant RE defect [25]. For an example of such

an incurred cost, Gilb and Graham claim that requirements

inspection occurs at approximately 10 words per minute [84].

Accordingtothatrate,inspectingtherequirementdescriptions

of all UR–SysR pairs (55) in Project A (*790 words) would take 1 h and 19 min, of which, at the very least (TF–IDF

distance score\0.1), *24 min could be considered wasted due to repetition. (Reading costs are emphasized since the

requirements will likely be read more than they will be writ-

ten.) However, the cost of those 24 min is likely to be per-

ceived as higher than normal, since they provide no reward

(i.e.,new information) andsodemotivate the reader. Indeed, if

even some of those 24 min occur sequentially, the reader may

give up reading the UR and SysR requirements as a whole.

Also, we are assuming that increases in reading effort are

linear, but it could be argued that effort expended is higher for

very similar UR–SysR pairs, since humans are inefficient at

finding subtledifferences thatcould neverthelessbeimportant

[3]. When considering the total cost of this redundancy, it

should also be considered that a typical requirements

inspection meeting involves several participants (including

the customer on some occasions), and that each developer

working on the project is expected to read the requirements to

understand the problem they are to solve [13].

Caveat to the above conclusion is the hypothetical sit-

uation where either the UR or the SysR is conflated to

perform the role of both describing the problem and also

the abstract solution. There is also the perhaps more likely

scenario where one of the documents (UR or SysR) con-

tains a mixture of URs and SysRs [7]. Neither occurrence

was apparent in this case study, but any conclusions

reached after detecting such repetition would be affected.

In the former scenario, the repetition would not indicate

poor problem or solution exploration, and in the latter case,

the ‘‘mode of blame’’ (in Sect. 4.2) is reversed.

4.4 RQ5: Can the problems be reduced

(current/future projects)?

This section proposes guidelines for reducing the problems

associated with UR–SysR repetition in current projects,

i.e., where repetition already exists (1), and in future pro-

jects (2).

4.4.1 Reducing problems in current projects (where UR–

SysR repetition exists)

Any increased risk that the product will not be accepted by

the customer can only be reliably reduced through com-

munication with the stakeholders (and possibly develop-

ers). Attempting to translate incorrect URs or SysRs

without doing so (e.g., with the use of previous experience)

may lead to the correct requirements, but, the risk will not

have been reduced by doing so. Hence, this section will

focus on the most tangible and therefore the most reducible

problem caused by redundancy: increased reading time.

Software developers do not often read requirements

documents to the extent that requirements engineers would

like. For example, Spolsky writes that ‘‘the biggest com-

plaint you’ll hear from teams that do write specs is that

nobody reads them’’ [85]. Ambler adds to this that ‘‘some

people naively think that developers do their work based on

what is in the requirements document. If this was true,

wouldn’t it be common to see printed requirements docu-

ments open on every programmers desk?’’ [86]. Indeed,

with the common management mantra that ‘‘Weeks of

coding can save hours of planning’’ [87], and the pressure

placed on developers to ‘‘get on to the real work, designing

and programming’’ [87], this is not surprising. The incen-

tive to read requirements documents will be even less if

there is a high degree of repetition between them. Reducing

the non-value-added reading tasks can only contribute

toward motivating developers to read requirements. Hence,

we propose that UR–SysR links can be manually or auto-

matically tagged with an ‘‘essentiality rating’’ to streamline

the requirements reading process.

Essentiality ratings and tracks were first proposed to

treat the problem of information overload in large docu-

ments and webpages [88]. The essence of the concept is

that sections of content are marked with a rating of

essentiality on a numerical 1–10 scale, and/or for a specific

intended audience (i.e., a track), e.g., for a ‘‘UI developer’’.

Then, any nonessential or irrelevant content is filtered out

for the reader. This concept could straightforwardly be

applied to requirements documents to filter out repeated

URs or SysRs from the set of requirements that the reader

should read, where low UR–SysR pair TF–IDF distance

scores could be translated to low essentiality scores. For

example, the TF–IDF distance score of 0.3 would map to

essentiality rating 3. (Note that the inverse is not applica-

ble, since high essentiality cannot be determined by low

similarity.) Alternatively, a requirements engineer who is

authoring or reviewing a requirements document could

manually estimate essentiality scores. For example, where

182 Requirements Eng (2017) 22:167–190

123

the UR is actually the same as the SysR (i.e., the third

mode of blame described in Sect. 4.2), the requirements

engineer would recognize that the UR is not essential

reading if the SysR is read (or vice versa).

As aforementioned, manual inspection of this case

study’s TF–IDF scores and the triviality of the actual dif-

ferences indicated that the textual differences in UR–SysR

pairs represented by TF–IDF distance scores lower than 0.3

were insignificant, (i.e., reading both requirements in such

pairs does not add significant information). Hence, at the

0.3 TF–IDF distance threshold (above which non-repeated

UR–SysR pairs existed), 43 % of Project A’s total UR–

SysR description pairs and 16 % of project B’s UR–SysR

description pairs could be considered ‘‘trivial’’ reading.

(The percentages refer to the number of traceability links

between URs and SysRs, as defined in Table 4.) If the

requirements documents are being authored or reviewed,

then these ‘‘trivial’’ UR–SysR pairs should be checked for

missing information on the problem or the solution, among

the other risks outlined in Sect. 4.3. Stated in terms of

individual requirements rather than pairs of requirements,

this ‘‘trivial reading’’ statistic is likely to be higher where

there are more URs than UR–SysR traceability links. For

example, 17 (56 %) of Project A’s 30 UR descriptions

could be filtered out on the condition that the reader reads

the set of SysRs. (Note that firstly, traceability between

URs and SysRs is many-many [11], and so a UR is

redundant only if it does not feature in a UR–SysR pair that

contains non-trivial differences. Secondly, given the choice

of reading a UR or a SysR in a repeated UR–SysR pair, the

SysR should be chosen since it is likely to be the most

recent version.)

The benefit of filtering UR–SysR pairs by essentiality

ratings must be balanced with the risk of ‘‘false positives’’,

i.e., the risk that an important but marked-as-trivial dif-

ference is filtered out. Such a risk would not likely be

entertained when reading requirements for contractual

purposes, and hence the threshold could be set at 0.01 to

filter out only the ‘‘identical’’ UR–SysR pairs. Conversely,

false negatives do not pose such a significant problem,

since the worst effect is that a repeated requirement is read,

which is equal to the as-is situation, and has not cost the

user any significant time due to the automated nature of the

analysis. For example, the UR–SysR pair with the TF–IDF

score of 0.4 in Table 11 was considered to be a repeated

UR–SysR pair by human inspection, but is not classified as

such by the 0.3 TF–IDF cutoff point. The consequence that

the redundant requirement would not be filtered out for the

reader was not considered to be a practical problem by the

three interviewed stakeholders, despite that it is a valid

direction of future research.

The appropriate TF–IDF distance threshold may slightly

vary between projects, depending on factors such as the

size of the vocabulary, the wordiness of the requirements,

and for example, whether the project is safety critical.

Hence, the requirements engineer should not assume that

the threshold is a universal constant between projects,

otherwise important information in URs or SysRs may be

disregarded. Therefore, this process of determining the TF–

IDF cutoff threshold (where thresholds [0.1 are desired) represents the majority of the time required to perform the

automated UR–SysR repetition analysis, since the calcu-

lation of the TF–IDF scores takes seconds. Visualizing the

differences between UR–SysR pairs, as shown in Table 11

(and as performed by our tool), is likely to be useful for

determining the appropriate threshold. More rigorous

approaches for determining optimal TF–IDF distance

thresholds to improve conclusion validity are outlined by

Falessi [61]. However, their relatively high cost of appli-

cation (which threatens the usability and therefore the

usefulness of the automated approach) means that in

practical use, thresholds tend to be ‘‘chosen by common

sense and without any rigorous criteria’’—but not without

reason [61].

4.4.2 Reducing problems in future projects (where UR–

SysR repetition does not yet exist)

A great deal of UR–SysR repetition is caused by unknown

stakeholder needs (the top cause of UR–SysR repetition in

Fig. 6), and hence where both the URs and SysRs describe

solutions. If stakeholders want software that solves prob-

lems in the most innovative and cost-effective way, and if

requirements engineers want software that generates value

rather than merely being of ‘‘good quality’’, then resources

from both sides should be committed to stakeholder

requirements (i.e., needs) elicitation. To motivate stake-

holders, evidence to show that poor requirements engi-

neering and low stakeholder communication are top causes

of project failure could be useful for motivating this

change, e.g., [78, 89–91]. Motivating requirements engi-

neers to elicit stakeholder needs rather than rushing to

specify solutions, requires clarification that the ‘‘purpose of

the requirements process is to add business value’’ [92], as

well as fostering responsibility and reward mechanisms

around this.

A common response from stakeholders when attempting

to elicit their requirements is ‘‘I don’t know how to tell

you, but I’ll know it when I see it’’ (IKIWISI) [93]. Con-

sequently, Boehm proposes that requirements (in this

context, URs) should focus on ‘‘how the new system will

add value for each stakeholder’’ [93]. If stakeholders are

unable to express their needs, then requirements engineers

should attempt the use of well-established techniques for

problem and goal elicitation, e.g., using scenarios,

ethnography, interviews, questionnaires,

Requirements Eng (2017) 22:167–190 183

123

protocol/domain/task analysis, goal graph analysis, and so

on [25]. If the IKIWISI problem is obscuring ‘‘what the

solution should be’’, then requirements engineers should

attempt to elicit feedback from prototypes and early

releases of the software [94]. Finally, market-driven soft-

ware projects have slightly different challenges (e.g., less

accessible stakeholders), for which the reader is referred to

Karlsson et al.’s work [95].

Internal (i.e., the requirements engineer’s organization)

standards or processes may stipulate that a UR and a SysR

document be created regardless of the project’s context

(i.e., its complexity, risk, ‘‘obviousness’’ of solution, etc.).

Only well-argued cases for the project’s low complexity

and a change in internal policy can reduce this source of

UR–SysR repetition. If a customer’s standard requires both

URs and SysRs regardless of the project’s context, then

while the same argument applies, putting it into practice

may be more difficult, due to the ‘‘customer is always

right’’ mindset.

Finally, repetition between UR–SysR pairs caused by

ignorance of the roles URs and SysRs play in the systems

engineering life cycle should be treated by training the

requirements engineers (or perhaps their trainers), espe-

cially with examples of good and bad practice rather than

regurgitated ‘‘what not how’’ mantras. Crucially, motiva-

tion from management should be provided to maintain

adherence to the true content of the standards (rather than

misinterpreted versions sometimes found in textbooks or

organizational training manuals). This will not happen

quickly, since as aforementioned, requirements engineering

(and indeed many other software ‘‘engineering’’ techniques

[96]) are rarely considered a ‘‘top priority’’ in current

software engineering practice.

5 Related work

As far as we are aware, Kovitz’s discussion of UR–SysR

repetition (among a considerably larger set of software

requirements engineering guidelines [14]) was the first

treatment of the phenomena in the literature. Kovitz

implies that many organizational standards mandate that

their requirements engineers wastefully create UR and

SysR documents comprised of near-identical repetition, as

exemplified by requirement #7 in Table 2. Alexander later

writes on the topic concluding that ‘‘you don’t need to be

told (do you?) that a lot of time and paper is being wasted

if your organisation is duplicating the requirements in that

way’’ [15]. Alexander explains that in his experience, URs

are often repeated from the SysRs because requirements

engineers often believe that their only role is to describe

system functionalities and qualities. As a consequence, he

notes that the right-hand side of the V-model (verification

and validation) is disrupted, since if both the SysRs and the

URs describe a solution, then only verification can take

place. Similarly, Davies notes that if only system require-

ments are captured, then ‘‘When it comes to the validation

stage, the end-user may throw out the system as not fit for

purpose, even if ‘It does exactly what it says on the tin’’’

[7].

While both Kovitz and Alexander imply that UR–SysR

repetition has frequently occurred (e.g., ‘‘…too often led tired engineers to write…’’ [15]), they provide neither an investigation nor an analysis of the real-world problem and

its causes. Furthermore, neither Kovitz nor Alexander

mention repetition between the different composite fields

of a requirement other than the description field (i.e., the

‘‘main’’ field). This is significant since complete duplica-

tion in one field does not infer that the UR or SysR is

completely redundant. Finally, both Kovitz and Alexander

propose ways of avoiding UR–SysR repetition. Kovitz [14]

proposes that requirements should be organized by their

subject matter rather than by their ‘‘level of detail’’.

However, this neglects the issues that creating separate UR

and SysR documents address, i.e., for the different reasons

outlined in Table 1. On the other hand, Alexander proposes

that URs should be renamed to ‘‘business problems’’, and

SysRs to ‘‘system solutions’’. This seems more semanti-

cally correct in light of the definitions in Table 1 as well as

the criticisms in the literature of the term ‘‘User’’ in ‘‘User

Requirement’’ [25, 26]. However, the ‘‘business’’ term is

also a restrictive subtype of stakeholder requirement, and

‘‘solution’’ implies that the problem will be (fully) solved,

rather than treated [97]. Finally, Kovitz and Alexander’s

discussions are over a decade old, and so prior to this

research there was a need to understand the pertinence of

the UR–SysR repetition problem in the current industry

environment.

Juergens et al. [3] analyze the degree of ‘‘copy&paste’’

clones within requirements documents with their ConQAT

tool. They report an average ‘‘blow-up’’ (i.e., ‘‘the ratio of

the total number of words to the number of redundancy free

words’’) of 13.5 % across 28 software requirements doc-

uments from different industries. In their conclusion, they

propose that requirements document blow-up of more than

5 % should be considered ‘‘as a warning signal for

potential future problems’’. However, ConQAT does not

parse requirement documents into individual requirements

(nor their traceability links), but rather searches through a

plaintext requirements document for contiguous fixed-

length sequences of words (in their study, 20 words) that

occur more than once. Thus, their work is concerned with

verbatim duplication of requirement document text, rather

than requirements ‘‘which have been copied but slightly

reworded in later editing steps’’ [3], which we have found

to be very common in UR–SysR repetition. Furthermore,

184 Requirements Eng (2017) 22:167–190

123

their work does not consider traceability to other require-

ments, nor repetition between a project’s different

requirements documents, and is therefore unable to model

nor analyze UR–SysR pairs.

Due to the commonality of natural language specifica-

tions and documentation in software projects, natural lan-

guage processing techniques have been applied to

problems in various areas of software engineering. For

example, Runeson et al. [57] successfully detect two-thirds

of duplicate software defect reports using vector space

representation and term frequency weighting (i.e., TF

rather than TF–IDF). Closer to our work, numerous

researchers have tackled various requirements engineering

problems with similar techniques, as the remainder of this

section discusses.

Natt och Dag et al.’s ReqSimilie tool [98] suggests

traceability links between requirements based on the

assumption that requirements containing similar words are

likely to be related since requirements engineers strive for

consistent use of terminology. Regardless of the validity of

that assumption for URs and SysRs, the focus of their work

is the opposite to ours. ReqSimilie does not consider

existing traceability links, and attempts to find require-

ments worth linking to, whereas our approach assumes

traceability links exist and attempts to find those that do not

add different information. Hence, using ReqSimilie, it is

not possible to know the degree of repetition between UR–

SysR pairs, since the information that defines pairs of URs

and SysRs is disregarded. Furthermore, ReqSimilie’s

assumption that requirements are stored in a database

rather than in documents means that it would not be easily

usable by the majority of requirements engineers who use

word processing or spreadsheet software, as is the case in

our case study, and in numerous other surveys on RE

practice [52, 99].

Similar to the ReqSimilie tool is Cleland-Huang et al.’s

‘‘Poirot Trace Maker’’ [100], which automatically suggests

traceability links between requirements, design, and code

artifacts, (e.g., requirement text to UML sequence diagram

messages to Java method names). Poirot Trace Maker also

uses vector space representation to compute the degree of

artifact similarity, and so it is similar to ReqSimilie in

technique but not in intent. Interestingly, Cleland-Huang

et al. cite Hull et al.’s example UR–SysR pair (#1 in

Table 2) as an example of requirements that cannot be

automatically traced, since only the fairly generic terms

(the, shall, to, vehicle) are shared between them. It is

therefore implied that repetition of rare terms between URs

and SysRs is advantageous for the sake of automated

traceability. However, this would violate the guidelines on

good URs and SysRs provided in Table 1, e.g., since the

language used to describe a stakeholder’s problem and an

engineer’s solution should be different. Instead, Cleland-

Huang et al. propose that the use of Hull et al.’s ‘‘satis-

faction arguments’’ [11] (i.e., a description of why the

SysR satisfies the UR) could increase the recall rate, since

satisfaction arguments tend to contain terminology from

both the URs and SysRs. We are not optimistic about this

from this paper’s viewpoint (repetition), or from a prag-

matic viewpoint, since:

1. A significant amount of Hull et al.’s satisfaction

arguments are repeated from the UR and the SysR,

introducing redundancy and hindering modifiability;

2. Satisfaction arguments are a form of manual traceabil-

ity between a URs and SysRs, and so by the time a

SysR could be automatically linked by using the text

from a satisfaction argument, it is already manually

linked.

If repetition between URs and SysRs is to be avoided,

then automated traceability between them requires ‘‘prob-

lem ? solution’’ knowledge. This could be inferred from traceability links within previous projects, or could be

explicitly and ontologically defined (e.g., encoded with

‘‘means-end’’ links in GRL [41]). For example in the

context of Hull et al.’s UR–SysR pair (#1 in Table 2),

‘‘power to all wheels’’ is-a-solution-to ‘‘deployment on wet

mud’’, and ‘‘wet mud’’ is ‘‘terrain type 4A’’ (the latter

should ideally be defined within the UR for the sake of

completeness).

Lami’s QuARS tool [101] automatically detects linguistic

defects that could cause ambiguity, understandability, or

completeness problems. However, QuARS is concerned with

the quality of single requirement statements, and so com-

pleteness is assessed only in the context of each individual

requirement, as opposed to the completeness of a SysR set

relative to its coverage of a UR set. Similarly, Park et al. [102]

propose an automated requirements analysis system to detect

ambiguity and incompleteness in requirements documents.

Closer to our problem is Park et al.’s claim that their system

can trace dependency and reduce inconsistency between ‘‘a

sentence in a high-level document and a sentence in a low

level document’’. However, in the examples Park et al. use to

explain their claim, the ‘‘level’’ of a requirement refers to its

level of decomposition rather than its domain (problem or

solution), or other dimension of UR–SysR difference listed in

Table 1. As such, Park et al.’s claims are not applicable to

SysR documents derived from UR documents, since ‘‘unlike

decomposed requirements, the statements of the derived

requirements are different from those of the original

requirements’’, to quote Sage and Rouse [28].

Finally and most recently, Ferrari et al. [103] explore the

use of the Sliding Head–Tail Component clustering algo-

rithm (rather than the vector space model of similarity) to

propose a new requirement document structure, in order to

optimize the structure’s ‘‘requirements relatedness’’ and

Requirements Eng (2017) 22:167–190 185

123

‘‘sections independence’’ qualities. Despite not being

directly applicable to this paper’s topic, it would be inter-

esting to apply their technique to combine UR and SysR

documents, e.g., to automatically generate a requirements

document that presents both sets of requirements, struc-

tured by their relatedness.

6 Conclusion and future work

Duplication within requirements documents is clearly

considered to be a quality defect; international standards

require that within ‘‘the set of stakeholder, system, and

system element requirements … requirements are not duplicated’’ [22], and that software requirements ‘‘not be

redundant’’ [4]. In this paper, we have proposed that rep-

etition between URs and SysRs can also indicate a more

serious defect: incompleteness of the requirement set. In

other words, we find UR–SysR repetition concerning since

it indicates that one set of requirements (URs or SysRs) is

not complete. This is especially troubling where the solu-

tion description is repeated, since Jackson [36] makes it

quite evident that the main concern in RE should be

describing the application domain (i.e., problem) rather

than the machine (i.e., solution). In other words, good

engineers can derive solutions from problems, but the

converse is less likely.

Aside from anecdotes and examples, there has been no

published investigation to show if and why repetition

between URs and SysRs occurs. We have presented a case

study with the intention of adding to the ‘‘chain of evi-

dence’’ [64]. We found that 75 % of the survey participants

had seen UR–SysR repetition in at least half of their pro-

jects (Sect. 4.1.1). Then, we found that on average over our

sample projects, one-third of the UR–SysR pairs had

description fields that contained significant repetition

(Sect. 4.1.2), while the UR–SysR pairs’ fit criterion and

rationale fields exhibited roughly twice as much repetition.

Finally, our survey found that unknown stakeholder needs

combined with the internal (i.e., the requirements engi-

neer’s) organization’s context-independent stipulation for

UR and SysR documentation were the most popular rea-

sons for UR–SysR repetition (Sect. 4.2).

Based on the results of our research questions, we pro-

pose the following recommendations:

• Despite that there will likely be a significant amount of repetitious UR–SysR pairs within UR and SysR

documents (especially within the non-primary attri-

butes such as the rationales or fit criteria), stakeholders

including developers should still read both, since

numerous non-trivially different and informative UR–

SysR pairs are also likely to exist. UR–SysR pairs

where the UR is related to more than one SysR (or vice

versa) are more likely to provide information to make

their reading as a pair worthwhile. Where a UR has

only one related SysR, the most recent of the two

requirements should be read.

• Requirements engineers should ensure that stakeholder needs have been adequately elicited and analyzed if

repetition between UR–SysR pairs exists. Not under-

standing the problem is a significant and well-estab-

lished software project failure risk, that is also known

to cause problems such as scrap and rework, poor

innovation, suboptimal decisions, or value failure.

• Training on the role of URs and SysRs should be provided where repetition exists due to ignorance of

their roles in the engineering process. Perhaps more

important is that management should motivate and

monitor adherence to RE standards (but not for rigor on

principle).

• Checking for UR–SysR repetition can be performed with little effort using our software tool [16], and hence

could be built into future requirements quality inspec-

tions. Where a significant degree of UR–SysR repeti-

tion exists, the tool could be used to streamline the

reading process by filtering out trivial URs or SysRs.

Finally, it is important to remark upon the applicability

of this paper to software engineering practice outside of the

defense industry. Firstly, as Table 1 exemplifies by having

only one source from the defense industry, the recom-

mendation to distinguish between URs and SysRs is not

limited to defense, but is advocated in general software and

systems engineering practice. Indeed, in Davies’ article

‘‘Ten Questions to Ask Before Opening the Requirements

Document’’ (targeted to the general field of systems engi-

neering), the first question is ‘‘Is it a User Requirement,

[or] a System Requirement…?’’ [7], while in Wiegers’ article ‘‘10 Requirements Traps to Avoid’’ (targeted to the

general field of software requirements engineering, i.e., not

defense or systems), the first trap is ‘‘that project stake-

holders refer to ‘the requirements’ with no qualifying

adjectives … [and] as a consequence, important stake- holder expectations might go unstated and unfulfilled’’

[104]. So, if one can agree that the concepts behind URs

and SysRs are applicable to software and system engi-

neering, then the main question of this paper’s applicability

becomes ‘‘how frequently are software systems engi-

neered?’’ On this topic, and in the face of the growing

Agile software development community, software engi-

neering expert Demarco [96] recently wrote that ‘‘I’m

gradually coming to the conclusion that software engi-

neering is an idea whose time has come and gone. I still

believe it makes excellent sense to engineer software. But

that isn’t exactly what software engineering has come to

186 Requirements Eng (2017) 22:167–190

123

mean’’. Indeed, as an indication of popularity, according to

‘‘Google Trends’’ [105] the term ‘‘user requirement’’ (or

‘‘stakeholder requirement’’) receives six times less search

interest than Agile’s equivalent ‘‘user story’’ term in 2015,

whereas they were roughly equal in 2006. However, search

interest in the former term has remained approximately

constant over the last decade, and the use of systems

engineering standards such as ISO 29148 (one of the most

authoritative proponents of URs and SysRs) is still adopted

in many industries where there is high complexity,

expenditure, and risk (e.g., in aero, automotive, or military

engineering) [21, 25]. (Common reasons for not adopting

Agile include costs of frequent communication between

end-users and developers [79], or a need for verification

prior to coding, among others discussed in [25, 106]. )

In a comparison of Systems Engineering with Agile,

Turner concludes that ‘‘there are still no silver bullets

[107]’’ [108]; the key concerns behind traditional ‘‘UR–

SysR’’ requirements engineering (summarized in Table 1)

still exist in modern software development. Merisalo-

Rantanen et al. [109] even argue that much of modern

techniques are largely a case of ‘‘Old Wine in New Bot-

tles’’. Indeed, an Agile user story using Cohn’s [94]

template of ‘‘As a \user type[, I want to \goal[ so that \reason[’’ could be interpreted such that the \reason[ field maps to the concerns of URs, while the \goal[ field maps to user-task-oriented SysRs. Interestingly, some

repetition between these ‘‘fields’’ of user stories is appar-

ent, even in examples on Cohn’s website [110].

Ultimately (and as the division of Sect. 4.4 into current

practice and future practice makes clear), the ideal goal is

to not need a tool for assessing the quality of require-

ments, since the requirements processes should be opti-

mized for each software development context. However,

in the past and most likely in the future, people will make

mistakes and apply techniques in contexts ill-suited to

them [111], either by choice or due to constraints such as

organizational standards. Furthermore, the current and

future trend where ‘‘commercial off-the-shelf (COTS)

capabilities [i.e., solutions] determine requirements’’

[108], serves to increase the importance of ensuring that

those capabilities are related to real stakeholder needs not

described in terms of those capabilities. Overall, this

paper’s topic is pertinent in the current and foreseeable

future state of practice, despite that it would not be in an

ideal world.

As future work, a number of interesting research ques-

tions were identified during the project:

• Is there a correlation between software project success (or the amount of rework or ad hoc communication

required to make it successful) and the compliance of

URs and SysRs to requirements engineering standards?

• How common is UR–SysR repetition (or even the production of UR and SysR documents) in software

projects within different industry contexts (i.e., non-

defense)?

• Is the degree of UR–SysR repetition correlated with the number of authors creating the project’s requirements

documents? In other words, is better UR and SysR

separation achieved when different authors write them?

• Can a greater number of trivial differences be identified in UR–SysR pairs by extracting and comparing

semantic information, such as by using domain ontolo-

gies and lexical databases (e.g., Princeton’s WordNet),

or by comparing ‘‘Parts of Speech’’ (as are extracted

from requirements in [112])? This would explore

whether RE authors purposely replace SysR terms with

synonymous terms to form a UR that appears to be

different.

• Can machine learning techniques (e.g., a naı̈ve Bayesian classifier) be used to better classify UR–SysR

pairs as to whether useful information is added by a

UR–SysR link?

• What are the implications of repetition of natural language within requirements engineering models, e.g.,

between TROPOS goals and plans, as is visible in

[113]?

• How effective (i.e., credible [61]) is the proposed approach at filtering out trivial URs or SysRs (the answer

to RQ5) in a wider variety of requirements documents?

That is, how many trivial UR–SysR pairs (assessed

manually by stakeholders) are not filtered out, and how

many non-trivial UR–SysR pairs are filtered out?

Acknowledgments The authors are grateful to LSC Group for allowing data collection and publication of results. Special thanks are

owed to LSC Group’s Chris Lambert, Dr. James Nyambayo, and Dr.

Ann Meads for the insightful discussions on the topic. Warm thanks

are due to the reviewers of this paper whose suggestions resulted in

the clarification of many points, and to both Springer’s editors and

Sachi Jain for proofreading and copy-editing.

References

1. Marinelli V, Laplante PA (2008) Requirements engineering: the

State of the practice revisited. Penn State University, University

Park

2. Buede DM (2000) The engineering design of systems: models

and methods. Wiley, New York

3. Juergens E, Deissenboeck F, Feilkas M et al (2010) Can clone

detection support quality assessments of requirements specifi-

cations? In: Proceedings of the 32nd ACM/IEEE international

conference on software engineering, vol 2, pp 79–88

4. IEEE (1998) IEEE Std 830-1998: IEEE recommended practice

for software requirements specifications. IEEE-SA Standards

Board

Requirements Eng (2017) 22:167–190 187

123

5. Hunt A, Thomas D (1999) The pragmatic programmer: from

journeyman to master, 1st edn. Addison-Wesley Professional,

Boston

6. Juergens E, Deissenboeck F, Hummel B, Wagner S (2009) Do

code clones matter? In: 31st IEEE international conference on

software engineering, pp 485–495

7. Davies P (2004) Ten questions to ask before opening the

requirement document. In: 14th Annual international sympo-

sium systems engineering: managing complexity and change

8. Forsberg K, Mooz H (1995) The relationship of systems engi-

neering to the project cycle. Eng Manag J 4:36–43

9. Jureta IJ, Mylopoulos J, Faulkner S (2008) Revisiting the core

ontology and problem in requirements engineering. In: 16th IEEE

international requirements engineering conference, pp 71–80

10. Lin D (1998) An information-theoretic definition of similarity.

In: ICML, pp 296–304

11. Hull E, Jackson K, Dick J (2011) Requirements engineering, 3rd

edn. Springer, London

12. Herzwurm G, Schockert S, Pietsch W (2003) QFD for customer-

focused requirements engineering. In: 11th IEEE international

requirements engineering conference, pp 330–338

13. Clements P, Bass L (2010) Using business goals to inform a

software architecture. In: 18th IEEE international requirements

engineering conference, pp 69–78

14. Kovitz BL (1998) Practical software requirements: a manual of

content and style. Manning Publications, Greenwich

15. Alexander I (2002) Being clear: requirements are either needs or

specifications. Newsl BCS Requir Eng Spec Group 25:10–12

16. Ellis-Braithwaite R (2014) GoalViz tool. In: GoalViz tool.

http://www.goalviz.info/DUP/index.html. Accessed 5 Jun 2014

17. Harwell R, Aslaksen E, Hooks I et al (1993) What is a

requirement? In: 3rd Annual international symposium of

NCOSE, pp 17–24

18. Wieringa RJ (2005) Requirements researchers: are we really

doing research? Requirements Eng 10:304–306. doi:10.1007/

s00766-005-0013-6

19. Davis AM (1993) Software requirements: objects. Prentice Hall,

Functions and States

20. Stevens R, Brook P, Jackson K, Arnold S (1998) Systems

engineering: coping with complexity. Pearson Education, New

york

21. Sommerville I (2011) Software engineering, 9th edn. Pearson

Education, Boston

22. IEEE (2011) ISO/IEC/IEEE 29148:2011 Systems and software

engineering—life cycle processes—requirements engineering.

In: IEEE-SA Standards Board

23. Pyster A, Olwell D (2013) The guide to the systems engineering

body of knowledge (SEBoK), v. 1.2. The Trustees of the Stevens

Institute of Technology, Hoboken, NJ

24. IIBA (2009) A guide to the business analysis body of knowledge

(BABOK guide). International Institute of Business Analy-

sis, Whitby, ON

25. Van Lamsweerde A (2009) Requirements engineering: from

system goals to UML models to software specifications. Wiley,

New York

26. Alexander I (1999) Is there such a thing as a user requirement?

Requirements Eng 4:221–223. doi:10.1007/s007660050022

27. Jackson MA (1995) Software requirements and specifications: a

lexicon of practice, principles, and prejudices. ACM Press, New

York

28. Sage AP, Rouse WB (2009) Handbook of systems engineering

and management, 2nd edn. Wiley, Hoboken

29. Boehm BW, Basili VR (2001) Software defect reduction top 10

list. Computer 34:135–137

30. MoD (2012) ISO15288 Technical process: what is the rela-

tionship between requirements and design? ‘‘Engineering’’

acquisition operating framework (AOF). https://www.aof.mod.

uk/aofcontent/tactical/engineering/content/tech_process/se_

proc_req_design.htm. Accessed 11 Jul 2013

31. MoD (2012) User requirements principles ‘‘Requirements and

acceptance’’ acquisition operating framework (AOF). https://

www.aof.mod.uk/aofcontent/tactical/randa/content/urprinciples.

htm. Accessed 24 Sep 2012

32. MoD (2012) System requirements document (SRD) principles

‘‘Requirements and acceptance’’ acquisition operating frame-

work (AOF). https://www.aof.mod.uk/aofcontent/tactical/randa/

content/srdprinciples.htm. Accessed 24 Sep 2012

33. MoD (2012) User requirements (ur): recommended core attri-

butes ‘‘Requirements and acceptance’’ acquisition operating

framework (AOF). https://www.aof.mod.uk/aofcontent/tactical/

randa/content/urdcoreattributes.htm. Accessed 15 Mar 2014

34. MoD (2012) System requirements principles ‘‘Requirements and

acceptance’’ acquisition operating framework (AOF). https://

www.aof.mod.uk/aofcontent/tactical/randa/content/srprinciples.

htm. Accessed 24 Sep 2012

35. MoD (2012) System requirements document (SRD) ‘‘Require-

ments and acceptance’’ acquisition operating framework (AOF).

https://www.aof.mod.uk/aofcontent/tactical/randa/content/

srdstructure.htm. Accessed 15 Mar 2014

36. Jackson MA (2000) Problem frames and methods: structuring

and analyzing software development problems. Addison-Wes-

ley, Harlow

37. Berry DM (2009) What, Not how?: the case of specifications of

the New York Bagel. Ann Improbable Res 15:6–10

38. Zimmerman MJ (2010) Intrinsic vs. extrinsic value. In: Stanford

encyclopedia of philosophy. http://plato.stanford.edu/entries/

value-intrinsic-extrinsic. Accessed 2 Oct 2013

39. Zave P, Jackson MA (1997) Four dark corners of requirements

engineering. ACM Trans Softw Eng Methodol 6:1–30

40. Kaindl H, Svetinovic D (2010) On confusion between require-

ments and their representations. Requirements Eng 15:307–311.

doi:10.1007/s00766-009-0095-7

41. Amyot D, Horkoff J, GrossD, Mussbacher G (2009) A lightweight

GRL profile for i* modeling. Advances in conceptual modeling-

challenging perspectives. Springer, Berlin, pp 254–264

42. Dardenne A, van Lamsweerde A, Fickas S (1993) Goal-directed

requirements acquisition. Sci Comput Program 20:3–50. doi:10.

1016/0167-6423(93)90021-G

43. Kavakli E (2002) Goal-oriented requirements engineering: a

unifying framework. Requir Eng 6:237–251

44. Aurum A, Wohlin C (2007) A value-based approach in

requirements engineering: explaining some of the fundamental

concepts. In: Sawyer P, Paech B, Heymans P (eds) Require-

ments engineering: foundation for software quality, pp 109–115

45. Robertson S, Robertson J (2012) Mastering the requirements

process, vol 3. Addison-Wesley Professional, Reading

46. Glinz M (2007) On non-functional requirements. In: 15th IEEE

international requirements engineering conference

47. Rost J (2006) Are ‘‘best practices’’ requirements documents a

myth? IEEE Softw 23:103–104

48. MoD (2012) System requirements document (SRD) part 3:

System requirements ‘‘Requirements and acceptance’’ Acquisi-

tion operating framework (AOF). https://www.aof.mod.uk/aof

content/tactical/randa/content/srdpart3.htm. Accessed 15 Jan

2014

49. Ministry of Defence (2005) MODAF community of interest

deskbook. MoD, UK

50. Monperrus M, Baudry B, Champeau J et al (2011) Automated

measurement of models of requirements. Software Qual J

21:3–22

51. Asuncion HU, Francois F, Taylor RN (2007) An end-to-end

industrial software traceability tool. In: 6th Joint meeting of the

188 Requirements Eng (2017) 22:167–190

123

european software engineering conference and the ACM SIG-

SOFT symposium on the foundations of software engineering,

pp 115–124

52. Bouillon E, Mäder P, Philippow I (2013) A survey on usage

scenarios for requirements traceability in practice. In: Proceed-

ings of the 19th international conference on requirements

engineering: foundation for software quality. Springer, Berlin,

pp 158–173

53. Boehm BW (2005) Value-based software engineering: overview

and agenda. In: Biffl S et al (eds) Value-based software engi-

neering. Springer, Berlin, Heidelberg

54. Ncube C, Lockerbie J, Maiden N (2007) Automatically gener-

ating requirements from i* models: experiences with a complex

airport operations system. In: 13th international working con-

ference on requirements engineering: foundation for software

quality. Springer, Berlin, pp 33–47

55. Kanaris I, Kanaris K, Houvardas I, Stamatatos E (2007) Words

versus character n-grams for anti-spam filtering. Int J Artif Intell

Tools 16:1047–1067

56. Manning CD, Schutze H (2001) Foundations of statistical nat-

ural language processing. MIT Press, Cambridge

57. Runeson P, Alexandersson M, Nyholm O (2007) Detection of

duplicate defect reports using natural language processing. In:

29th International conference on software engineering. IEEE

computer society, Washington, DC, USA, pp 499–510

58. Rajaraman A, Ullman JD (2012) Data mining. Mining of mas-

sive datasets. Cambridge University Press, Cambridge

59. Apache (2012) StopAnalyzer (Lucene 4.0.0 API). http://lucene.

apache.org/core/4_0_0/analyzers-common/org/apache/lucene/

analysis/core/StopAnalyzer.html. Accessed 24 Mar 2014

60. Mavin A, Wilkinson P, Harwood A, Novak M (2009) Easy

approach to requirements syntax (EARS). In: 17th IEEE inter-

national requirements engineering conference, pp 317–322

61. Falessi D, Cantone G, Canfora G (2013) Empirical principles

and an industrial case study in retrieving equivalent require-

ments via natural language processing techniques. IEEE Trans

Softw Eng 39:18–44

62. tfidf.com (2010) Tf-idf: a single-page tutorial—information

retrieval and text mining. http://www.tfidf.com/. Accessed 16

Nov 2014

63. Ellis-Braithwaite R (2013) Analysing the assumed benefits of

software requirements. In: 19th International working confer-

ence on requirements engineering: foundation for software

quality, proceedings of the workshops and the doctoral sympo-

sium, pp 207–214

64. Runeson P, Höst M (2008) Guidelines for conducting and

reporting case study research in software engineering. Empir

Softw Eng 14:131–164. doi:10.1007/s10664-008-9102-8

65. Flyvbjerg B (2006) Five misunderstandings about case-study

research. Qual Inq 12:219–245. doi:10.1177/1077800405284363

66. Berk RA, Freedman DA (2003) Statistical assumptions as

empirical commitments. In: Blomberg TG, Cohen S (eds) Law,

punishment, and social control: essays in honor of Sheldon

Messinger, 2nd edn. Aldine de Gruyter, New York, pp 235–254

67. Hair JFJ, Wolfinbarger M, Money AH et al (2015) Essentials of

business research methods. Routledge, London

68. Easterbrook S (2006) Doctoral symposium keynote: you gotta

have a theory. ACM SIGSOFT Foundations of Software Engi-

neering, Portland, OR

69. Tversky A, Kahneman D (1973) Availability: a heuristic for

judging frequency and probability. Cogn Psychol 5:207–233

70. Umbach PD (2004) Web surveys: best practices. New Dir Inst

Res 2004:23–38. doi:10.1002/ir.98

71. Gerring J (2006) Case study research: principles and practices,

1st edn. Cambridge University Press, New York

72. Goknil A, Kurtev I, van den Berg K (2008) A metamodeling

approach for reasoning about requirements. In: Model driven

architecture–foundations and applications, pp 310–325

73. Adedjouma M, Dubois H, Terrier F (2011) Requirements

exchange: from specification documents to models. In: 16th

IEEE international conference on engineering of complex

computer systems. IEEE, pp 350–354

74. Alias-i (2011) LingPipe 4.1.0. http://alias-i.com/lingpipe/.

Accessed 24 Feb 2014

75. Fraser N (2012) Google-diff-match-patch—diff, match and

patch libraries for plain text. http://code.google.com/p/google-

diff-match-patch/. Accessed 25 Jan 2014

76. Ellson J, Gansner ER, Koutsofios E et al (2003) Graphviz and

dynagraph–static and dynamic graph drawing tools. Graph Draw

Softw 127:148

77. Core Team R (2014) R: a language and environment for statistical

computing. R Foundation for Statistical Computing, Vienna

78. The Standish Group (2010) CHAOS summary for 2010. Stan-

dish Group International, Boston, MA

79. Cao L, Ramesh B (2008) Agile requirements engineering

practices: an empirical study. IEEE Softw 25:60–67. doi:10.

1109/MS.2008.1

80. Ott R, Longnecker M (2015) An introduction to statistical

methods and data analysis. Cengage Learning, Boston, US

81. Levenshtein VI (1966) Binary codes capable of correcting

deletions, insertions, and reversals. Sov Phys Dokl 10:707–710

82. Peppard J, Ward J, Daniel E (2007) Managing the realization of

business benefits from IT investments. MIS Q Exec 6:1–11

83. Dorfman M (1999) System and software requirements engi-

neering. In: Thayer RH, Dorfman M (eds) SEI interactive. IEEE

Computer Society Press, Los Alamitos, CA, pp 7–22

84. Gilb T, Graham D (1993) Software inspection. Addison Wesley,

Boston

85. Spolsky J (2000) Painless functional specifications—part 4: tips—Joel on software. http://www.joelonsoftware.com/articles/

fog0000000033.html. Accessed 3 Dec 2012

86. Ambler SW (2012) Examining the ‘‘Big Requirements Up Front

(BRUF) Approach.’’ In: Agile Modeling. http://www.agilemo

deling.com/essays/examiningBRUF.htm. Accessed 3 Dec 2012

87. Berry DM, Damian D, Finkelstein A et al (2005) To do or not to

do: if the requirements engineering payoff is so good, why aren’t

more companies doing it? In: 13th IEEE international require-

ments engineering conference, p 447

88. Atkinson MT, Dhiensa J, Machin CHC (2006) Opening up

access to online documents using essentiality tracks. In: Inter-

national cross-disciplinary workshop on web accessibility

(W4A): building the mobile web: rediscovering accessibility?

ACM, New York, NY, USA, pp 6–13

89. Abelein U, Paech B (2013) Understanding the influence of user

participation and involvement on system success—a systematic

mappingstudy.Empir Softw Eng.doi:10.1007/s10664-013-9278-4

90. Damian D, Chisan J (2006) An empirical study of the complex

relationships between requirements engineering processes and

other processes that lead to payoffs in productivity, quality, and

risk management. IEEE Trans Softw Eng 32:433–453. doi:10.

1109/TSE.2006.61

91. Verner J, Cox K, Bleistein S, Cerpa N (2005) Requirements

engineering and software project success: an industrial survey in

Australia and the US. Australas J Inf. doi:10.3127/ajis.v13i1.73

92. Favaro J (2002) Managing requirements for business value.

IEEE Softw 19:15–17

93. Boehm BW (2000) Requirements that handle IKIWISI, COTS,

and rapid change. Computer 33:99–102

94. Cohn M (2005) Agile estimating and planning. Prentice Hall,

Upper Saddle River, NJ

Requirements Eng (2017) 22:167–190 189

123

95. Karlsson L, Dahlstedt ÅG, Regnell B et al (2007) Requirements

engineering challenges in market-driven software develop-

ment—an interview study with practitioners. Inf Softw Technol

49:588–604. doi:10.1016/j.infsof.2007.02.008

96. DeMarco T (2009) Software engineering: an idea whose time

has come and gone? IEEE Softw 26:96. doi:10.1109/MS.2009.

101

97. Wieringa RJ (2009) Design science as nested problem solving.

In: Proceedings of the 4th international conference on design

science research in information systems and technology, p 8

98. Natt och Dag J, Regnell B, Gervasi V, Brinkkemper S (2005) A

linguistic-engineering approach to large-scale requirements

management. IEEE Softw 22:32–39. doi:10.1109/MS.2005.1

99. Juristo N, Moreno AM, Silva A (2002) Is the European industry

moving toward solving requirements engineering problems?

IEEE Softw 19:70–77. doi:10.1109/MS.2002.1049395

100. Cleland-Huang J, Settimi R, Romanova E et al (2007) Best

practices for automated traceability. Computer 40:27–35.

doi:10.1109/MC.2007.195

101. Lami G (2005) QuARS: a tool for analyzing requirements.

Carnegie Mellon Software Engineering Institute, Pittsburgh, PA

102. Park S, Kim H, Ko Y, Seo J (2000) Implementation of an effi-

cient requirements-analysis supporting system using similarity

measure techniques. Inf Softw Technol 42:429–438. doi:10.

1016/S0950-5849(99)00102-0

103. Ferrari A, Gnesi S, Tolomei G (2013) Using clustering to

improve the structure of natural language requirements docu-

ments. In: 19th International working conference on require-

ments engineering: foundation for software quality. Springer,

Berlin, Heidelberg, pp 34–49

104. Wiegers K (2000) 10 Requirements traps to avoid. Softw Test

Qual Eng J 2

105. Google Google Trends—Web Search interest—Worldwide

(2004)—present. https://www.google.co.uk/trends/explore.

Accessed 16 Jul 2015

106. Buckley K (2010) Manifesto for half-arsed Agile software

development. http://www.halfarsedagilemanifesto.org/. Acces-

sed 5 Sep 2014

107. Brooks FP (1987) No silver bullet: essence and accidents of

software engineering. IEEE Comput 20:10–19

108. Turner R (2007) Toward Agile systems engineering processes.

Crosstalk J Def Softw Eng 20:11–15

109. Merisalo-Rantanen H, Tuunanen T, Rossi M (2005) Is extreme

programming just old wine in new bottles. J Database Manag

16:41–61. doi:10.4018/jdm.2005100103

110. Cohn M (2008) Advantages of the ‘‘As a User, I Want’’ user

story template. http://www.mountaingoatsoftware.com/blog/

advantages-of-the-as-a-user-i-want-user-story-template. Acces-

sed 25 Feb 2014

111. Matson E (1997) Please don’t feed the consultants. http://www.

fastcompany.com/32476/please-dont-feed-consultants. Acces-

sed 12 Jun 2014

112. Bhatia J, Sharma R, Biswas KK, Ghaisas S (2013) Using

grammatical knowledge patterns for structuring requirements

specifications. In: 2013 IEEE third international workshop on

requirements patterns (RePa), pp 31–34

113. Mylopoulos J (2006) Goal-oriented requirements engineering,

part II. (Slides). In: 14th IEEE international requirements

engineering conference

190 Requirements Eng (2017) 22:167–190

123

Reproduced with permission of copyright owner. Further reproduction prohibited without permission.

  • Repetition between stakeholder (user) and system requirements
    • Abstract
    • Introduction
    • Background and terminology
      • Requirements
      • Stakeholder, system and software requirements
        • Stakeholder requirements subtypes
        • System requirements subtypes
        • Difference between stakeholder and system requirements
      • Traceability between user and software requirements
      • Measuring the repetition in a UR--SysR pair (string similarity from an information retrieval perspective)
    • Research method
      • Research method 1: Questionnaire
      • Research method 2: UR--SysR similarity analysis
      • Context of the case study
    • Results
      • RQ2: Does UR--SysR repetition (still) occur?
        • How many projects exhibited UR--SysR repetition?
        • How many UR--SysR pairs exhibited UR--SysR repetition?
      • RQ3: Why does UR--SysR repetition occur?
      • RQ4: Is UR--SysR repetition a problem?
      • RQ5: Can the problems be reduced (current/future projects)?
        • Reducing problems in current projects (where UR--SysR repetition exists)
        • Reducing problems in future projects (where UR--SysR repetition does not yet exist)
    • Related work
    • Conclusion and future work
    • Acknowledgments
    • References