Needles in a Haystack
The software systems we rely on today — from telephony and air-traffic control to X-ray scanners and automobiles — were written by thousands of developers over many years. During production of these complex systems, some of the millions of instructions have unintentionally gone awry, leading to software that behaves in unexpected and undesirable ways. Professor James A. Jones is a leading authority on research related to the process of finding, diagnosing and fixing these malfunctions, commonly known as bugs. “Software systems are often enormous, which makes debugging like finding needles in a haystack,” he says.
Automation of Elimination
Professor Jones creates automated approaches for finding bugs — faster, easier and with less cost than manual effort would entail. Essential to the task is understanding the nature of bugs, how they are introduced and how they behave. Professor Jones studies these characteristics and leverages what he learns to develop novel techniques for finding bugs. One resulting innovation is “Tarantula,” a software tool that can pinpoint buggy code automatically and accurately. “Tarantula highlights the locations in the code where the bugs are likely to be,” he says.
Reveal to Repair
In addition to finding bugs, Professor Jones also assists developers in diagnosing and fixing them. To this end, he is developing new techniques that reveal and help explain software’s labyrinthine internal mechanics as well as tools that identify the best developers to tackle the job. “One of the most important choices in debugging is deciding who should be assigned to find and fix the problem,” Professor Jones says. “A good choice can speed up the fix and ensure a quality patch.” As he puts it, “In the future, we will depend even more on software, so it’s imperative we make certain the underlying code is as bug-free as possible.”