falling back to D1, S1⊢R1.
2. Weaken R1 to an R that does not require that a
GPA be reported for all students and then have
software that checks for a student’s taking zero
courses, such as that specified by S2.
In this example, the customer knows that a student not
taking any courses is not rare at all and that it is better
that the software handles the case. Therefore, the cus-
tomer chooses to weaken R and to use software spec-
ified by S2.
Taking R as R2
An initial attempt to weaken R leads to R2, which is
inconsistent. Fixing the inconsistency leads to R3.
Taking R as R3
Suppose again that D2 is correct. Then, D2, S2⊢R3.
Interestingly, S2 is sufficiently robust that by itself,
S2⊢R3. That is, the distinction between D1 and D2 is
irrelevant.
Taking R as R4
No S can entail R4, because, as mentioned above, it is
simply not possible to algorithmically generate use-
ful, accurate letters of recommendation. Thus, the
customer must be told that his or her requirement can-
not possibly be met and to find another requirement.
A possible achievable requirement is to print human-
composed letters of recommendation that are already
stored in a database.
The above examples demonstrate how the analy-
sis of the RE problem through the lens of the ZJVF
induces different strategies for inconsistency man-
agement. While it may be sensible, and even desirable
in some cases, to tolerate incorrectness, inconsistency
in an SRS is an indication of an inherent, serious
problem. At the very least, the analyst discovering the
inconsistency must make a memo to the project that
the inconsistency exists so that all are aware of it and
can take it into account in their work. In this way, the
inconsistency is tolerated temporarily during an in-
vestigation into ways to resolve the inconsistency. Ul-
timately though, the inconsistency must be resolved
before the SRS can be considered as delivered. That
resolution may involve tolerating incorrectness,
changing the software, or abandoning or changing a
requirement. All these activities can be regarded as
managing an SRS’s inconsistency, in the more gen-
eral sense of the word “inconsistency”.
2
Admittedly, for such a small, easily fixed problem, this choice is
clearly preposterous. However, in real life, there are statistically
rare situations that no man-made system can handle correctly in
every case for which a decision to tolerate the failures that will re-
sult in the situations is a reasonable choice. An example is the pos-
sibility that a flying aircraft will hit a bird and crash.
3 THE EXPERIMENT
Previous research has shown that practitioners in-
clude in their personal definitions of inconsistency
cases of incorrectness (Hadar and Zamansky, 2015).
For effective inconsistency management to be viable,
it is important that requirement analysts would fully
understand the difference between inconsistency and
incorrectness. We believe that a requirement analyst
who understands the ZJVF will make better distinc-
tions between inconsistency and incorrectness, lead-
ing to better strategies for handling these cases.
Therefore, we propose an intervention, that is, teach-
ing requirements analysts the ZJVF and how to use it
for identifying and understanding inconsistencies in
SRSs. Balaban et al., (2014) have shown how teach-
ing patterns to UML modelers led to the modelers’
producing better quality UML models. We plan to
employ a similar strategy here.
Thus, we propose empirical research addressing
the research question (RQ):
Does teaching a requirement analyst the ZJVF
improve his or her ability to identify and deal
with inconsistencies in SRSs?
To answer this RQ, we are considering an experiment
outline as described below.
The planned experiment is a pre-test–post-test ex-
periment, with the intervention occurring between the
tests (Shadish et al., 2002).
Pre-test:
a. The test presents examples of SRSs, in which in-
consistencies and incorrectness may exist. While
each SRS is divided into its D, S, and R parts, the
sentences of the SRS are not directly labeled as to
which of D, S, and R it is part of. Rather, linguistic
clues of some kind are provided e.g., “is” vs.
“shall” vs. “will”.
b. For each of these SRSs, the test asks if there is a
problem in the SRS, and if there is, what it is and
what should be done to solve it.
For the pre-test, it is hypothesized that most partici-
pants will not distinguish between inconsistency and
incorrectness, and between different types of incon-
sistency, leading to proposed strategies that may be
ineffective or irrelevant to the problem at hand, in-
cluding those that indicate that they have no clue as
to what is going on.
Intervention: Teaching the ZJVF, with emphases on
the distinction between R, S, and D and on how to use
the formula to find problems in an SRS and to suggest
resolutions to these problems.
Post-test: The test is the same as the pre-test.