Page 35 -
P. 35

6             PART ONE  THE PRODUCT AND THE PROCESS


                          • Why does it take so long to get software finished?
                          • Why are development costs so high?
                          • Why can't we find all the errors before we give the software to customers?
                          • Why do we continue to have difficulty in measuring progress as software is
                            being developed?
                                                    1
                       These, and many other questions, are a manifestation of the concern about soft-
                       ware and the manner in which it is developed—a concern that has lead to the adop-
                       tion of software engineering practice.



                 1.2   SOFTWARE
                       In 1970, less than 1 percent of the public could have intelligently described what
                       "computer software" meant. Today, most professionals and many members of the
                       public at large feel that they understand software. But do they?
                          A textbook description of software might take the following form: Software is (1)
                       instructions (computer programs) that when executed provide desired function and per-
         ?  How should  formance,  (2) data structures that enable the programs to adequately manipulate infor-
            we define
         software?     mation, and (3) documents that describe the operation and use of the programs. There
                       is no question that other, more complete definitions could be offered. But we need
                       more than a formal definition.

                       1.2.1  Software Characteristics
                       To gain an understanding of software (and ultimately an understanding of software
                       engineering), it is important to examine the characteristics of software that make it
                       different from other things that human beings build. When hardware is built, the
                       human creative process (analysis, design, construction, testing) is ultimately trans-
                       lated into a physical form. If we build a new computer, our initial sketches, formal
                       design drawings, and breadboarded prototype evolve into a physical product (chips,
                       circuit boards, power supplies, etc.).
                          Software is a logical rather than a physical system element. Therefore, software
                       has characteristics that are considerably different than those of hardware:

                         1. Software is developed or engineered, it is not manufactured in the classical
                            sense.
         Software is
         engineered, not  Although some similarities exist between software development and hardware man-
         manufactured.  ufacture, the two activities are fundamentally different. In both activities, high qual-


                       1  In an excellent book of essays on the software business, Tom DeMarco [DEM95] argues the coun-
                          terpoint. He states: “Instead of asking ‘why does software cost so much?’ we need to begin ask-
                          ing ‘What have we done to make it possible for today’s software to cost so little?’ The answer to
                          that question will help us continue the extraordinary level of achievement that has always distin-
                          guished the software industry.”
   30   31   32   33   34   35   36   37   38   39   40