Skip top navigation and go to page content
National Science Foundation
Computer & Information Science
next page Computing Home
next page More Research Overviews
Innolab 3D File Manager
This shot of the open-source Innolab 3D File Manager won first place in the Illustration category in the inaugural Science and Engineering Visualization Challenge, sponsored by NSF and the journal Science to recognize outstanding achievements by scientists, engineers, visualization specialists and artists in the use of visual media to promote understanding of research results and scientific phenomena.
Credit: Adam Miezianko, Karen Fung, Zavnura Pingkan, Kristopher Rambish.

The Taming of complexity
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.