sss ssss      rrrrrrrrrrr
                      ssss    ss       rrrr   rrrr
                     sssss     s       rrrr    rrrr
                     ssssss            rrrr    rrrr
                      ssssssss         rrrr   rrrr
                          ssssss       rrrrrrrrr
                    s      ssssss      rrrr  rrrr
                    ss      sssss      rrrr   rrrr
                    sss    sssss       rrrr    rrrr
                    s  sssssss        rrrrr     rrrrr
         +=======    Quality Techniques Newsletter    =======+
         +=======           November 2003             =======+

subscribers worldwide to support the Software Research, Inc. (SR),
eValid, and TestWorks user communities and to other interested
parties to provide information of general use to the worldwide
internet and software quality and testing community.

Permission to copy and/or re-distribute is granted, and secondary
circulation is encouraged by recipients of QTN, provided that the
entire document/file is kept intact and this complete copyright
notice appears in all copies.  Information on how to subscribe or
unsubscribe is at the end of this issue.  (c) Copyright 2003 by
Software Research, Inc.


                       Contents of This Issue

   o  FT-150 WebSite Comparisons

   o  On Being Competitive, by Boris Beizer

   o  SQRL Report: Formal Verification of Timed Transition Models

   o  Conference on E-Commerce Technology (CDC'04)

   o  eValid: A Quick Summary

   o  First International Workshop on Mobile Commerce and Services

   o  QTN Article Submittal, Subscription Information


                    FT-150 WebSite Comparisons


Does WebSite quality track with company size and reputation? How
well do big companies WebSites rank?  Can we learn something by
studying the technical properties of these big WebSites? By
comparing them, one against another? We did this -- using data
collected from the FT-150 (see below). We think you'll find the
results illuminating!

The compete report FT-150 is found at this URL:


We aimed to compare a set of WebSites for their technical quality as
measured from typical user's perspective. To accomplish this we
applied a set of tests of mechanical and technical features of each
WebSite that investigate two important WebSite quality attributes:
the ease of user navigation, and the quality of WebSite maintenance.
Here's how these are defined:

Ease of User Navigation [Qn]. This factor is a combination of the
average rate of download of pages, the depth of the pages within the
WebSite, and the number of successful page downloads. A high score
on ease of navigation means that users will be likely to have quick
responses as they work on the WebSite, and that as they work they
will find very few broken or unavailable pages.

Quality of WebSite Maintenance [Qm]. This factor is based on the
relative age of pages found on the WebSite combined in part with the
number of pages that are broken or unavailable. A well-maintained
WebSite has very-current information (young pages), and very
reliable information (no unreachable pages). Combined, a quality
score on these factors indicates that great care has been taken to
assure the quality of the information.

                       Crunching The Numbers

We used the eValid WebSite analysis engine, programmed as described
below, to collect specific metrics that contribute to these factors.
We put the data into a spreadsheet and massaged the data in a number
of ways.  For simplicity all the data values were converted to
normalized relative values. After computing the scores for the two
dimensions [0%-100%, with 100% being the best possible score for
that factor] we multipled the two values Qn and Qm to arrive at the
Total Quality Score = Qn * Qm, the value used to find the Quality


Here's what we found out!

  o Size Ranking. First, we computed the Quality Rank for all 150 of
    our candidate WebSites and showed these values in the table
    along with the measured percentage of broken/unavailable links
    (page return code 400 or greater), percentage of old pages
    (dated more than 2 days ago), and percentage of slow-loading
    pages (more than 2,000 msecs download time on a fast DSL). See
    the Corporate Size Rank FT-150 Results Chart. The top 12 entries
    of this table are shown below.

    150                             Percent Percent Percent Quality
    Rank    Company                 Broken  Old     Slow    Rank
     1      WAL-MART STORES         0.00%   13.73%  0.09%    44
     2      GENERAL MOTORS          43.00%  0.03%   0.08%   117
     3      EXXON MOBIL             10.00%  0.06%   1.26%    25
     4      FORD MOTOR              75.00%  3.97%   0.39%   147
     5      GENERAL ELECTRIC        0.00%   36.22%  1.00%   103
     6      CITIGROUP               0.00%   5.59%   0.19%    11
     7      CHEVRONTEXACO           0.00%   8.21%   0.22%    20
     8      IBM                     23.00%  5.66%   0.28%    87
     9      AMERICAN INTERNATIONAL  1.00%   10.84%  0.19%    32
    10      VERIZON                 47.00%  23.78%  0.12%   146
    11      ALTRIA GROUP            0.00%   5.80%   6.70%    31
    12      CONOCOPHILLIPS          1.00%   10.30%  0.00%    26

  o Quality Ranking.  Next, we sorted the same data table in
    decreasing Quality Rank order. See the WebSite Quality Rank FT-
    150 Results Chart. The top 12 entries of this table are shown

    150                             Percent Percent Percent Quality
    Rank    Company                 Broken  Old     Slow    Rank
    118     DUKE ENERGY             0.00%   1.60%   0.10%    1
    113     NORTHWESTERN MUTUAL     0.00%   0.40%   1.40%    2
     38     METLIFE                 1.00%   0.60%   0.70%    3
     65     NEW YORK LIFE           2.00%   0.60%   0.02%    4
     19     CARDINAL HEALTH         2.00%   1.60%   0.00%    5
     26     J.P. MORGAN CHASE       0.00%   3.67%   0.41%    6
     84     MASS. MUTUAL            0.00%   4.19%   0.13%    7
     93     AUTONATION              0.00%   4.35%   0.82%    8
    110     3M                      0.00%   4.55%   0.65%    9
     62     PEPSICO                 1.00%   1.60%   3.00%   10
      6     CITIGROUP               0.00%   5.59%   0.19%   11
     76     INGRAM  MICRO           0.00%   0.00%   6.00%   12

                     Observations and Comments

There are many aspects of this data that are surprising and unusual.
Here are some of our observations:

  o WebSite Quality IS Not Correlated With Company Size.  Clearly,
    WebSite quality is not apparently connected with company size.

  o The Biggest Companies Have The Biggest Problems. Some of the
    largest companies rank worst in terms of WebSite quality. Only
    one of the top dozen firms in terms of WebSite quality, was in
    the top dozen largest companies. Perhaps of more concern is the
    fact that, of the top dozen WebSites by company size, four
    actually rank in the lowest third of the WebSite quality
    ranking. Worse yet, two of the top 12 are very near the bottom
    of the list!

  o The Highest Quality Companies Are Not Known for IT Excellence.
    Only two of the top 12 quality WebSites are from companies which
    you would think of as in the "IT sector". It's interesting that
    of the top dozen quality ranked companies, four are insurance
    companies, and two are banks. Is there a message here?

  o There Were Some Big Surprises.  There were lots of surprises in
    the way the numbers turned out: AT&T ranked 148/150 and Cisco
    Systems ranked 123/150. Hewlett-Packard and Microsoft were
    nearly tied 91/150 and 92/150 -- close to the bottom of the
    middle third. IBM at 87/150 and Intel at 63/150 were also
    unexpectedly low scores. About Our Measurements We began our
    work in August 2003 when the UK's Financial Times newspaper
    asked BlueRiverStone and eValid to survey and compare the
    WebSites of the top 150 of Fortune Magazine's Fortune 500
    Companies. That survey involved both technical comparisons [this
    report] and other assessments [to be published].

To assure comparability of the technical analysis data, all the
eValid site analysis runs were made serially during normal working
hours on the same Windows 2000/Professional machine using a
dedicated 386 Kbps DSL.

The 150+ eValid runs were all limited (using eValid's site analysis
setup and control menus) to analyze only the first 1000 pages out to
depth 3 from the top page on the site. If you'd like to look at the
full set of eValid preferences used, the blocked URL file use, and
the complete set of raw data used in the above survey please let us


                        On Being Competitive
                            Boris Beizer

      Note:  This article is taken from a collection of Dr.
      Boris Beizer's essays "Software Quality Reflections" and
      is reprinted with permission of the author.  We plan to
      include additional items from this collection in future

      Copies of "Software Quality Reflections," "Software
      Testing Techniques (2nd Edition)," and "Software System
      Testing and Quality Assurance," can be purchased
      directly from the author by contacting him at

1. Perspective

1.1. Surfing on The Internet

Harassed by colleagues over my continued use of snail-mail, I
finally got Email service in 1993.  That may seem to be a long time
ago and that the frustrations I went through would not occur today.
But we professionals tend to forget such problems once we have
mastered them; and, more important, we forget that our users
continue to face the equivalent problems whenever we present them
with a new or substantially upgraded product.

What had seemed like an acceptable $35/year and easy installation
escalated.  Working at 2400 baud, I learned, was no more acceptable
than Morse code; so the modem had to be upgraded.  The new board was
the latest with smart compression and speeds to 56 kilobaud.  A
couple of test runs with the modem vendor provided trouble-free
operation at an incredible 54 KBD.  Wow!  But tell that to my
applications, my com package, and my Email vendor!  Six packages had
to be upgraded: which was especially frustrating because I couldn't
download the upgrades at better than 2400 baud until they had been
installed, naturally.  Then I had to research new modem control
sequences and telephone numbers for almost everyone I contacted.

A few weeks of fiddling around and everybody could talk at 2400 baud
again.  The Email sort of works at 9600 baud.  I say "sort of"
because when I tried to upload files there were so many
retransmissions that the effective rate was only 300 baud.  And I
was looking forward to real-time video on the information highway --
dream on.

That wasn't the whole cost -- just the beginning.  Four books and
directories: $124 and 50 hours of reading. Learn new jargon with new
buzzwords.  All kinds of neat services on the information highway
that I can't get.  Those I can, have connection charges that rival
the fuel consumption cost of the shuttle.

What did I gain with the new technology?  Instead of justified text
in the type font of my choice, I'm back to 10 point Courier, a hard
carriage return every 70 characters, and a text editor more
primitive than EDLIN.  I have a new chore now: check my Email
several times a day.  And people don't answer their Email with
greater alacrity than they answer faxes or snail mail.  Instead of
piling up on their desk, it piles up in their inbox.

My first tries at Email were pathetic.  It took a dozen shots to get
the first message through.  An attempted mailing list was worse: all
50 recipients were rejected.  Transmitting this essay also failed.
The electronic superhighway is missing entry ramps and it has
potholes big enough to swallow a trailer full of Pentiums.  It's
aptly called Internet surfing. Based on my own unsuccessful attempt
to learn wind surfing, it's about as difficult and equally
undignified -- you spend a lot of time floundering around, half
drowned, in the water.

1.2.  For What are We Competing?

The above confession seems to have little to do with software
quality and competitiveness.  But the experience is germane.  Think
of the time and the frustration it takes us professionals to learn
new software and then think of our users, most of whom can't
tolerate this special kind of self-inflicted abuse.  We should all
go through the experience of learning new software at least once a
year to keep a perspective on what our users go through and what
quality is really all about.

For what are we competing?  If you write shrink-wrapped software,
you're directly competing for market share.  If you work on embedded
software, your product is competing against alternatives.  If your
software is internal, you're competing against outsourcing.  Those
are the superficial aspects of competition as are "Japan," "the
EEU," "Indian programmers," "job-shoppers," and even "Microsoft."

Our notion of competition should be deeper.  If you think of
"competition" as just beating your rival in the marketplace (be that
rival the software company across the river or the country across
the ocean), then you'll lose.  You'll lose because such a narrow
view of competition leads to a struggle for short-term advantages, a
premature rush to market, software overloaded with marginally useful
gizmos, disdain for the user, and a fascination with technology for
the sake of technology rather than utility.  So, for what should we
compete?  Permanence and love.

1.3. Permanence

Permanence.  Look into yourself and recognize that you, as most
engineers before you, have an edifice complex.  We want our
creations to outlive us: be they pyramids, roads, cathedrals, or
word processors.  I've built lots of software over the years, but
which do I remember?  The software that's still running thirty years
later.  Every line of that software's been rewritten and rehosted a
dozen times, but the essential vestige of my contribution remains,
and that's what made the effort worthwhile.  Think of the
justifiably proud Roman road builder who, having traveled forward
through time, looks now at Italy's Autostrada.  If any of his stones
remain in the roadbed, they're buried beneath tons of concrete; but
he recognizes the topography and says, "I surveyed that route: it
was the right route then and they're still using it today."

But the software engineer's permanence is unlike the permanence of
our engineering predecessors.  The world's greatest assembler is an
anachronistic curiosity today.  Our permanence isn't the static
permanence of stone and steel.  It's the subtler permanence of
continually evolving DNA.  It is the permanence of change.
Permanence is achieved through adaptability to an ever-evolving
computational environment: to migrate from mainframe, to PC, to
network, to cyberspace, and even to hyperspace when that time comes.

1.4. Love

I love the Brooklyn bridge.  A hundred years later it is still doing
its job.  It is as beautiful as when the Roeblings, father, and son
and wife, built it.  I love it because it works.  Conceived in the
days of horse-drawn wagons and steam railroads, it still works for
rapid transit cars and 18 wheelers.  I love it and so does any
feeling person who sees it.  I've battled my way through downtown
Manhattan, and worse, downtown Brooklyn traffic just for the thrill
of going over it.

I have a very few software packages that I love.  And I don't mean
'like,' I mean 'love!'  I love their honesty, robustness,
forgiveness, and most of all, their anxiety-free use.  These
programs are loaded at startup and always appear as icons in the
lower-right corner of my screen.  They're so much a part of my
computing lifestyle that it's unthinkable not to have them.  The
vendors get my $59.95 every year.  If they told me tomorrow that the
package would no longer be sold, but had to be leased annually, I
would just ask:  "Where do I sign?"

We build utilitarian products, not merely beautiful and permanent
products.  Who needs a great bridge that leads to nowhere?  What use
is a permanent fiasco like the Aswan dam, that's all but destroyed
Egypt's agriculture?  We crave our users' love.  Wouldn't it be a
kick to read your Email one morning and learn that your subroutine
had been called 107 million times?

Our fickle users' love is hard-won and easily lost. Raw utility
isn't enough to earn and keep their love, especially if that utility
is bought at a cost of increased anxiety.  Bells, whistles, and
functionality gizmos will dazzle them for a while, but with whom do
you want to live out your retirement years?  Most people prefer
reliability, health, intelligence, and predictability over fleeting
physical beauty and dazzle in their spouses.  And even passionate
love, if continually irritated by disfunction, can turn to equally
passionate hatred.

2.  Who's Competing?

2.1.  Concentric Competition

We compete in three concentric circles.  In the outermost circle, as
a community of software developers and testers.  Within that, as
software producing organizations.  And finally and most important,
as individuals within organizations that are within a community.

2.2.  As A Community

The community is not your city, state or country.  Our community is
a world community of software developers, testers, and quality
assurance workers.  Against what, does this our community, compete?

The flip-side of "competition" is the possibility of displacement.
Can we conceive of a world without software?  To compete as a
community means that software itself must achieve permanence by
earning the users' love.  I'll grant you that we've got their
attention, but how about their love?

I'm not complacent about the permanence of software. The world could
exist without software as we know it. No technology is permanent.
And new technologies, such as software, are most vulnerable.
Technological displacement is not always that of an older technology
by a better: stone by copper, copper by bronze, bronze by iron, iron
by steel, and steel by carbon-epoxy. History has many examples of
societies that rejected new technology or even reverted to an older
one they had discarded in order to achieve the kind of life that
they sought.  Imperial China is a good example; they blocked
external technology for centuries.  The Romans had factories and
mass production that gave way to Medieval guilds and piece work.
Religious groups avoid technology out of conviction all over the
world today and have throughout history.  And California,
especially, has many  groups that choose a non-technological

"hhat choice do they have?" you might ask.  That's a rotten basis
for a relation: besides, they do have choices.  If the human costs
of the technological loose-cannon aren't relieved, society will live
without it.  If the ills of abusive software aren't cured, society
will learn to live without that too. Here are some possible societal

1.   Curtail Innovation.  Suppose, that in reaction to persistent
and debilitating Y2K problems our users forced an innovation
moratorium onto us out of desperation.  The software development
that remained could be done with far less labor than today.  What? A
world without innovation?  Without software innovation?
Unthinkable!  Neither unthinkable nor unprecedented.  Innovation
satisfies mostly the innovators.  "Innovation is fundamental" is a
Western myth, especially an American myth, of recent origin. Through
history, most societies have gotten along with very little

2.   Hardware Implementation.  Compiled hardware is an obvious
alternative.  Spend more on initial development, freeze the
functionality, restrict evolution, and sell the chips.  Sure cuts
into the job market for programmers doesn't it?

3.   Dump Technology.  Many science fiction stories explore non-
technological futures without computers and software.  Dune, by Hal
Clemens, is one of  the most chilling such exploration for us: all
computation is replaced by human "Mentats" and computers and
software as we know them, are outlawed on penalty of death.

As a community, we have a very messy act.  When we don't kill some
of our users outright, we do it more slowly through frustration.  If
we don't clean up our act, they will.  At the most benign, they, the
users and their voice, the politicians, will force ill-conceived
rules and standards on our work.  At the most extreme, they'll do
away with software altogether.

Our first goal must be to achieve permanence as a community of
developers, testers, and QA workers: to maintain our competitiveness
against the non-software and non-technological alternatives.

2.3.  As Organizations

Organizational competition is what people usually mean by
"competition."  Most notions of organizational competition are a
brand of naive social Darwinism:  survival of the fittest and all
that.  It's flimsy science to apply the methods and theories of one
domain to another by analogy.  Just because quarks are the
fundamental particles of physics, doesn't mean that "organizational
quarks" is a productive idea.  It sounds silly when I do it with
physics; it's as silly to argue by analogy from biology to
engineering. Survival of the organizationally fittest?  It doesn't
even work that way in nature.  Luck has as much to do with which
species survives as does fitness.  Humans are distinguished from
beasts in their ability to make their own luck -- evil or good.

The sports model is another mythological notion of competition.
Competition is seen as a game played on a level playing field
against a matched opponent.  It isn't a game.  The playing field was
never level, and as time passes, the field gets hillier.

"Competition" means that the user has alternatives. The likeliest
alternative isn't software that does the same thing, but doing
without.  The users' second alternative is a different way of doing
the job, not your competitors' product.  The least viable
alternative is your competitors' product.  If your organizational
notion of competition is to "out-Microsoft Microsoft," you've
already lost because the user will take one of the two other
alternatives first.

1.   Doing Without.  MS-DOS and COBOL aren't dead. While some users
may stick with unstylish technologies out of fear, many do it after
rationally evaluating their needs and what it costs to meet those
needs. The biggest competitor is not -- Sam's product is better than
yours --  but "Who needs it?"  What happened to:  flying
automobiles?  personal helicopter?  amphibious cars?  dedicated
egg-fryers?  Look at the reruns of Popular Science News films from
the '30's and '40's to see how many "indispensable" gadgets we've
learned to do without.

2.   Doing it Differently.  If the software's function is essential,
there may be another way of doing it. That's the second rank of
competition.  What happened to Western Union?  Do you remember
Telex?  Acoustic couplers?  TeleAutograph?  Morse code?  Semaphore
towers?   The pony express?  Steam engines?  Clipper ships?

The clipper ship is an example of doing it differently.  For all the
hoopla, the clipper ship era barely lasted two decades.  It was a
search for speed under sail at the expense of all other user needs.
They were very fast: they made records that weren't bettered for a
hundred years.  And recreational sailors today still try to beat the
records of those great romantic beasts.  But they had crews twice as
big as saner ships and they wore that crew out at twice the normal
rate.  And they were delicate.  Most didn't make more than a few
voyages.  Toward the end, they sacrificed cargo (and passengers, it
is told) overboard for greater speed because the money was made
betting on the race and not on shipping cargo.  The users, the
people who wanted to ship goods to and from California, told the
shippers off most eloquently. They chose slower, safer means of
transport. Eventually, they selected steamships: an even slower, but
even safer and less labor-intensive, technology.

Within our industry, we have examples of how software of one kind
was displaced by a different kind rather than by a competing product
of the same kind: special financial computation programs by
spreadsheets, assemblers by optimizing compilers, message switches
by Email, mainframes by networks.

3.   Going to a Competitor.   A  competitor is the users' last, and
least viable, choice.  They can't do without it and they haven't yet
recognized an acceptable displacement alternative.  Because they're
unsatisfied with your product, you'll lose to a direct competitor.
Actually, that's the most rational and easiest competition there is.
It doesn't take industrial espionage or rocket science to learn all
you need to know about your direct competitor's product and to
combat that product in the marketplace.
 You should do that, of course, but there are a few things you
should first confirm.

a.   Is it Your Competitor?  Often, organization X focuses on
seeming competitor Y for non-rational reasons.  Competitive
perception may be based on such things as: they are former employees
or associates (very common), a single bad experience in the past, a
fratricidal lawsuit.  Get an independent reality check on market
share.  Your biggest competitor has the biggest market share.
Period.  Your perceived worst competitor could really be your best
ally: and in these days of consolidation, that's especially
important.  Make sure, before you squander your energy or forego
strategic alliances, that your efforts are focused on your real
competitor rather than your emotional competitor.

b.   Users hate to change.  It's likelier to be something bad that
you're doing that drives your user to a direct competitor than
something great the competitor is offering that attracts them away
from you.  You've probably disappointed your users not once, but
often.  The competitor just happened to be around to cash-in on the
rebound.  If you don't face your own negatives, you'll never hold
your users.

c.    Even Playing Field?  It's only when the product is totally new
that the playing field is even.  That will become rarer in the
future as the market becomes saturated.  Our industry has matured.
With maturity comes concentration and the wholesale elimination of
smaller competitors.  The playing field, when it is level at all, is
only level for major league players. You're unlikely to win at their
game: you have to change the game.

2.4.  As Individuals.

The toughest competition is at the individual level. But, to
compensate for that, it's also the competition over which you have
the most control.  As individuals, you have three competitors.  Of
these, the least obvious and most difficult is yourself.

1.   The Other Guy.  "The Other Guy" is most frequently seen as the
individual competition: that other programmer or tester who's better
trained, luckier, more politically attuned, etc.  Sometimes it is
that way, but usually not.  Here again, the mythological sports
model does us in.  Another, perhaps closer myth is the entertainment
industry and talent competitions.  Software development is a
cooperative process.  You have to marshal the efforts of tens or
hundreds to achieve desired goals. Right-thinking managers look for
competent cooperators rather than individualistic superstars.  I
don't worry about the super-talented software superstars.  They're
statistically insignificant and you rarely meet them head-on.  When
I examine the jobs I didn't get over the years, it was usually
because of a mismatch between what I offered and their perceived
needs. Only a few times can I honestly say that I lost to "The Other
Guy."  And only once, rightfully, to a superstar.  Don't worry about
the other guy!  She's not your competitor.  Looking over your
shoulder at a supposed competitor detracts from your ability to do
competent cooperative engineering.  It deflects you from the need
for self-improvement.  Taken to extremes, it's paranoid.

2.   The Younger Guy.  We all get older.  As the industry matures,
the mean age of its participants increases.  Short-sighted bosses,
violating law and rationality, lay off older workers to hire younger
ones.  The motivation is obvious: entry-level salaries and fringe
benefit costs are lower: an attractive, if misbegotten, inducement
to employee turnover.  The rationalization most often given for such
action is that "the recent graduate is more up on the latest stuff."
It's easy to put the lie to that one, as you'll see below.

The younger worker does have an advantage: ignorance. He doesn't
know what doesn't work, so he tries anyhow.
 If you're closed to new ideas, that's your doing, not the younger
guys".  As professionals, we have a duty to be mentors to our new
colleagues.  To impart to them the wisdom we've earned that isn't in
the texts books.  To see them as welcome colleagues rather than

Don't short-change the most important talent you have:  experience.
Paul Newman, the actor, was also a Grand-Prix race car driver.  When
asked how he had beaten a field of 40 younger men in an important
race, he said: "Youth, stamina, and reaction time are no match for
the treachery of an old man!"

3.   Yourself.  You are your own stiffest competitor. You compete
with yourself when you lock-in to the successful formulas of the
past and become so enamored of your experience that you don't see
that the world has changed and that you also must change.  The
medical profession does one thing right: continuing education.  If
we are to build permanent products, it follows that you can't be do
next year what you did last year.  And if you're doing something
new, it's unlikely that you'll use the tools and methods that were
suitable last year.

3.  Maintaining Competitiveness

3.1.  Maintaining?

I wish that our concern were merely maintaining our competitiveness.
To maintain something, you first have to achieve it.

3.2.  As a Community

Here are some things that we can do, and equally important, stop
doing as a community to assure the permanence of software and to try
to earn some of that missing love.

1.   Standards.  We have no choice about standards. If we don't
create and follow them, the world will create them for us and force
us to use them -- no matter how ill-conceived or inappropriate those
standards might be.  I read that the Japanese representative to the
ISO 9003 committee asked how many participants (besides himself) had
any personal experience in software development.  The answer was
appalling. Other than the Japanese and a handful of Americans and
Germans, no one involved had any software experience at all.  Yet
they blithely set a standard that may saddle us for decades.

The lesson is crucial and the message is clear. Either we do it, or
they will.  We know how good software should be developed.  We know
the tools to use.  It's time we stopped balking at standards for
some momentary advantage over a supposed competitor. It's time we
accelerated the poky standardization process.  It's time to boost
the standards to reflect what they should be, the best accepted
practices rather than the least common denominator.

Standards are a community affair, but organizations and individuals
take action.  Stop looking for ways to end-run or avoid the
standards and start finding ways to implement them, and more
important, to bring them to the level of excellence they must have
if we're not to have worse standards imposed on us.

2.   Stop the Features Wars.  Learn from other industries.  You
can't escalate feature upon feature without end.  You won't compete
by putting in yet more gizmo that users don't want and don't
understand. That software evolution direction has run its course.
Stop trying to make every package be everything to everyone.  We
don't need a word processor in a spreadsheet or a spreadsheet in a
word processor. Pick a sharply defined set of related tasks and seek
excellence at those.  Remember the amphibious car and the convert-
a-plane.  There are better alternatives to market penetration than
fratricidal feature frenzy.

3.   Stop the Model Years.  Remember the automotive industry's
annual model frenzy?  As long as they were trying to come out with
something radically new each year, what we got instead of excellence
was tail fins and rearranged chrome lumps.  The Japanese did away
with model years so they could concentrate on sound engineering and
continual improvement.  We have our model years.  The annual release
frenzy and COMDEX. Start products with an arbitrary release number,
such as 4.37.  Don't promise radical changes and don't make them.
All releases become maintenance releases with only minor,
controlled, gradual, changes.   A new, thoroughly tested, but
unannounced release every three or six months that's untied to media
events such as COMDEX.  Maybe then we'll make schedules we can keep.

4.   Rational, Rather than Fictional, Pricing. Software isn't free.
Neither is service.  Neither should upgrades be.  This change,
happily, is ongoing.
 Get used to 900 numbers for service.  Get used to paying $29.95 for
release download.  As a community, do what we can to get the users
to accept this reality.

5.   Debunk the Software Myths.  Software was never perfect and
never will be.  Stop feeding the press and users with myths such as:
"If only one character is wrong, the whole thing's bad."  Stop lying
to them and to ourselves about bugs.  If we don't change the users'
expectations about bugs, they'll hold us to an impossible task and
then hate us when we fail.

6.   Cooperate.  Community level cooperation through the interchange
of ideas, methods, and standards, is essential.  That cooperation is
expressed by organizations, but starts with individuals.

3.3.  As Organizations

If, in this section, I seem to be speaking only to commercial
software vendors (e.g., for PC software), I'm not.  The commercial
software vendor is the best model for exploring competitive issues
because issues are clearer.  But the internal software  developer
such as the MIS shop is also a "vendor."  Remember, the internal
"vendor" can be displaced by doing it differently -- by going to an
outside, commercial, software vendor.  What can the organization do
to assure its continuance as a viable competitor?

1.   Satisfy their needs.  Earn their love by satisfying their
needs.  Remember, their first choice is doing without, the second
choice is doing it differently, and only rarely do you lose to your
direct competitor.  To satisfy their needs you have to learn them.
It isn't done by consuming martinis at COMDEX and listening to your
direct competitors' hype.
 Use public opinion polling methods and experts. Create and
administer bias-free questionnaires. Instrument your software so you
can gather user-profile data.  Do professional usability testing
(two way mirrors, video cameras, industrial psychologists, and all
that).  But don't forget that what they want and need most is
anxiety-free products that really works.

2.   Real Cost Accounting.  Most software developers don't know what
software really costs.  You need end-to-end, honest, cost accounting
so you can associate a true cost with every line of code and every
feature.  Most cost-accounting practices for software today are
driven by tax laws and the stock market instead of engineering
reality.  Such practices distort true costs.  Without costs, you
can't evaluate benefit. And without that, you can't decide where to
put your limited financial and human resources.  The usual
consequence of cost ignorance is not the wrong decision, but no

3.   You can't have it all.   There'll never be another Microsoft or
another Bill Gates.  And even Bill Gates doesn't believe that
Microsoft can have the whole software industry.   Do your thing and
do it well.  Do it very well.  If you're destined to become the
Microsoft of the 21st century, it will probably happen with or
without your attempting it -- more likely without.

4.   Realistic Product Goals.  No feature wars for the industry and
no feature wars for you.  Push reliability, ease of use, hassle-free
installation, and excellent service, instead of chrome bumps and
tail fins.  No more multi-function, do-everything products.

5.   Exploit Technology.  Most tool vendors would be delighted if
they only had to slug it out with direct competitors.  Most of their
sales effort is in selling the idea of the tool, rather than their
version of it.

Commercial technology that can reduce your software development and
testing labor content, and therefore improve your productivity and
competitiveness is out there begging to be exploited.  And, if
you've already incorporated such tools into your process, then there
are scads of research tools waiting to be commercialized.  What
hinders development of commercial tools, especially test and quality
tools, is an unwillingness of organizations to invest in them.  They
wont be commercialized until the tool vendors perceive a market.
How about saying to your favorite tool vendor: "You know, if you
brought out a firewall test maintenance tool, I'd love to be a beta

6.   Stop Schedule Fiction.  If you're not regularly meeting your
schedules, you're not schedule-driven, but panic-driven.  With
excellent  tools such as COCOMO and minimal record keeping, there's
no excuse to not meet realistic schedules.  If you're not fighting
the feature wars, not building for media hype, and have set rational
goals for each release, then you can meet schedules.  Not just
occasionally, but always.

7.   Education.  The cost of the tool is the least of it.  Tools
will be shelfware if workers aren't educated in their use.  That
education is in several parts and you need all the parts.  The
biggest cost of education is not the bucks you spend, but the time
your people spend. The education they need, from least to most
important, are:

a.   Formal General Education.  Organizationally paid graduate
courses is a typical format for this. Workers need general
background education to learn concepts that are prerequisite to
understanding new technology.  If you want to learn about finite-
state machines and data flow, for example, a graduate course is
probably the best place.  Such education is valuable, in a diffuse
sort of way, but changes very slowly.  Contrary to popular myths,
formal education is usually ten or more years behind practice.

b.   Industrial Seminars.   Seminars on a restricted topic such as
quality assurance, testing, or object oriented design.  This
education bridges the gap between formal education and practice.  By
nature, industrial seminars are more reactive and up-to-date.

c.    Technology Specific Training.   Don't expect your people to
learn a new, powerful, but complicated technology without training.
Pick vendors who offer specific, hands-on training on their
products.  And don't be upset if the training costs as much per seat
as the tool itself.  Eventually, when you build up a cadre of savvy
tool users, you can do this training yourself.

d.   Brown Bag Sessions.  Get the local internal experts to tell the
rest about how they  applied method X or tool Y and what they
learned.  This is cheaper and more valuable than any external

e.   Screwing Around Time.  The most important (and most expensive)
training of all is the worker's self-training.  I call it "screwing
around time," because it looks like that's what they're doing; but
looks are deceiving.  They're going through the very difficult
process of internalizing a new idea.  Even a simple capture/playback
tool needs a few weeks of screwing around time.  More complicated
tools and methods need more time.  Such things aren't optional in
the armed services.  They say: "You will learn tool X or Method Y if
you want to be promoted."  And they're given the time and resources
needed to become fully capable.  This time is, of course, considered
in any schedule.

7.   Exploit Research.  There's been much excellent research done in
testing, in quality assurance, in maintenance, and all the rest, but
it lies fallow and unused.  The most common criticism I hear about
such research is that it was done on "toy software" rather than the
real thing.  But our brilliant researchers aren't given the
opportunity to try it on something real.  You want to get the drop
on your direct competitor?  Adopt a researcher or endow a chair.
Bring a smart graduate student (and/or his professor) in for the
summer.  Both they and your staff  will be better for it.  They'll
adapt their research prototype to your environment, train your
people in their use, all for pennies (even janitors cost more than
graduate students).  For the price of a minor irritant and a few
thousand bucks you get a three-year head start.

8.   New Directions.  If feature wars stop, what keeps them buying
our product every year?  Once they've learned the product, why do
they need to buy our training?  You talk about product permanence
but where's our job permanence?  The answer is that software must
evolve in new directions.  Software evolution parallels hardware
evolution.  Hardware, at first, evolved with ever fancier and more
complex instruction sets (and correspondingly more complicated
control logic).  RISC (Reduced Instruction Set Computers) emerged
because a careful look at instruction usage statistics showed that
the complexity was misplaced.  With a simpler instruction set built
over a  more powerful infrastructure (stacks, registers, busses,
virtual memory support, etc.) it was possible to achieve higher
performance at a comparable cost.  The same has been happening to
software.  Ever-increasing complexity (feature wars), built over the
same old infrastructure.  An analogous revolution is needed (and  is
ongoing) in software.

My crystal ball is very hazy so I can't give you a definitive list
of alternatives for the new direction.
 I'll discuss those I can see for the moment, which to some extent
or another, have been appearing in commercial software in the past
decade.  I'm confident that once people recognize that new
directions are possible and essential, then there'll be so many
options that it will be difficult to choose among them.  Here, based
on current trends in commercial software, are some possibilities:

a.   Smart Software.  This software learns how people use the
product and modifies itself to better match that usage.  Some
examples: rearranged menus to bring the most frequently used
features to the top level; automatic default option definitions;
suggested alternatives that the user hasn't learned; automatic macro
construction and installation.  All these, in one form or another,
exist in some commercial products.  This is a new direction because
it creates adaptive software that continually and automatically
improves its utility and quality.  And we've only scratched the
surface.  Look for expert systems driven by user statistics.

b.   Smart Customer Service.  I don't know about you, but if they're
going to charge me $2/minute for 900-hot line service I surely don't
want to waste that time reading out my  AUTOEXEC.BAT file to some
novice line-by-line.  My call to the hot line is made from within
the application and all pertinent configuration data (my name,
account number, operating system, hardware, drivers, etc.) are
automatically uploaded before the meter starteverybody has to have a
modem to get service.  I access this through my HELP menu. Once
they've got the data, they call me when a qualified service rep is
available.  No more waiting for hours on hold while listening to
music I hate. Announce this (really cheap) upgrade when you announce
the 900 line policy to ease the pain.

c.    Object Linking Standards.  Whether it's Microsoft's OLE or one
of a few comparable standards for porting data across applications,
this will become the norm.  It will get rid of the import/export
hassle (except for older software).   It will rid us of a redundant
spell-checker in every application and other consequences of multi-
functionality.  How many megabytes will that save, I wonder?  People
will buy upgrades for this alone.

d.   End of the Paper Instruction Manual.  The only reason for paper
instruction manuals these days is as a deterrent to piracy.  That's
no longer valid. CD-ROM is effectively mandatory and can say goodbye
to paper manuals.  Help files are getting bigger and better.  But
they're still not where they should be (really good indexes,
hypertext, complete bug lists, workarounds, etc.).  Help systems
must cover every feature provided by the package, not just the most
popular features.  If you charge for customer service, you have to
provide good help systems.  A CD-ROM with a few hundred megabytes
can do that.  It saves on junk calls during the warantee period,
it's cheaper to manufacture and ship than paper.  And it's no hassle
to pop in the CD to get more detailed help.

How about some real tutorials instead of the sugar-and-spice
confections we get now?  Three levels, at least: novice,
intermediate, advanced.  The novice level is the junk we have today,
that assumes that you know nothing (for example) about computers,
word processing, or Windows.  The next level assumes you know all
three and leads you through specific examples of doing the things
(based on statistics and usability testing) that most users new to
the product need to learn.  The advanced level is keyed to the help
files and provides at least several worked examples for every
feature and for the most common feature combinations.   Where
possible and effective, interactive lessons with correction and
feedback (written for adults, please)?

e.   Bullet Proofing.  We can live with crashes if data aren't lost
or corrupted and if recovery is painless. Add 10% to 20% to the
software to make it bulletproof, both from internal bugs and from
being stepped on.  We've known how to do this for on-line systems
for years.  Expect to see more of this stuff in ordinary software.

f.    Automated User Profiles.  Automated profiling doesn't benefit
the user directly.  Indirectly, however, when such data are gathered
and collated from many users, and used to guide the design, the
result is a refinement of the software that the user will be happy
to pay for, even if there are no fancy new features.

g.   Automated Bug Reporting.   Every restart/recovery provides some
data about the bug that caused it, whether it's an internal bug or
whether some other software stepped on you.  Gather that data and
report it directly into the anomaly tracking system via an 800 line
and the modem that everyone has.  Again, not a direct benefit, but a
long-term, indirect benefit.

3.4.  As Individuals

What can you do to increase your personal competitiveness?

1.   Education.  The education options listed under organizational
strategies for competitiveness also apply to individuals.  If your
organization provides them, great: exploit those opportunities.  But
if the employer doesn't provide them, you must take the initiative.
You can't afford to risk your career on the policies of any one
employer.  At least be sure to include education options in how you
rate your existing or prospective employer.   Take night course,
read books, read technical journals, join engineering societies and
attend local chapter meetings.  Set yourself an annual self-
education goal: "This year I'll learn all about . . . "  An evolving
profession means lifetime education -- of which, self-education is
the most difficult but most valuable.  "He who does not increase his
knowledge decreases it.  If I am not for myself, who is?"

3.       Championship.   We don't lack technology that can make us
more competitive: we lack technology champions.  Technology doesn't
get deployed in an organization by magic or by management dictate.
It gets deployed only when it has champions.  If you aren't going to
champion new technology, who will? "And if not now, when?"


SQRL Report No. 17:  Formal Verification of Timed Transition Models
by Hong Zhang

Abstract:  Labeled Transition Systems (LTSs) are used to express
specifications and implementations of software. State-Event Labeled
Transition Systems (SELTS's) extend LTS's by adding a state output
map and an event map. A Timed Transition Model (TTM) is a timed
extension of SELTS. The extension involves lower and upper time
bound constraints and transitions, that relate to the number of
occurrences of the special transition tick. A TTM can be described
as a SELTS with a timer attached to each different transition, so
that we can specify the time requirements of the model. This thesis
gives the definitions of invariants, strong equivalence and weak
equivalence for SELTSs and TTMs in PVS. It also provides a unified
modeling environment for SELTSs and TTMs in PVS which allows the
user to specify them easily.  Further, the thesis illustrates the
use of the modeling environment in PVS to prove invariants, weak
equivalence and strong equivalence of SELTSs and TTMs by providing
one example in each category. Finally we use our modeling
environment to formalize and verify the correctness on an industrial
real-time controller.

Our method has the advantage that is simplifies the procedure for
translating SELTSs and TTMs into PVS. A disadvantage is that it
still needs a number of interactions between the user and PVS,
although some of theses could be considered as routine work.

The web address for downloading reports is:


            Conference on E-Commerce Technology (CEC'04)
                           July 6-9, 2004
              Westin Hotel, San Diego, California, USA

Sponsored by IEEE Computer Society Task Force on Electronic Commerce
California Institute for Telecommunications and Information Technology

IEEE CEC'04 is the 6th annual event (formerly WECWIS) and the primary
forum for the exchange of information regarding advancements in the
state of the art and practice of e-commerce technology and Web-based
information systems.

CEC'04 will consist of tutorials, invited talks, paper
presentations, panel discussions and workshops. Submissions of high
quality papers describing mature results or innovative work are

Topics for submission include but are not limited to:

* Business process integration and management
* Business intelligence, decision support and data mining in e-commerce
* E-Commerce architecture and enabling technologies
* E-procurement and auction systems
* Grid services and service-oriented software architectures
* Intelligent e-commerce system & agents
* Multimedia web services & applications
* P2P & its application in e-commerce
* QoS e-commerce support & monitoring
* Real-time Internet technologies and scheduling protocols
* Security & trust issues in e-commerce
* Transaction & work-flow management
* Web services & middleware

General Chairs:  Mei-Chun Hsu, CommerceOne Liang-Jie Zhang, IBM

Program Chairs:  Martin Bichler, Technical University of Munich
Jen-Yao Chung, IBM


                      eValid: A Quick Summary

Readers of QTN probably are aware of SR's eValid technology offering
that addresses website quality issues.

Here is a summary of eValid's benefits and advantages.

  o InBrowser(tm) Technology.  All the test functions are built into
    the eValid browser.  eValid offers total accuracy and natural
    access to "all things web."  If you can browse it, you can test
    it.  And, eValid's unique capabilities are used by a growing
    number of firms as the basis for their active services
    monitoring offerings.

  o Functional Testing, Regression Testing.  Easy to use GUI based
    record and playback with full spectrum of validation functions.
    The eVmanage component provides complete, natural test suite

  o LoadTest Server Loading.  Multiple eValid's play back multiple
    independent user sessions -- unparalleled accuracy and
    efficiency.  Plus: No Virtual Users!  Single and multiple
    machine usages with consolidated reporting.

  o Mapping and Site Analysis.  The built-in WebSite spider travels
    through your website and applies a variety of checks and filters
    to every accessible page.  All done entirely from the users'
    perspective -- from a browser -- just as your users will see
    your website.

  o Desktop, Enterprise Products.  eValid test and analysis engines
    are delivered at moderate costs for desktop use, and at very
    competitive prices for use throughout your enterprise.

  o Performance Tuning Services.  Outsourcing your server loading
    activity can surely save your budget and might even save your
    neck!  Realistic scenarios, applied from multiple driver
    machines, impose totally realistic -- no virtual user! -- loads
    on your server.

  o Web Services Testing/Validation.  eValid tests of web services
    start begin by analyzing the WSDL file and creating a custom
    HTML testbed page for the candidate service.  Special data
    generation and analysis commands thoroughly test the web service
    and automatically identify a range of failures.

  o HealthCheck Subscription.  For websites up to 1000 pages, eValid
    HealthCheck services provide basic detailed analyses of smaller
    websites in a very economical, very efficient way.

  o eValidation Managed Service.  Being introduced this Fall, the
    eValidation Managed WebSite Quality Service offers comprehensive
    user-oriented detailed quality analysis for any size website,
    including those with 10,000 or more pages.

       Resellers, Consultants, Contractors, OEMers Take Note

We have an active program for product and service resellers.  We'd
like to hear from you if you are interested in joining the growing
eValid "quality website" delivery team.  We also provide OEM
solutions for internal and/or external monitoring, custom-faced
testing browsers, and a range of other possibilities.  Let us hear
from you!


               The First IEEE International Workshop
               on Mobile Commerce and Services (WMCS)

The wide deployments of wireless networks and the explosive growth
in the number of mobile users have created a very strong demand on
burgeoning mobile commerce applications and variety of mobile
services that deliver contents. According to Nokia, there are 1.4
billion mobile phone users in the world and the number is increasing
rapidly. In Europe and Asia, transactions of mobile commerce and
services are reaching billions of dollars per year. The First IEEE
International Workshop on Mobile Commerce and Services (WMCS) is the
forum to discuss innovative ideas in creating cutting edge mobile
commerce systems and wireless information services, and to exchange
information regarding advancements in practice of mobile commerce
and services. The target audiences will be researchers, scientists,
software architects, and industry professionals who need to be
acquainted with the state of the art technologies and the future
trends in mobile commerce and wireless information ser! vices. The
event will take place in San Diego, California, USA on July 6 2004.
IEEE WMCS 2004 will be held in conjunction with The International
Conference on Electronic Commerce (IEEE CEC 2004).

Topics of interest include but are not limited to the following:

    Wireless application system infrastructures for mobile
    commerce systems and wireless services applications

    Mobile portals, context-aware and location-based
    mobile commerce and services

    Novel mobile commerce applications and mobile services

    Mobile commerce middleware and frameworks

    Workflow management and business processing for mobile
    commerce and information services

    Agents for mobile commerce and services

    Mobile database systems and transaction services

    Security and privacy in mobile commerce and services

    Mobile payments protocols and systems

    Mobile web enterprise systems and services

    Wireless advertising systems and marketing solutions

    Case studies and first-hand experience reports in
    mobile commerce and information services

Workshop Co-chairs:

Jerry Gao, San Jose State University

Simon Shim, San Jose State University


    ------------>>> QTN ARTICLE SUBMITTAL POLICY <<<------------

QTN is E-mailed around the middle of each month to over 10,000
subscribers worldwide.  To have your event listed in an upcoming
issue E-mail a complete description and full details of your Call
for Papers or Call for Participation to <>.

QTN's submittal policy is:

o Submission deadlines indicated in "Calls for Papers" should
  provide at least a 1-month lead time from the QTN issue date.  For
  example, submission deadlines for "Calls for Papers" in the March
  issue of QTN On-Line should be for April and beyond.
o Length of submitted non-calendar items should not exceed 350 lines
  (about four pages).  Longer articles are OK but may be serialized.
o Length of submitted calendar items should not exceed 60 lines.
o Publication of submitted items is determined by Software Research,
  Inc., and may be edited for style and content as necessary.

DISCLAIMER:  Articles and items appearing in QTN represent the
opinions of their authors or submitters; QTN disclaims any
responsibility for their content.

TRADEMARKS:  eValid, HealthCheck, eValidation, TestWorks, STW,
STW/Regression, STW/Coverage, STW/Advisor, TCAT, and the SR, eValid,
and TestWorks logo are trademarks or registered trademarks of
Software Research, Inc. All other systems are either trademarks or
registered trademarks of their respective companies.

        -------->>> QTN SUBSCRIPTION INFORMATION <<<--------

To SUBSCRIBE to QTN, to UNSUBSCRIBE a current subscription, to
CHANGE an address (an UNSUBSCRIBE and a SUBSCRIBE combined) please
use the convenient Subscribe/Unsubscribe facility at:


As a backup you may send Email direct to <> as follows:

   TO SUBSCRIBE: Include this phrase in the body of your message:
           subscribe <Email-address>

   TO UNSUBSCRIBE: Include this phrase in the body of your message:
           unsubscribe <Email-address>

Please, when using either method to subscribe or unsubscribe, type
the <Email-address> exactly and completely.  Requests to unsubscribe
that do not match an email address on the subscriber list are

               Software Research, Inc.
               1663 Mission Street, Suite 400
               San Francisco, CA  94103  USA

               Phone:     +1 (415) 861-2800
               Toll Free: +1 (800) 942-SOFT (USA Only)
               FAX:       +1 (415) 861-9801
               Web:       <>