Learning from Software
- ISEC 2008
by
Andreas Zeller

Abstract

During software development and maintenance, programmers conduct several activities--tracking bug reports, changing the software, discussing features, or running tests. As more and more of these activities are organized using tools, they leave data behind that is automatically accessible in software archives such as change or bug databases. By data mining these archives, one can leverage the resulting patterns and rules to increase program quality and programmer productivity.

Analyzing software engineering data is, of course, a standard practice in empirical software engineering. What is new, though, is that we can now automate current empirical approaches. This leads to automated assistance in all development decisions for programmers and managers alike: "For this task, you should collaborate with Joe, because it will likely require risky work on the 'Mailbox' class."