What, Not How? - University of Waterloo

What, Not How?
When Is “How” Really
“What”?:
Daniel M. Berry, Computer Science
University of Waterloo, Canada
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 1
Three Ways to Specify
There are actually three ways to specify
something:
g
g
g
 2007 Daniel M. Berry
What
How
Test
Requirements Engineering What, Not How? Pg. 56
Chewy Bagels
Let us use the New York (NY) bagel as an
example.
How many of you have ever had one?
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 57
Where to Get Them
In Waterloo, unless you have gone to Rise and
Shine Bagels on Bridgeport Road, you have
not.
Blue Dog Bagels, Great Canadian Bagels,
Manhattan Bagels, McDonald’s, Northern
Bagels, Royal Bagels, Sobey’s, Tim Horton’s,
and Zehr’s do not make them.
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 58
A What Specification
On the next slide is a blueprint* for a NY bagel
from a U.S. company, Bruegger’s Bagels, that
makes genuine NY bagels.
Notice Detail 1-A. It is shown, blown up, on the
slide after that
hhhhhhhhhhhhhhhhhhhhhhhh
* Copyright by and a registered trademark of Bruegger’s
Bagels Corporation; reprinted with permission.
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 59
Detail 1-A and Chewiness
It specifies the inner mantle to withstand up to
45 psi and the core to maintain 20 to 25
moisture content.
These define the chewiness of the bagel.
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 62
Chewiness Is an NFR?
Is this chewiness functional or nonfunctional?
I think it is functional, because it ain’t a NY
bagel without the chewiness.
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 63
Bagels and Donuts
Without the chewiness, it’s bread with a hole
in it or a donut*.
Indeed, in my mind, a bagel and a donut have
literally nothing in common!
hhhhhhhhhhhhhhhhhhhhhhhh
*When the Israeli Dunkin’ Donuts began to sell donuts, I
said that Dunkin’ Donuts was diversifying into other holey
products in the Holy Land!
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 64
How Specification
Here is a recipe for NY bagels:
1. Use high gluten flour dough that has risen.
2. Make a ring with outer diameter 4 inches
and inner diameter 1 inch and with a cross
section of 1.5 inches in diameter.
3. Put the ring into boiling water for 30
seconds.
4. Bake the ring at 400°F (200°C) for 10
minutes or until golden brown.
This How specification is clearly an algorithm.
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 65
Mile High Modification
In Denver, Colorado, which is a mile (1.6 kms)
high, the ring must be boiled for 90 seconds!
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 66
Why What is Better than How
The What specification is preferred to the How
because the What says only what is desired
and allows the implementor freedom to
achieve it any way he or she can. It spurs
competition to find more efficient ways to
achieve the What than originally conceived.
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 67
Other Kinds of Bagels
Some of the companies that fail to make
genuine New York bagels do so because they
have decided to make different kind of bagels;
these include Royal Bagels that makes
Montréal bagels, a different kind of bagel with
its own fans.
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 68
Breads with Holes
Others that fail to make genuine New York
bagels do so because they simply decided
that the boiling is unnecessary; they do not
get the proper surface yield or interior
moisture content.
These are non-bagels, breads-with-a-hole.
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 69
Steamed!
Others, e.g., Einstein’s, The Great Canadian
Bagel, McDonald’s and Tim Horton’s (if the
words of clerks working there can be believed)
have tried steaming in place of boiling. It
almost works, but the surface yield is not high
enough and the interior moisture content is
too high. These are buns-with-a-hole.
Note the headline that appeared after
McDonald’s introduced its steamed bagels:
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 70
Steamed, Cont’d
“McDonald’s bagels are steamed; so are
purists” (San Jose Mercury News, Sunday,
April 25, 1999).
Among the steamed purists was none other
than Eli Zabar of New York’s famous Zabar’s
Delicatessen, one of the prime sources of
genuine New York bagels along with H&H!
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 71
Bagel House Slogan
The slogan of the Bagel House in Sydney,
NSW, Australia, says it all:
“If it’s not boiled it’s not a bagel”
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 72
Trying to Optimize
These attempts to steam are clearly examples
of trying to find a cheaper way to achieve the
What than the standard How.
However, to date, no algorithm other than the
standard How has succeeded to achieve the
desired What.
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 74
How is Better than What
Here is an example in which a How
specification may be better than a What
specification. It is certainly simpler in the
sense that it is easier to tell what needs to be
done.
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 75
Discouraging Innovation
However, in opting for this How specification,
one is discouraging innovation.
However, in the case of the NY bagel, perhaps
innovation should be discouraged!
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 76
Test Specification
The third method of specifying, called the Test
method, is to use an acceptance test. For
bagels the standard test for bagelhood is:
“A genuine New York bagel can be used by a
baby for teething for at least 10 minutes
without its disintegrating into a ball of mush.”
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 77
Validity of Test
All the bagels that fail the surface yield and
interior moisture content specification fail this
test.
All the bagels, including the steamed ones,
made without boiling fail this test.
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 78
More Test Specifations
Another test is that chewing a genuine New
York bagel expends as many calories as are
ingested by eating the bagel.
Still another test is that only a genuine New
York bagel stands up to and does not get
squished by the Bagel Biter bagel cutting
guillotine.
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 79
Still More Test Specs
Still another test is that if you bite down on a
sandwich made with a genuine New York
bagel, the filling squishes out.
With a steamed bagel, the sandwich filling
does not squish out; thus, a steamed bagel
makes a GREAT bun!
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 80
Similarity of What and Test Specs
A Test specification is closer to a What
specification in the sense that it allows any
implementation that achieves the test.
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 81
Conclusions
Sometimes, a How specification is
significantly clearer or briefer than a What
specification.
Sometimes, a How specification is needed for
information that is not in a What specification.
It is really difficult to figure out that bagels
have to be boiled from the blueprint.
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 82
Use How if Appropriate
So, when it is appropriate to use a How
specification, do so without guilt and in good
health!
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 83
Acknowledgments
Thanks to Jo Atlee, Nancy Day, Martin
Feather, Mike Godfrey, Leah Goldin, Michael
Jackson, and Don Knuth for ideas,
discussions, and comments.
 2007 Daniel M. Berry
Requirements Engineering What, Not How? Pg. 84