Danny Dig and his Ph.D. student Semih Okur, along with international collaborators David Hartveld and Arie van Deursen, presented a paper at the prestigious International Conference on Software Engineering (ICSE’14) in Hyderabad, India last week, which won the ACM SIGSOFT Distinguished Paper Award. The companion website to the paper “A Study and Toolkit for Asynchronous Programming in C#” is an educational resource with examples from real code on how to use async constructs. The winning paper was one of three that Dig’s Ph.D. students presented at the conference which he said is more selective than the top journals in the field of software engineering. Oregon State students Caius Brindescu, Mihai Codoban, and Sergey Shmarkatiuk collaborated with him on the other projects presented at the conference.
Oregon State was also represented at the conference by Rahul Gopinath, Carlos Jensen, and Alex Groce who presented a paper, and by Margaret Burnett who gave an invited presentation.
“I am happy that OSU is so well represented at the top event in the field of software engineering,” Dig said.
Abstract of winning paper: A Study and Toolkit for Asynchronous Programming in C#
Semih Okur, David L. Hartveld, Danny Dig, and Arie van Deursen
University of Illinois at Urbana-Champaign, USA; Delft University of Technology, Netherlands; Oregon State University, USA
Asynchronous programming is in demand today, because responsiveness is increasingly important on all modern devices. Yet, we know little about how developers use asynchronous programming in practice. Without such knowledge, developers, researchers, language and library designers, and tool vendors can make wrong assumptions. We present the first study that analyzes the usage of asynchronous programming in a large experiment. We analyzed 1378 open source Windows Phone (WP) apps, comprising 12M SLOC, produced by 3376 developers. Using this data, we answer 2 research questions about use and misuse of asynchronous constructs. Inspired by these findings, we developed (i) Asyncifier, an automated refactoring tool that converts callback-based asynchronous code to the new async/await; (ii) Corrector, a tool that finds and corrects common misuses of async/await. Our empirical evaluation shows that these tools are (i) applicable and (ii) efficient. Developers accepted 313 patches generated by our tools.