THE EVOLVING ROLE OF SOFTWARE
Today, software takes on a dual role. It is a product and, at the same
time, the vehicle for delivering a product. As a product, it delivers the
computing potential embodied 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 information
transformer— producing, managing, acquiring, modifying, displaying, or
transmitting information that can be as simple 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 (operating 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.,
Internet) 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, profound 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 complexity
can produce dazzling results when a system succeeds, but they can also pose
huge problems for those who must build complex systems.