Download as pdf or txt
Download as pdf or txt
You are on page 1of 40

Section 3

Finding Ambiguities in Requirements

Copyright 2006 Bender RBT Inc. 1

Objectives

In this section, you will gain an understanding of:


• the limitations of natural language.
• historical examples of ambiguity.
• listing and identifying ambiguity types.
• reviewing an ambiguous requirement.
• documenting ambiguities found in a requirement.

Copyright 2006 Bender RBT Inc. 2

Copyright 2006 Bender RBT Inc. 1


Writing Unambiguous
Requirements
• Requirements are written primarily in natural language.

• All natural languages are inherently ambiguous.

• Formal specification languages are not a viable


alternative.

• Using structured, natural language helps considerably.

• Most developers do not know how to write detailed


unambiguous requirements.
Copyright 2006 Bender RBT Inc. 3

Writing Unambiguous
Requirements
PROLOG - Opening bid rules for Bridge
openbid(1.Suit) < - openpoints(bidder)
/* Bidding Rules - Opening Bid */
& longsuit(L,Suit,bidder) & eq(L,4)
& hand(bidder,S1,L1,.*.*) & le(L1,2)
openbid(0.pass) < - totpoints (P,bidder)
&lt(Suit,S1).
& (le(P,10) & longsuit (L,*,bidder) &
openbid(1.notrump)< - balanced(bidder) &
lt(L,7)
totpoints(P,bidder)
| ge(P,11) & le(P,12)
& ge(P,16) & le(P,18).
| eq(P,13) & quicktricks(Q,bidder) &
openbid(2.notrump) < - balanced(bidder &
lt(Q,2)).
totpoints(P,bidder)
openbid(1.Suit) < - openpoints(bidder)
& ge(P,22) & le(P,24).
& longsuit(L,Suite,bidder) & ge(L,5)
openbid(3.notrump) < - balanced(bidder) &
& next longsuit(M,*,bidder) & lt(M,5).
totpoints(P,bidder)
openbid(1.Suit) < - openpoints(bidder)
& ge(P,25) & (P,27).
& longsuit(L1,S1,bidder)
openbid(4.notrump) < - balanced(bidder) & totpoints
& next longsuit(L2,S2,bidder)
(P,Bidder)
& eq(L1,5) & (L2,5)
& ge(P,28) & le(P,29).
& ( gt(S1,S2) & Suite=S1
openbid(2.Suit) < - totpoints(P,bidder) &
| gt(S2,S1) & Suite=S2).
longsuit(L,Suit,bidder)
openbid(1.Suit) < - openpoints(bidder)
& hand(bidder, Suit,L.Pts.*) & ge(Pts,6)
& longsuit(L,Suit,bidder) & eq(L,4)
& ( eq(L,5) & ge(P,25)
& hand(bidder,Suit,L.P.*) & ge(P,4)
| eq(L,6) & ge(P,23)
& (Suit=spades | Suit=hearts).
| ge(L,7) & ge(P,21).
Copyright 2006 Bender RBT Inc. 4

Copyright 2006 Bender RBT Inc. 2


Formal Specification Languages

• Advantages
– Rigorous Syntax
– Machine (Program) Readable
– Provable Consistency

• Disadvantage
– Not readable by the Subject Matter Experts

How do you verify the requirements are correct


and complete?

Copyright 2006 Bender RBT Inc. 5

One half of two and two = ??

Copyright 2006 Bender RBT Inc. 6

Copyright 2006 Bender RBT Inc. 3


Ambiguity in History

• Napoleon’s
Corporal
• Casper
Weinberger
• Mokusatsu

Copyright 2006 Bender RBT Inc. 7

Pitfalls of Natural Language

A difference between version I and version II exists

only when mixed data types are used, and then

only when operand lengths differ, and then only

sometimes.

Copyright 2006 Bender RBT Inc. 8

Copyright 2006 Bender RBT Inc. 4


Ambiguous Statements

EXAMPLE:

If the light is red, then stop.

Copyright 2006 Bender RBT Inc. 9

Ambiguity Review Checklist

• Dangling Else • Ambiguous Statements


• Ambiguity Of Reference – Verbs, Adverbs, Adjectives
– Variables, Unnecessary Aliases
• Scope Of Action
• Random Organization
• Omissions – Mixed Causes And Effects
– Causes Without Effects – Random Case Sequence
– Missing Effects
– Effects Without Causes • Built-In Assumptions
– Complete Omissions – Functional/Environmental
– Missing Causes Knowledge
• Ambiguous Logical • Ambiguous Precedence
Operators Relationships
– Or, And, Nor, Nand • Implicit Cases
– Implicit Connectors • Etc.
– Compound Operators
• I.E. Versus E.G.
• Negation
• Temporal Ambiguity
– Scope Of Negation
– Unnecessary Negation • Boundary Ambiguity
– Double Negation
Copyright 2006 Bender RBT Inc. 10

Copyright 2006 Bender RBT Inc. 5


Definition of Ambiguous

• If one person wrote it with one intent


and another person read it differently, it
is ambiguous.

Copyright 2006 Bender RBT Inc. 11

Dangling Else

MUST BE, WILL BE, IS ONE OF, SHOULD BE,


COULD BE, CAN BE, SHALL.

EXAMPLE:
“The Marriage Status must be either
Married, Single, or Divorced.”

Else? An error condition?

Copyright 2006 Bender RBT Inc. 12

Copyright 2006 Bender RBT Inc. 6


Ambiguity of Reference

IT, SUCH, THE ABOVE, THE PREVIOUS, THEM, THESE,


THEY
EXAMPLE 1:
“Add field A to field B.
This number must be positive.”

EXAMPLE 2:
“Transaction 1 displays the customer’s name and address.
Transaction 2 displays the customer’s account numbers.
Transaction 3 displays the customer’s account balances.
Such transactions require the security code.”
Copyright 2006 Bender RBT Inc. 13

Scope of Action Message 1


O/R Code = 1
X
O/R Code = 2

Pay Amount X X

Update Dentist X X

Update Patient X X
If it is a member dentist or an Message 2 X

override = 1, then pay the Version 1


O/R Code = 1 O/R Code = 2
amount submitted, update the Message 1 X X

dentist’s record, update the Pay Amount X X

Update Dentist X X
patient’s record, and print Update Patient X X

message 1. Message 2 X

However, if the override code = Version 2

2, then print message 2. Message 1


O/R Code = 1
X
O/R Code = 2

Pay Amount X

Update Dentist X

Update Patient X

Message 2 X

Version 3
Copyright 2006 Bender RBT Inc. 14

Copyright 2006 Bender RBT Inc. 7


Scope of Action

What if message 2 is:

“Patient’s bill not paid.” - version 3


“Patient’s claim exceeds standard rate.” - version ?

Do ambiguity reviews of messages.

Copyright 2006 Bender RBT Inc. 15

Omissions

• Causes without effects


• Effects without causes
• Missing causes
• Missing effects
• Complete omissions

Copyright 2006 Bender RBT Inc. 16

Copyright 2006 Bender RBT Inc. 8


Omissions

Causes without effects:


“Codes 1 through 4 produce the message. It is also
possible for the code to be a 5.”

Effects without causes:


“This message sometimes appears.”
“It is sometimes necessary for the operator to re-
initialize the field.”

Copyright 2006 Bender RBT Inc. 17

Omissions

Missing Causes
Example 1 - “If you drive through a red light
you will get a ticket.”
Missing - you must be caught doing it.
Example 2 - “If the number is 1, 3, 5, 7, 11, 13,
19, 23, or 29 it is a prime number.”
Missing - 2, 17.

Copyright 2006 Bender RBT Inc. 18

Copyright 2006 Bender RBT Inc. 9


Omissions

Missing Effects
Example 1 - “If the account is overdrawn
reject the check.”
Missing - notify the customer.
Example 2 - “If you land on this space go
directly to jail. Do not pass go.”
Missing - do not collect $200.

Copyright 2006 Bender RBT Inc. 19

Omissions

Total Omissions

[This page unintentionally left blank.]

Copyright 2006 Bender RBT Inc. 20

Copyright 2006 Bender RBT Inc. 10


Ambiguous Logical Operators

• OR
• XOR
• AND
• NOR
• NAND
• IMPLICIT CONNECTORS
• CONFUSING COMPOUND
OPERATORS

Copyright 2006 Bender RBT Inc. 21

Ambiguous Logical Operators

OR: If A or B then C.
What people write:
“A and B each produce C.”
“A and B produce C.”
“A produces C. B also produces C.”
“If A or B or both produce C.”
“A and/or B produce C.”
“Either A or B produces C.”
“There are 2 transactions - A and B.
They each produce C.”

Copyright 2006 Bender RBT Inc. 22

Copyright 2006 Bender RBT Inc. 11


Ambiguous Logical Operators

“A or B Result in C or D.”

Possible Interpretations:
“If A then C. If B then D.”
“If A or B then C and D.”
“If [A or B] and X then C.”
~
“If [A or B] and X then D.”

Copyright 2006 Bender RBT Inc. 23

Ambiguous Logical Operators

Inclusive Versus Exclusive “OR”


Example 1: Benefits Eligibility (inclusive “or”)
If you are a current employee
or
an employee who retired within the last two years
or
you are the surviving spouse of a deceased employee,
then you are eligible for the dental plan.
Example 2: Menu (exclusive “or”)
Choose appetizer A or B or C
and
Entree Number One or Two or Three.

Copyright 2006 Bender RBT Inc. 24

Copyright 2006 Bender RBT Inc. 12


Ambiguous Logical Operators

AND: If A and B then C.

What people write:


“A and B produce C.”
“A and B together are required to produce C.”
“C is produced when A and B are both
present.”

Copyright 2006 Bender RBT Inc. 25

Ambiguous Logical Operators

NOR: If not [A or B] then C.

What people write:


“If it is not A or B then produce C.”
“If it is neither A nor B produce C.”
“If it is neither A or B produce C.”
“If A or B are both missing produce C.”
“The valid codes are A and B.”
“If it is none of the above produce C.”
“If it is not A and not B then produce C.”

Copyright 2006 Bender RBT Inc. 26

Copyright 2006 Bender RBT Inc. 13


Ambiguous Logical Operators

NAND: If not [A and B] then C.

What people write:


“If it is not A and B together then produce C.”
“As long as A and B are not together produce C.”
“Produce C unless A and B are both present.”
“If it is not A or it is not B then produce C.”

Copyright 2006 Bender RBT Inc. 27

Ambiguous Logical Operators

Implicit connectors:

Harry’s “Going to the Party” Rules


Rule 1: If either Sally or Sarah go, Harry will go.
Rule 2: If Sally does not go with John, Harry will go.
Rule 3: If Sarah does not go with Bob, Harry will go.

What happens if Sarah goes and Bob goes?


Rule 1: Says Harry will go.
Rule 3: Implies Harry will not go.

Copyright 2006 Bender RBT Inc. 28

Copyright 2006 Bender RBT Inc. 14


Ambiguous Logical Operators

Implicit connectors:

Harry’s “Going to the Party” Rules

Requirements should be:


If either Sally or Sarah go
and
If Sally does not go with John
and
If Sarah does not go with Bob then Harry will go.

Copyright 2006 Bender RBT Inc. 29

Ambiguous Logical Operators

Confusing compound operators:

“If A or B and C produce D.”

If [A or B] and C produce D?
OR
If A or [B and C] produce D?

Copyright 2006 Bender RBT Inc. 30

Copyright 2006 Bender RBT Inc. 15


UNIX 5.4 Ambiguity

[EPERM]

nice will fail and not change the


nice value if incr is negative or
greater than 39 and the effective
user ID of the calling process is
not super-user.

Copyright 2006 Bender RBT Inc. 31

UNIX 5.4 Ambiguity

[EPERM]

nice will fail and not change the


nice value if(incr is negative)or
(greater than 39 and the effective
user ID of the calling process is
not super-user.)

Copyright 2006 Bender RBT Inc. 32

Copyright 2006 Bender RBT Inc. 16


UNIX 5.4 Ambiguity

[EPERM]

nice will fail and not change the


nice value if[(incr is negative) or
(greater than 39]and[the effective
user ID of the calling process is
not super-user.)]

Copyright 2006 Bender RBT Inc. 33

Missing Logical Operator(s)

As required, As necessary

All fields are edited, if necessary.

Fees and service charges are applied, as required.

Copyright 2006 Bender RBT Inc. 34

Copyright 2006 Bender RBT Inc. 17


Negation

• Scope of negation
• Unnecessary negation
• Double negation

Copyright 2006 Bender RBT Inc. 35

Negation

Scope of negation:
Example 1:
“If not A or B then C.”

If neither A nor B then C?


OR
If B or not A then C?

Example 2:
“If it is not a member dentist or the code = 2
then use table one.”

Copyright 2006 Bender RBT Inc. 36

Copyright 2006 Bender RBT Inc. 18


Negation

Unnecessary negation:
Example 1:
Ambiguous
If the amount is not under $300 then it must not be
posted without authorization.
Clear
If the amount is $300 or more it must be authorized
before posting.

Copyright 2006 Bender RBT Inc. 37

Negation

Unnecessary negation:
Example 2:
Ambiguous
If John is neither absent nor late he will get a perfect
attendance award.
ABSENT => PRESENT
LATE => ON TIME
Clear
If John is always present and always on time he will
get a perfect attendance award.

Copyright 2006 Bender RBT Inc. 38

Copyright 2006 Bender RBT Inc. 19


Negation

Double negation:
Examples:
Version 1
If Bob does not pass the final he will not pass the
course.
Version 2
If Bob passes the final he will pass the course.
Does version 2 have the exact same meaning as
version 1?
Copyright 2006 Bender RBT Inc. 39

Ambiguous Statements

• Ambiguous verbs
• Ambiguous variables
• Unnecessary aliases
• Ambiguous adjectives
• Ambiguous adverbs

Copyright 2006 Bender RBT Inc. 40

Copyright 2006 Bender RBT Inc. 20


Ambiguous Statements

Ambiguous verbs:
CALCULATE, UPDATE, PRODUCE, MODIFY
“If it is month end calculate the interest earned.”

Ambiguous variables:
DATA, FIELD, FILE, MESSAGE, STATUS, VALUE
“If the interest amount is greater than $100, send the
customer the notice.”
Interest accrued? Interest paid?
Interest earned? Interest anticipated?

Copyright 2006 Bender RBT Inc. 41

Ambiguous Statements

Ambiguous adjectives:

ALL, ANY, CUSTOM, EVERY, FEW, MANY,


STANDARD
“It is against the law to ride down the street
on an ugly horse.”
Law in Wilbur, Washington

Copyright 2006 Bender RBT Inc. 42

Copyright 2006 Bender RBT Inc. 21


Ambiguous Statements

Ambiguous adverbs:

ACCORDINGLY, ALMOST, COMMONLY,


FREQUENTLY
“The delete transaction must be processed
quickly.”
“Field A is usually positive.”

Copyright 2006 Bender RBT Inc. 43

Random Organization

Mixed sequences of causes and


effects:
“If A or B produce C.”
“D is created if E and F are
entered.”

Random sequence of cases:


“If A or B then C.”
“If D and E then F.”
(22 pages later)
“D will also result in C.”

Copyright 2006 Bender RBT Inc. 44

Copyright 2006 Bender RBT Inc. 22


Built-in Assumptions

Assumed functional knowledge:

“To determine the amount to be paid, treat


associate members exactly like full members.”

Copyright 2006 Bender RBT Inc. 45

Built-in Assumptions

Assumed knowledge of environmental


constraints:
One and only one
Mutually exclusive
Inclusive
Requires
Masks
Example:
“If A then produce C.
Else if B then produce D.”
This assumes A and B are in a one and only one relationship

Copyright 2006 Bender RBT Inc. 46

Copyright 2006 Bender RBT Inc. 23


Ambiguous Precedence Relationships

If John has enough money he


will buy:
- A car for $24,500.
- A television for $3,000.
- Stereo equipment for $1,200.
- A boat for $28,700.

What if John inherits $28,700?


Does he buy the car, television,
and stereo or the boat?

Copyright 2006 Bender RBT Inc. 47

Implicit Cases

OTHERWISE, ELSE, FOR ALL OTHER, HOWEVER,


BUT, YET:
If it is a member dentist and the procedure was not
pre-authorized, pay from the system table.
If it is a non-member dentist pay 50% of the
amount submitted.
Otherwise, pay the full amount.

Suggested Otherwise case:


If it is a member dentist and a valid pre-authorized
procedure, pay the full amount.
Copyright 2006 Bender RBT Inc. 48

Copyright 2006 Bender RBT Inc. 24


Etc.

ETC., INCLUDING, AMONG


If it is transaction 1 then update the
customer’s record, print the customer’s
statement, etc.
The full amount should be paid for full
members, associate members, etc.
Key customers, including corporate and high
net worth customers, are given a discount
on fees and service charges.

Copyright 2006 Bender RBT Inc. 49

I.E. versus E.G.

Definitions:
I.E. - Id Est - That Is
E.G. - Exempli Gratia - For Example

Example
“The parolee monitoring system must maintain a
profile of the individuals (i.e., name, address,
occupation).”

Copyright 2006 Bender RBT Inc. 50

Copyright 2006 Bender RBT Inc. 25


Temporal Ambiguity

AFTER, ANNUALLY, LATER, WEEKLY,


MONTHLY

Accepted transactions will be posted to


the database later.

Accounts are reviewed for discrepancies


at the appropriate time.

Copyright 2006 Bender RBT Inc. 51

Boundary Ambiguity

If the number is positive


Then
Add it to the account balance
Else
Display the error message.
(What if it is zero?)
“The small screen will handle up to fifteen
planes. The large screen will handle larger
numbers of planes.”
(What about the fifteenth plane?)

Copyright 2006 Bender RBT Inc. 52

Copyright 2006 Bender RBT Inc. 26


Exercise: Identify the ambiguities.

1.The dollar amount entered will be added to


the year-to-date totals. This number must
be positive.
2.If the game is held on Saturday or Sunday,
I'll go.

Copyright 2006 Bender RBT Inc. 53

Exercise: Identify the ambiguities.

3.There are three error conditions which


produce a message. The data could be
non-numeric, have a negative value, or
exceed the maximum limit.

Copyright 2006 Bender RBT Inc. 54

Copyright 2006 Bender RBT Inc. 27


Exercise: Identify the ambiguities.

4.There are three error conditions which


produce the message. The data could be
non-numeric, have a negative value, or
exceed the maximum limit.
5.The field is updated by transaction types 1
and 2.

Copyright 2006 Bender RBT Inc. 55

Exercise: Identify the ambiguities

6.Both procedure codes 1 and 9 result in


claims paid at 40% or 50% of the amount
billed.
7.When the procedure code is not in the
dentist’s record or in the allowable
procedure table, pay from the system
table.

Copyright 2006 Bender RBT Inc. 56

Copyright 2006 Bender RBT Inc. 28


Exercise: Identify the ambiguities

8.Transaction type 1 outputs the name,


number, address, and YTD earnings.
Transaction type 2 displays the YTD
number of claims.
9.Transaction type 1 outputs the name,
number, address, and YTD earnings. The
YTD number of claims can also be
displayed.
Copyright 2006 Bender RBT Inc. 57

Exercise: Identify the ambiguities

10. Transaction type 1 produces a YTD


earnings report. Type 2 produces a claims
per patient report. There is also a
transaction type 3.
11. If the year is divisible by 4, it is a leap
year. However, there is no leap year at the
century years. (i.e., 2100 A.D.).

Copyright 2006 Bender RBT Inc. 58

Copyright 2006 Bender RBT Inc. 29


Exercise: Identify the ambiguities

12. Process transaction 2 similar to


transaction 1.
13. If it rains or snows we will play tennis.
We will play football unless there is a
flood. If it is too cold or raining too heavily,
we will not play baseball.

Copyright 2006 Bender RBT Inc. 59

Exercise: Identify the ambiguities

14. Dentists with membership codes of 2, 3, or 9


are member dentists. For claims referencing a
non-member dentist or for procedures not within
the referenced dentist’s record, a system table is
used to calculate the amount paid. Otherwise,
the amount submitted is paid. However, an
override code of 1 or 9 allows the amount
submitted to be paid for non-member dentists or
for procedures not within the referenced dentist’s
record. When the override code is used, an entry
is made on the paid claims report.
Copyright 2006 Bender RBT Inc. 60

Copyright 2006 Bender RBT Inc. 30


Answers to Exercise

1. The dollar amount entered will be added to the


year-to-date totals. This number must be positive.
What dollar amount? Dollars and cents or just the
dollars? What kind of dollars - U.S., Canadian, Hong
Kong? Entered where, by whom, how? When will they
be added? Is it a mathematical add or a concatenate?
To what year to date totals - calendar, fiscal, booking
year to date? To all of the totals, some of them, to just
one of them? What type of year -fiscal or calendar?
Which number must be positive? What if is not
positive? What if it is zero?

Copyright 2006 Bender RBT Inc. 61

Answers to Exercise

2. If the game is held on Saturday or Sunday, I’ll go.


What game? Does “held” mean played or held up?
On which Saturday or Sunday? What if it’s on both
Saturday and Sunday? What if the game starts on
Friday but carries over into Saturday (e.g., an extra
inning baseball game)? Would you go regardless of
the start time? Would you go regardless of the
weather? What if you cannot get a ticket? What if you
cannot get to the game? Who’s “I”? Where will “I” go?
Is “Saturday” the name of the day of the week or the
name of the playing field?
Copyright 2006 Bender RBT Inc. 62

Copyright 2006 Bender RBT Inc. 31


Answers to Exercise

3. There are three error conditions which produce a


message. The data could be non-numeric, have a
negative value, or exceed the maximum limit.
What does “produce” mean? How many messages?
What is the text of the messages? What data? Are
these the error conditions or what the data “could be”?
Does negative zero count as negative? What is the
maximum limit? Are these error conditions mutually
exclusive? What happens if it passes the edit?
4. Same as 3 with the exception of “the message” versus
“a message”. “The” implies only one message.
Copyright 2006 Bender RBT Inc. 63

Answers to Exercise

5. The field is updated by transaction type 1 and 2.


What field? How is it updated? Is it 1 and 2 both
together or 1 and 2 each? What is the meaning of 1
and 2? What if it is not 1 or 2?
6. Both procedure codes 1 and 9 result in claims paid at
40% or 50% of the amount billed.
What do codes 1 and 9 mean? Which percent is used?
Who is paid? How are they paid? What if it is neither 1
nor 9?

Copyright 2006 Bender RBT Inc. 64

Copyright 2006 Bender RBT Inc. 32


Answers to Exercise

7. When the procedure code is not in


the dentist’s record or in the
allowable procedure table, pay from
the system table.
What procedure code? Scope of
negation? What is the “allowable”
table? Pay whom? What system
table? Else?

Copyright 2006 Bender RBT Inc. 65

Answers to Exercise

8. Transaction type 1 outputs the name, number,


address, and YTD earnings. Transaction type 2
displays the YTD number of claims.
Outputs versus displays? Outputs/displays
where? Whose name, number, etc.? What does
YTD mean? Does type 2 just display the number
of claims or is it a chained transaction adding to
what type 1 displayed? What if it is neither 1 nor
2?

Copyright 2006 Bender RBT Inc. 66

Copyright 2006 Bender RBT Inc. 33


Answers to Exercise

9. Transaction type 1 outputs the


name, number, address, and YTD
earnings. The YTD number of
claims can also be displayed.
Same issues as number 8 plus what
causes the number of claims to be
displayed?

Copyright 2006 Bender RBT Inc. 67

Answers to Exercise

10. Transaction type 1 produces a YTD earnings report.


Type 2 produces a claims per patient report. There is
also a transaction type 3.
What does “produces” mean? What is in the reports?
What does type 3 do? What if it’s neither 1 nor 2 nor
3?

Copyright 2006 Bender RBT Inc. 68

Copyright 2006 Bender RBT Inc. 34


Answers to Exercise

11. If the year is divisible by 4, it is a leap year.


However, there is no leap at the century years (i.e.,
2100 A.D.).
What type of year - fiscal or calendar? All years
are divisible by 4, just not evenly. What is the
definition of leap year? What is the definition of a
“century year”? “i.e.” instead of “e.g.”. What does
“A.D.” mean? The rule is incomplete. If the year is
divisible by 400 it is a leap year; if it is divisible by
4,000 it is not; if it is divisible by 40,000 it is. This
also does not take into account when the
Gregorian calendar came into use in various parts
of the world.
Copyright 2006 Bender RBT Inc. 69

Answers to Exercise

12. Process transaction 2 similar to transaction 1.


What does “similar” mean? How is transaction 1 processed?
13. If it rains or snows we will play tennis. We will play football unless there
is a flood. If it is too cold or raining too heavily, we will not play baseball.
Precedence problem. Which sport do we play when the conditions
overlap? Where is the weather happening? Who is “we”. What kind of
tennis, baseball, and football? Where are we playing these sports? Are
we playing this tennis indoors? What is the definition of “flood”, “too
cold”, “raining too heavily”? What item is “too cold”? What is the else
case?

Copyright 2006 Bender RBT Inc. 70

Copyright 2006 Bender RBT Inc. 35


Answers to Exercise

14. What do codes 2, 3, and 9 mean in English? What about codes 1,


4, 5, etc.? Are they non-members? How many other codes are there,
what are they, and what do they mean? Started talking about members
then switched to non-members - confusing. What is meant by
“procedures”? What is a “referenced” dentist? What system table is
used? What is the calculation? Who is paid? How are they paid? What
is the otherwise case? Does “however” modify the “otherwise” or
everything up to that point? Is there any link between override code 9
and membership code 9? Are there other override codes and what do
they do? What happens if you put in an override for the case of a
member dentist and the procedure is in the dentist’s record? What entry
is made on the report? Wouldn’t you want to make entries for everything
that is paid, not just the override cases?

Copyright 2006 Bender RBT Inc. 71

Ambiguity Review Process

1. Make copy of original requirements.


2. Have a non-domain-expert review for ambiguities.
3. Revise requirements to eliminate ambiguities as
needed.
4. Have one or more domain experts review
requirements individually.
5. Domain experts meet to compare notes.
6. Revise requirements for content and correctness
as necessary.

Copyright 2006 Bender RBT Inc. 72

Copyright 2006 Bender RBT Inc. 36


Documenting Ambiguities

1. Provide overview of the issues found.


2. Document each individual issue.
3. Divide issues into three categories
- Hard ambiguities
- Definition of terms/acronyms
- “I assumed you meant”
4. Provide document owner with ambiguity
write-up and a copy of the marked up
document.
Copyright 2006 Bender RBT Inc. 73

Documenting Ambiguities
5. Working jointly with requirements authors,
perform “triage” on the hard ambiguities:
– Major issues (impacts architecture,
business policy):
Cannot continue until resolved.
– Significant issues (impacts single
component):
Can continue in limited areas.
– Minor issues (narrow, localized impact):
Do not affect other functions.

Copyright 2006 Bender RBT Inc. 74

Copyright 2006 Bender RBT Inc. 37


Logging Ambiguity Defects

1. Log all the defects found in a single review as


one incident with the number of issues noted.
2. After the next revision, log open issues
individually for tracking.
3. Review trends in the type and number of
issues found.
4. Identify problem functions.
Functions with on-going ambiguity issues have
higher failure rates later.

Copyright 2006 Bender RBT Inc. 75

Additional Benefits from


Ambiguity Reviews

• Timely feedback reduces issue


resolution time.

• Explicit feedback leads to defect


avoidance.

• Writing is accelerated.

• Critical to outsourcing

Copyright 2006 Bender RBT Inc. 76

Copyright 2006 Bender RBT Inc. 38


Savings Via Early Testing
Ambiguity Reviews of Specifications
(source: Bender RBT Inc.)
• Defects found
– Mutual Funds project
# Functions 180
# Issues 1,713
– Embedded code project
# Functions 65
# Issues 595

Copyright 2006 Bender RBT Inc. 77


2-64

Savings Via Early Testing


Ambiguity Reviews of Specifications
(source: Bender RBT Inc.)
• Costs per defect found during ambiguity reviews
– .85 hour/defect
– $75 hour fully burdened rate ($150K year)
– $63.75 per defect

• Costs if found in integration test/system test


– $750 to $3,000 per defect (SEI)

• Cost if found in production


– $10,000 per defect (HP)
– $140,000 per defect (IBM)

Copyright 2006 Bender RBT Inc. 78


2-65

Copyright 2006 Bender RBT Inc. 39


The RBT Process
1. Validate Requirements Against Objectives
2. Apply Scenarios Against Requirements
3. Perform Initial Ambiguity Review
4. Perform Domain Expert Reviews
5. Create Cause-Effect Graph
6. Logical Consistency Check and Test Case Design By RBT
7. Review Of Test Cases By Requirements Authors
8. Validate Test Cases With Users/Domain Experts
9. Review Of Test Cases By Developers
10. Walk Test Cases Through Design
11. Walk Test Cases Through Code
12. Verify Code Against Test Cases Designed from requirements.

Copyright 2006 Bender RBT Inc. 79

Copyright 2006 Bender RBT Inc. 40

You might also like