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.”