Monday, October 14, 2013 - 4:00pm to 4:50pm
KEC 1001

Speaker Information

Danny Dig
Assistant Professor
School of EECS
Oregon State University


Change is the heart of software development. For example, software evolves to add features, fix bugs, support new hardware, new versions of operating systems and libraries, and new user interfaces. Unfortunately, programmers perform most software changes manually, through low-level text edits, which are almost never reused. This makes software development time-consuming, error-prone, and expensive. It is widely known that at least two-thirds of software costs are due to evolution, with some industrial surveys claiming 90%.

In this talk I will present our ever-growing toolset of interactive program transformations. It currently automates changes from the domains of parallelism, software upgrades, testing, and end-user programming. Our transformations do not require any program annotations, yet the transformations span multiple, non-adjacent, program statements. A find-and-replace tool can not perform such transformations, which require control- and data-flow analysis. Empirical evaluation shows that our toolset is useful: (i) it dramatically reduces the burden of analyzing and changing code, (ii) it is fast so it can be used interactively, (iii) it correctly applies transformations that open-source developers applied incompletely, and (iv) users prefer the improved quality of the changed code.

Speaker Bio

Danny Dig is an assistant professor of Computer Science in the School of EECS at Oregon State University. He enjoys doing research in Software Engineering in general and interactive program transformations in particular. He earned his PhD from the University of Illinois at Urbana-Champaign where his research won the best PhD dissertation award, and the First Prize at the ACM Student Research Competition Grand Finals. He did a postdoc at MIT where he opened the area of interactive transformations for parallelism. He (co-)authored 35+ journal and conference papers that appeared in top places in SE/PL. According to Google Scholar his publications have been cited 1,200+ times. He released 9 software systems, among them the world's first open-source refactoring tool. Some of the techniques he developed are shipping with the official release of the popular Eclipse and NetBeans development environments, and are used by millions of Java programmers everyday. He has started two popular workshops: Workshop on Refactoring Tools, and Hot Topics on Software Upgrades. His research is funded by NSF, Boeing, IBM, Intel, and Microsoft. More info can be found on his homepage: