Today, software takes on a dual role. It is a product and, at the same time, the vehi-
cle for delivering a product. As a product, it delivers the computing potential embod-
ied by computer hardware or, more broadly, a network of computers that are accessible
by local hardware. Whether it resides within a cellular phone or operates inside a
mainframe computer, software is an information transformer—producing, manag-
ing, acquiring, modifying, displaying, or transmitting information that can be as sim-
ple as a single bit or as complex as a multimedia presentation. As the vehicle used
to deliver the product, software acts as the basis for the control of the computer (oper-
ating systems), the communication of information (networks), and the creation and
control of other programs (software tools and environments).
Software delivers the most important product of our time—information. Software
transforms personal data (e.g., an individual’s financial transactions) so that the data
can be more useful in a local context; it manages business information to enhance
competitiveness; it provides a gateway to worldwide information networks (e.g., Inter-
net) and provides the means for acquiring information in all of its forms.
The role of computer software has undergone significant change over a time span
of little more than 50 years. Dramatic improvements in hardware performance, pro-
found changes in computing architectures, vast increases in memory and storage
capacity, and a wide variety of exotic input and output options have all precipitated
more sophisticated and complex computer-based systems. Sophistication and com-
plexity can produce dazzling results when a system succeeds, but they can also pose
huge problems for those who must build complex systems.
Popular books published during the 1970s and 1980s provide useful historical
insight into the changing perception of computers and software and their impact on
our culture. Osborne [OSB79] characterized a "new industrial revolution." Toffler
[TOF80] called the advent of microelectronics part of "the third wave of change" in
human history, and Naisbitt [NAI82] predicted a transformation from an industrial
society to an "information society." Feigenbaum and McCorduck [FEI83] suggested
that information and knowledge (controlled by computers) would be the focal point
for power in the twenty-first century, and Stoll [STO89] argued that the "electronic
community" created by networks and software was the key to knowledge interchange
throughout the world.
As the 1990s began, Toffler [TOF90] described a "power shift" in which old power
structures (governmental, educational, industrial, economic, and military) disinte-
grate as computers and software lead to a "democratization of knowledge." Yourdon
[YOU92] worried that U.S. companies might loose their competitive edge in software-
related businesses and predicted “the decline and fall of the American programmer.”
Hammer and Champy [HAM93] argued that information technologies were to play a
pivotal role in the “reengineering of the corporation.” During the mid-1990s, the per-
vasiveness of computers and software spawned a rash of books by “neo-Luddites”
(e.g., Resisting the Virtual Life, edited by James Brook and Iain Boal and The Future
Does Not Compute by Stephen Talbot). These authors demonized the computer, empha-
sizing legitimate concerns but ignoring the profound benefits that have already been
realized. [LEV95]
During the later 1990s, Yourdon [YOU96] re-evaluated the prospects for the
software professional and suggested the “the rise and resurrection” of the Ameri-
can programmer. As the Internet grew in importance, his change of heart proved
to be correct. As the twentieth century closed, the focus shifted once more, this
time to the impact of the Y2K “time bomb” (e.g., [YOU98b], [DEJ98], [KAR99]).
Although the predictions of the Y2K doomsayers were incorrect, their popular
writings drove home the pervasiveness of software in our lives. Today, “ubiquitous
computing” [NOR98] has spawned a generation of information appliances that
have broadband connectivity to the Web to provide “a blanket of connectedness
over our homes, offices and motorways” [LEV99]. Software’s role continues to
expand.
The lone programmer of an earlier era has been replaced by a team of software
specialists, each focusing on one part of the technology required to deliver a com-
plex application. And yet, the same questions asked of the lone programmer are being
asked when modern computer-based systems are built:
• 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?
These, and many other questions,1 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.
cle for delivering a product. As a product, it delivers the computing potential embod-
ied by computer hardware or, more broadly, a network of computers that are accessible
by local hardware. Whether it resides within a cellular phone or operates inside a
mainframe computer, software is an information transformer—producing, manag-
ing, acquiring, modifying, displaying, or transmitting information that can be as sim-
ple as a single bit or as complex as a multimedia presentation. As the vehicle used
to deliver the product, software acts as the basis for the control of the computer (oper-
ating systems), the communication of information (networks), and the creation and
control of other programs (software tools and environments).
Software delivers the most important product of our time—information. Software
transforms personal data (e.g., an individual’s financial transactions) so that the data
can be more useful in a local context; it manages business information to enhance
competitiveness; it provides a gateway to worldwide information networks (e.g., Inter-
net) and provides the means for acquiring information in all of its forms.
The role of computer software has undergone significant change over a time span
of little more than 50 years. Dramatic improvements in hardware performance, pro-
found changes in computing architectures, vast increases in memory and storage
capacity, and a wide variety of exotic input and output options have all precipitated
more sophisticated and complex computer-based systems. Sophistication and com-
plexity can produce dazzling results when a system succeeds, but they can also pose
huge problems for those who must build complex systems.
Popular books published during the 1970s and 1980s provide useful historical
insight into the changing perception of computers and software and their impact on
our culture. Osborne [OSB79] characterized a "new industrial revolution." Toffler
[TOF80] called the advent of microelectronics part of "the third wave of change" in
human history, and Naisbitt [NAI82] predicted a transformation from an industrial
society to an "information society." Feigenbaum and McCorduck [FEI83] suggested
that information and knowledge (controlled by computers) would be the focal point
for power in the twenty-first century, and Stoll [STO89] argued that the "electronic
community" created by networks and software was the key to knowledge interchange
throughout the world.
As the 1990s began, Toffler [TOF90] described a "power shift" in which old power
structures (governmental, educational, industrial, economic, and military) disinte-
grate as computers and software lead to a "democratization of knowledge." Yourdon
[YOU92] worried that U.S. companies might loose their competitive edge in software-
related businesses and predicted “the decline and fall of the American programmer.”
Hammer and Champy [HAM93] argued that information technologies were to play a
pivotal role in the “reengineering of the corporation.” During the mid-1990s, the per-
vasiveness of computers and software spawned a rash of books by “neo-Luddites”
(e.g., Resisting the Virtual Life, edited by James Brook and Iain Boal and The Future
Does Not Compute by Stephen Talbot). These authors demonized the computer, empha-
sizing legitimate concerns but ignoring the profound benefits that have already been
realized. [LEV95]
During the later 1990s, Yourdon [YOU96] re-evaluated the prospects for the
software professional and suggested the “the rise and resurrection” of the Ameri-
can programmer. As the Internet grew in importance, his change of heart proved
to be correct. As the twentieth century closed, the focus shifted once more, this
time to the impact of the Y2K “time bomb” (e.g., [YOU98b], [DEJ98], [KAR99]).
Although the predictions of the Y2K doomsayers were incorrect, their popular
writings drove home the pervasiveness of software in our lives. Today, “ubiquitous
computing” [NOR98] has spawned a generation of information appliances that
have broadband connectivity to the Web to provide “a blanket of connectedness
over our homes, offices and motorways” [LEV99]. Software’s role continues to
expand.
The lone programmer of an earlier era has been replaced by a team of software
specialists, each focusing on one part of the technology required to deliver a com-
plex application. And yet, the same questions asked of the lone programmer are being
asked when modern computer-based systems are built:
• 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?
These, and many other questions,1 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.
No comments:
Post a Comment