Each year, Microsoft Research awards competitive grants to computer science academics through the Software Engineering Innovation Foundation (SEIF). In the first grant round, conducted in 2010, Professor David Notkin and his colleagues at the University of Washington were the recipients of one of the 12 awards for their proposal, “Speculation and Continuous Validation for Software Development,” which resulted in the project, “Crystal: Precise and Unobtrusive Conflict Warnings.” I’m pleased to announce that the achievements of Notkin and his colleagues are being recognized this month with an ACM SIGSOFT Distinguished Paper Award. The award will be presented at the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE) in Szeged, Hungary (September 5–9, 2011). I’d like to share some of this exceptional research with you today.
(From left to right) Reid Holmes, David Notkin, Judith Bishop, Michael Ernst, Yuriy Brun
About the Crystal Project
Collaborative development of large software projects can be hampered when conflicts arise because developers have created inconsistent copies of a shared file, Notkin explains. The Crystal approach is designed to help developers identify and resolve inconsistencies early, before those conflicts become severe—and before relevant changes fade from the developers’ memories. The Crystal paper presents three outcomes of the project:
- By studying open-source systems, the project team determined that inconsistencies or conflicts between copies of a shared file are frequent, persistent, and appear not only as overlapping textual edits, but also as subsequent build and test failures.
- They classified conflicts by using the novel technique of speculative analysis over version-control operations.
- They designed Crystal, a publicly available tool that uses speculative analysis to present concrete advice unobtrusively to developers, thereby helping them identify, manage, and prevent file version conflicts.
Notkin’s study spans nine open-source systems totaling 3.4 million lines of code. The conflict data is derived from 550,000 development versions of the system. The complete paper, which goes into great detail on all three points, plus other research that was conducted as part of the project, is available to read online.
The SEIF grants are just one way through which we continue to strengthen our support for outstanding university software engineering programs. These grants are intended to stimulate research in all aspects of software engineering, with an aim to cultivate interest in Microsoft Research tools and technologies. They also strengthen our ties to the university community.
In fact, one of the postgraduate students who worked on Notkin’s Crystal project, Kıvanç Muşlu, came to work for us as an intern. He was jointly mentored by Christian Bird and Tom Zimmermann of the Research in Software Engineering group (RiSE) and me. During his internship, Muşlu explored how Crystal’s principles could be expanded for use in a full industrial context. The testbed was the full Bing development history. The result of his work, a new tool called Beacon, will be deployed to Microsoft product groups in the near future. Like Crystal, Beacon can alert developers when code they are writing will conflict with changes to another branch of the code. By using Microsoft Lync, it can quickly put the developers of the two sections of code in touch so that they can resolve the conflict. The challenge was to make the system work in real time with the enormous number of files and developers involved in a system like Bing. We look forward to seeing more from Muşlu in the future.
—Judith Bishop, Director of Computer Science, Microsoft Research Connections
- Software Engineering Innovation Foundations Awards (SEIF)
- ACM SIGSOFT Distinguished Paper Award
- Crystal: Precise and Unobtrusive Conflict Warnings
- European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE)
- David Notkin’s personal website
- Computer Science at Microsoft Research Connections