Page 40 -
P. 40

CHAPTER 1  THE PRODUCT                                              11

                              hypertext and a variety of visual and audio formats). In essence, the network becomes
                              a massive computer providing an almost unlimited software resource that can be
                              accessed by anyone with a modem.
                              Artificial intelligence software.  Artificial intelligence (AI) software makes use
                              of nonnumerical algorithms to solve complex problems that are not amenable to
                              computation or straightforward analysis. Expert systems, also called knowledge-
                              based systems, pattern recognition (image and voice), artificial neural networks,
                              theorem proving, and game playing are representative of applications within this
                              category.


                        1.3   SOFTWARE: A CRISIS ON THE HORIZON?

                              Many industry observers (including this author) have characterized the problems
                              associated with software development as a "crisis." More than a few books (e.g.,
                              [GLA97], [FLO97], [YOU98a]) have recounted the impact of some of the more spec-
                              tacular software failures that have occurred over the past decade. Yet, the great suc-
               “The most likely way  cesses achieved by the software industry have led many to question whether the term
                for the world to be  software crisis is still appropriate. Robert Glass, the author of a number of books on
                destroyed, most
                experts agree, is by  software failures, is representative of those who have had a change of heart. He states
                accident. That's  [GLA98]: “I look at my failure stories and see exception reporting, spectacular fail-
                where we come in;  ures in the midst of many successes, a cup that is [now] nearly full.”
                we're computer  It is true that software people succeed more often than they fail. It also true that
                professionals. We
                cause accidents.”   the software crisis predicted 30 years ago never seemed to materialize. What we
                              really have may be something rather different.
                Nathaniel
                Borenstein      The word crisis is defined in Webster's Dictionary as “a turning point in the course of
                              anything; decisive or crucial time, stage or event.” Yet, in terms of overall software qual-
                              ity and the speed with which computer-based systems and products are developed,
                              there has been no "turning point," no "decisive time," only slow, evolutionary change,
                              punctuated by explosive technological changes in disciplines associated with software.
                                The word crisis has another definition: "the turning point in the course of a disease,
                              when it becomes clear whether the patient will live or die." This definition may give us
                              a clue about the real nature of the problems that have plagued software development.
                                                                                               2
                                What we really have might be better characterized as a chronic affliction. The
                              word affliction is defined as "anything causing pain or distress." But the definition of
                              the adjective chronic is the key to our argument: "lasting a long time or recurring
                              often; continuing indefinitely." It is far more accurate to describe the problems we
                              have endured in the software business as a chronic affliction than a crisis.
                                Regardless of what we call it, the set of problems that are encountered in the devel-
                              opment of computer software is not limited to software that "doesn't function


                              2  This terminology was suggested by Professor Daniel Tiechrow of the University of Michigan in a
                                talk presented in Geneva, Switzerland, April 1989.
   35   36   37   38   39   40   41   42   43   44   45