Natural Sciences and Engineering Research Council of Canada
Symbol of the Government of Canada

Common menu bar links

Past Winner
2006 E.W.R. Steacie Memorial Fellowship

Gail Murphy

Computing and Information Science

The University of British Columbia


Gail Murphy
Gail Murphy

As the software that runs computer systems has become more sophisticated, so have the tools that software developers use to create these elaborate collections of electronic code. In fact, the latest generation of these tools are becoming powerful enough to keep track of the way they have been used in the past, so they can show these developers the best way to use them later on.

Dr. Gail Murphy, an associate professor in the University of British Columbia’s Department of Computer Science, is among the pioneers adding this latest dimension to the process of writing and revising software. And her innovative work should be welcomed by anyone confronting a jumbled assortment of code whose virtues, shortcomings, and very purpose may be nothing less than a mystery.

“You often end up in the situation where you have to understand a new part of the code base, or understand somebody else’s part of the code base,” she says. “You’re then faced with trying to dig around and find the information, and that’s just harder than it should be.”

Dr. Murphy and her colleagues have been addressing this problem, which frequently troubles developers dealing with “change tasks,” modifications to software that are necessary to fix a bug or add some new feature. These researchers have been working with software tools that keep track of when these modifications took place, so that someone else might be able to identify similarities to other situations.

While these types of tools are not necessarily new, Dr. Murphy’s team has assembled repositories of such information for members of the software development community to view, creating a valuable database that can be mined for practical recommendations to make change tasks proceed much more quickly and effectively.

And while those recommendations are currently based largely on similarities in the text, Dr. Murphy would like to significantly enhance that capability. As one of six 2006 NSERC Steacie Fellows, she plans to refine these systems to search for patterns of usage, so that the software could detect the pattern of activity performed by a developer and assist that activity automatically.

“The computer’s doing the work for you instead of you doing the work,” she says, noting that the challenge of this approach lies in learning more about the nature of these underlying patterns. “What I really want to understand is the way in which we work with information, if there are true patterns in that information then we could exploit them in recommending new information to developers.”

She credits much of the success of this work to the imagination and energy that many different students have brought to these efforts. Their camaraderie and lively interactions might seem inconsistent with the image many people have of software programming as an isolated, somewhat anti-social exercise, but Dr. Murphy insists the reality is quite the opposite.

“As professors we’re really in the people business, helping people understand how they can take their ideas and make them something that’s going to change the world,” she says.

This initiative also applies to working developers, more than 100 of whom agreed to participate in her research by providing details of their own change task activities, in exchange for a chance to work with what many anticipate will be a highly prized software tool.

“It’s intriguing enough technology that they were actually willing to send us their data in order to be the first users of it,” she explains, adding that this material has become a highly valued resource. “Having this statistical evidence over a field study is highly unusual in our area.”

Just how important this contribution might be is hinted at in the highly revealing names of these tools. The first, called Mylar, refers to the plastic film that serves as a filter to prevent blindness when viewing a solar eclipse. Similarly, says Dr. Murphy, Mylar addresses the blindness a programmer might suffer when looking at the vast amounts of information displayed by the open-source development environment called Eclipse.

Even more appropriate is another of her team’s tools, which draws on a development project’s past to make recommendations in the present. “It’s called Hipikat,” she says, “a West African word meaning ‘eyes wide open.’”