New research suggests that ideas from biology could be the key to quickly fixing problems in the large, highly co-evolved, and connected software systems we rely on in business, government, and academia.
Maintaining software costs some $70 billion annually just in the U.S., says SFI Science Board co-chair and University of New Mexico computer scientist Stephanie Forrest. Debugging programs is a major part of that cost.
It’s an overwhelming task for human programmers, who in some cases face hundreds of newly discovered glitches every day, she says. Worse, some of those bugs make software vulnerable to hackers.
Forrest and her colleagues are applying a biologically inspired approach to software debugging called “evolutionary computation” -- a kind of natural selection for software.
In effect, evolutionary computation starts with a glitchy program, creates a group of slight variations on the original, and keeps the best variations as part of the next generation of the program. Then, repeat until the software does what it’s supposed to do.
The Defense Advanced Research Projects Agency recently awarded Forrest and her collaborators $3.2 million over four years to develop the idea. The research is part of an emerging field that aims to create self-repairing programs -- known as automated software repair. Most methods fix only certain kinds of bugs or rely on ongoing, built-in checks that make software run slowly.
Evolutionary computation needs a few additional tricks to make it scalable, but unlike other approaches it works for a wide range of programs, and it’s surprisingly fast. The researchers looked at 16 programs and about 120,000 lines of code with a range of problems from infinite loops to buffer overflows. They found they could repair a program in under six minutes, on average. Humans would take considerably longer -- they would “at least have to read the code” first, Forrest says.
The DARPA grant will fund, among other projects, research on how hackers’ methods and evolutionary repairs of security vulnerabilities might co-evolve, Forrest says.
The ever-increasing size and complexity of software systems used in business, academia, and government was the subject of a recent SFI Business Network topical meeting in Boston, held at and co-organized by Fidelity Investments. The meeting brought together the latest academic research on software complexity with some of the concrete software complexity challenges industry faces.
More news from SFI’s Update newsletter