
Today, society relies on software-intensive information systems
to protect and manage commercial air travel, to operate
the electrical power grid, to file tax returns and even
to vote in national elections. These and other current
systems are so complex that their developers and users often find themselves
struggling to understand and control them.
The most complex of these systems are adopted with high
hopes, crossed fingers and sometimes controversy, as is the
case with e-voting systems. Security breaches, privacy violations
and "emergent properties" -- the technical term
for unexpected behaviors -- are regular and often unwelcome
results. Another grand challenge, and one which is an essential
piece of the other grand challenges presented here, is to
tame this complexity.
Research is needed to study and understand the system design
process, as well as to imbue large-scale software systems
with "self-help" capabilities.
The CISE directorate recently launched a science of design
program to focus on making the design of complex software
systems a more systematic and scientific process. Such a
design process, which extends far beyond the bounds of software
engineering, would ensure that developers can learn from
the failures, build on the experiences and replicate the
successes of the entire computing research and development
community.
"Self-help" systems will know how to configure,
maintain and repair themselves. The full scope of the Grand
Challenge will require research into learning and teamwork
so the parts of a complex system can learn about themselves
and reassess the best way to work together to accomplish
their goals. Meeting the challenge also demands new architectures
for computers and networks and new programming languages
and methods to allow developers to cope with millions or
even billions of program components.
Today, software remains largely a manual programming task,
much the same as it was in the 1950s. But with large systems
encompassing tens of millions of lines of code, the complexity
becomes unmanageable. In a nutshell, meeting this challenge
will require an overhaul of the way software is created, maintained
and used.
Return
to Overview
The Computing Research Association outlined five illustrative Grand
Research Challenges in a report resulting from a three-day
workshop supported by the National Science Foundation. The
grand challenges relate to building the information systems
of the future and provide long-term goals for the activities
of the research community.
|