Danny Dig is an associate professor of computer science in the School
of EECS at Oregon State University, and an adjunct professor at University of Illinois.
He enjoys doing research in Software Engineering, with a focus on
interactive program transformations that improve programmer productivity and software quality.
He successfully pioneered interactive program transformations by opening the field of refactoring
in cutting-edge domains including mobile, concurrency and parallelism, component-based, testing, and end-user programming.
He earned his Ph.D. from the University of Illinois at Urbana-Champaign where his research
won the best Ph.D. dissertation award, and the First Prize at the ACM
Student Research Competition Grand Finals. He did a postdoc at MIT.
He (co-)authored 50+ journal and conference papers that appeared in top
places in SE/PL. According to Google Scholar his publications have been
cited 2400+ times. His research was recognized with 5 best paper awards at the flagship and top conferences in SE (FSE'16, ICSE'14, ISSTA'13, ICST'13, ICSME'15),
4 award runner-ups, and 1 most influential paper award (N-10 years) at ICSME'15. He received the NSF CAREER award, the Google Faculty Research Award,
and the Microsoft Software Engineering Innovation Award (twice).
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, NetBeans, and Visual Studio development
environments (of which Eclipse alone had more than 14M downloads in 2014).
He has started two popular workshops: Workshop on Refactoring Tools, and
Hot Topics On Software Upgrades, both had at least five instances. He
chaired or co-organized 14 workshops and 1 conference (MobileSoft'15),
and served as a member of 35 program committees for all top conferences in his area. His
research is funded by NSF, Boeing, IBM, Intel, Google, and Microsoft.
Successful software undergoes constant change. My research addresses two important questions:
Over the years I have successfully automated program transformations to (i) retrofit parallelism into sequential code, (ii) improve responsiveness of mobile apps, (iii) upgrade component-based applications, (iv) update obsolete tests, (v) make end-user programs easier to change.
- What changes occur most often in practice?
- How can we automate them to improve programmers' productivity and software quality?
General interests:- automated refactoring, interactive program analysis and transformation,
design & architectural patterns, and broadly interested in concurrency and parallelism, mobile computing, software development processes, program analysis, software testing, and software evolution
- our research on detecting async errors in .NET programs now ships with the official release of Microsoft Visual Studio
- my ICSM'05 paper wins the Most Influential Paper Award (N-10 years) at ICSME'15. The citation reads "The ICSM'05 paper has had the most impact and has stood the test of time best, it has had a profound influence on the upcoming field of API analysis."
- our refactorings that empower Java programmers to use lambda expressions are shipping with the official release of the NetBeans IDE.
- PhD research on record-and-replay of API-level refactoring ships with the official release of the Eclipse IDE and are used by millions of Java developers.
- the automatic inference of refactorings has been used at large companies like Google and IBM, and dozens of research labs.
- our ASTGen test generation framework is used in the testing infrastructure at Oracle.
- empirical studies (one and two) on usage of concurrent libraries have influenced the development of the official libraries in .NET and Java.
- our resource on learning parallelism in .NET receives more than 150,000 visitors.
- many years ago I developed the world's first open-source refactoring engine for Java, and was downloaded over 17,000 times.
- Google Faculty Research Award (twice: in 2017 and 2015)
- IBM Best Paper Award at HICSS'17 for this paper.
- ACM SIGSOFT Distinguished Paper Award at FSE'16 for this paper
- 2016 NSF CAREER Award
- Most Influential Paper Award (N-10 years) at ICSME'15 for this paper from ICSM'05
- Best Paper Award at ICSME'15 for this paper
- ACM SIGSOFT Distinguished Paper Award at ICSE'14 for this paper
- ACM SIGSOFT Distinguished Paper Award at ISSTA'13 for this paper
- Best Paper Award at ICST'13 for this paper
- Microsoft Software Engineering Innovation Foundation award, twice: in
- Best PhD Thesis Award from the CS department at UIUC (and also department-nominated for ACM Doctoral Dissertation Award)
- 1st Prize at inter-disciplinary Grand Finals of ACM Student
Research Competition, 2006
- 1st Prize at ACM SIGPLAN Student Research Competition, held at
LEADERSHIP and SERVICE:
- Program Committee: ICSE'17, ICSE'16 (Visions 2025 Track), ASE'15, ICSE'15 (NIER track), ASE'14, OOPSLA'13, ECOOP'13, ASE'13, IPDPS'13, ICSM'13, ICSE'13 (NIER track), FSE'12, OOPSLA'12 (ERC), ECOOP'12 (ERC), ICSM'12, MSEPT'12, WRT'12, CSMR'12, ISSTA'11, PPoPP'11 (ERC), ACM Student Research Competition at ICSE'11, Research Demos @ FSE'10, IWPSE'10, OOPSLA'09, IWMSE'09, IWPSE'09, WRT'09, HotSWUp'09
- Proceedings Chair: OOPSLA'13
- Co-Chair: MobileSoft'15, HotSWUp'12, WRT'11, WRT'08, HotSWUp'08
- Publicity Chair: ICSM'10.
- Chair: Doctoral Symposium @ ECOOP'07, WRT'07, PLoP'04
MOTTO "Success is not for the chosen few, but
for the few who choose" - John