home >

research >

teaching >

students >

music >

curriculum vitae >

Danny Dig
Call for Participation: we have an ongoing research study to understand how developers change code inside the IDE. If you develop Java code, please participate in our study.

My research is in Software Engineering (SE), particularly in interactive program analysis and transformation.

It is widely known that at least two-thirds of software costs are due to evolution, with some industrial surveys claiming 90%. My research goal is to enable programmers to interactively and safely change large programs. Just as machinery fostered the industrial revolution, machinery automating software changes will foster a revolution in software technology. I successfully pioneered interactive program transformations by opening the field of refactoring in cutting-edge domains including mobile, parallelism, component-based, testing, and end-user programming.

Some of the techniques I developed are shipping with the official release of the popular Eclipse and NetBeans development environments, and are used by millions of Java programmers everyday.

Research Key Statistics:

  • $3.5M as sole or lead PI, ($2.95M from NSF, $602K from industry). My share: $2.37M
  • 50+ peer-reviewed conference papers (see all in DBLP )
    • 5 best paper awards at flagship/top conferences (FSE'16, ICSE'14, ICSME'15, ISSTA'13, ICST'13) + 1 most influential award (N-10 years) at ICSME'15 + 4 award nominees
    • 30 full papers in flagship/top ACM/IEEE venues in SE (<25% acceptance ratio)
    • Plus 7 journal papers, including 3 in the flagship journals, ACM/IEEE Transactions
  • 9 tools released in industrial-strength products, >20M downloads
  • 2500+ citations, h-index of 25, >300 citations for top-cited paper



Software 2015 Refactoring for Asynchronous Execution on Mobile Devices (an earlier version appeared here)
Danny Dig
IEEE Software (Software), Volume 32, Issue 6, pp 52-61, Nov/Dec 2015.
TOSEM 2015 Effective Techniques for Static Race Detection in Java Parallel Loops
Cosmin Radoi and Danny Dig
ACM Transactions on Software Engineering and Methodology (TOSEM), Volume 24, Number 4, pp 1-30, Aug 2015.
STVR 2015 A Study and Toolkit of CHECK-THEN-ACT Idioms of Java Concurrent Collections
Yu Lin and Danny Dig
Wiley: Software Testing, Verification and Reliability (STVR), Volume 25, Issue 4, pp 397-425, June 2015.
Software 2011 A Refactoring Approach to Parallelism (an earlier version as a Tech Report)
Danny Dig
IEEE Software (Software) Volume 28, Issue 1, pp. 17-22, Jan/Feb 2011
TSE 2010 Finding Bugs in Web Applications Using Dynamic Test Generation and Explicit State Model Checking
Shay Artzi, Adam Kiezun, Julian Dolby, Frank Tip, Danny Dig, Amit Paradkar, Michael D. Ernst
IEEE Transactions on Software Engineering (TSE), Volume 34, Issue 4, pp 474-494
TSE 2008 Effective Software Merging in the Presence of Object-Oriented Refactorings,
Danny Dig, Kashif Manzoor, Ralph Johnson, and Tien Nguyen
In IEEE Transactions on Software Engineering (TSE), Volume 34, Number 3, pp 321-335, May/June 2008
JSME 06 How do APIs evolve? A story of refactoring
Danny Dig and Ralph Johnson
Journal of Software Maintenance and Evolution (JSME) Volume 18, Issue 2, pp. 83-107, March/April 2006

Conference Papers

FSE 2016 API Code Recommendation Using Statistical Learning from Fine-grained Changes ( ACM SIGSOFT Distinguished Paper Award)
Anh Nguyen, Michael Hilton, Mihai Codoban, Hoan Nguyen, Lily Mast, Eli Rademacher, Tien Nguyen, Danny Dig
To Appear in Proceedings of FSE'16, 11 pages, Seattle, WA, USA, Nov 2016.
Acceptance ratio: 27% (74/273)
FSE 2016 Interactive and Guided Architectural Refactoring with Search-Based Recommendation
Yun Lin, Xin Peng, Yuanfang Cai, Danny Dig, Diwen Zheng, Wenyun Zhao
To Appear in Proceedings of FSE'16, 11 pages, Seattle, WA, USA, Nov 2016.
Acceptance ratio: 27% (74/273)
ASE 2016 Usage, Costs, and Benefits of Continuous Integration in Open-Source Projects
Michael Hilton, Timothy Tunnell, Kai Huang, Darko Marinov, and Danny Dig
To Appear in Proceedings of ASE'16, pp 426-437, Singapore, Sept 2016.
Acceptance ratio: 19% (57/298)
ICSE 2016 Improving Refactoring Speed by 10X ( Runner-up ACM SIGSOFT Distinguished Paper Award )
Jongwook Kim, Don Batory, Danny Dig, and Maider Azanza
To Appear in Proceedings of ICSE'16, 11 pages, Austin, TX, USA, May 2016.
Acceptance ratio: 19% (101/530)
MobileSoft 2016 Understanding Code Smells in Android Applications
Umme Ayda Mannan, Iftekhar Ahmed, Rana Abdullah M. Almurshed, Danny Dig, Carlos Jensen
Proceedings of MOBILESoft'16, pp 225-234, Austin, TX, USA May 2016.
XP 2016 TDDViz: Using Software Changes to Understand Conformance to Test Driven Development
Michael Hilton, Nicholas Nelson, Hugh McDonald, Sean McDonald, Ron Metoyer, Danny Dig
Proceedings of XP'16, 10 pages, Edinburgh, UK, May 2016.
ASE 2015 Study and Refactoring of Android Asynchronous Programming
Yu Lin, Semih Okur, Danny Dig
Proceedings of ASE'15, 11 pages, Lincoln, NE, USA, Nov 2015.
Acceptance ratio: 20.7% (60/289)
webpage, corpus, and here is a demo video
ICSME 2015 Software History under the Lens: A Study on Why and How Developers Examine It ( Best Paper Award)
Mihai Codoban, Sruti Srinivasa Ragavan, Danny Dig, Brian Bailey
Proceedings of ICSME'15, pp 1-10, Bremen, Germany, Sept 2015.
Acceptance ratio: 22% (32/148)
ICSME 2015 Scripting Parametric Refactorings in Java to Retrofit Design Patterns
Jongwook Kim, Don Batory, Danny Dig
Proceedings of ICSME'15, pp 211-220, Bremen, Germany, Sept 2015.
Acceptance ratio: 22% (32/148)
FSE 2014 Retrofitting Concurrency for Android Applications through Refactoring
Yu Lin, Cosmin Radoi, Danny Dig
Proceedings of FSE'14, pp 341352, Hong Kong, China, Nov 2014.
Acceptance ratio: 22% (61/273)
ICSE 2014 A Study and Toolkit for Asynchronous Programming in C# ( ACM SIGSOFT Distinguished Paper Award)
Semih Okur, David Hartveld, Danny Dig, Arie van Deursen
Proceedings of ICSE'14, pp 1117-1127, Hyderabad, India, May 2014.
Acceptance ratio: 20% (99/499)
webpage, educational resources
ICSE 2014 Mining fine-grained code changes to detect unknown change patterns ( Runner-up ACM SIGSOFT Distinguished Paper Award )
Stas Negara, Mihai Codoban, Danny Dig, Ralph Johnson
Proceedings of ICSE'14, pp 803-813, Hyderabad, India, May 2014.
Acceptance ratio: 20% (99/499)
ICSE 2014 How do centralized and distributed version control systems impact software changes?
Caius Brindescu, Mihai Codoban, Sergey Shmarkatiuk, Danny Dig
Proceedings of ICSE'14, pp 322-333, Hyderabad, India, May 2014.
Acceptance ratio: 20% (99/499)
webpage, corpus
ECOOP 2014 Converting Parallel Code from Low-Level Abstractions to Higher-Level Abstractions
Semih Okur, Cansu Erdogan, Danny Dig
Proceedings of ECOOP'14, pp 515540, Uppsala, Sweden, July 2014.
Acceptance ratio: 27% (27/101)
webpage, educational resources
MobileSoft 2014 Refactoring Local to Cloud Data Types for Mobile Apps
Michael Hilton, Arpit Christi, Danny Dig, Michal Moskal, Sebastian Burckhardt, Nikolai Tillmann
Proceedings of MobileSoft'14 in conjunction with ICSE'14, pp 8392, Hyderabad, India, May 2014.
FSE 2013 Crossing the Gap from Imperative to Functional Programming through Refactoring
Alex Gyori, Lyle Franklin, Danny Dig, Jan Lahoda
Proceedings of FSE'13, pp 543-553, Saint Petersburg, Russia, Aug 2013.
Acceptance ratio: 20% (51/251)
demo video
ISSTA 2013 Practical Static Data Race Detection for Java Parallel Loops ( ACM SIGSOFT Distinguished Paper Award)
Cosmin Radoi, Danny Dig
Proceedings of ISSTA'13, pp 178-190, Lugano, Switzerland, July 2013.
Acceptance ratio: 26% (32/124)
ECOOP 2013 A Comparative Study of Manual and Automated Refactoring
Stas Negara, Nicholas Chen, Mohsen Vakilian, Ralph Johnson, Danny Dig
Proceedings of ECOOP'13, pp 552-576, Montpelier, France, July 2013.
Acceptance ratio: 25% (29/116)
ICST 2013 Check-then-Act Misuse of Java Concurrent Collections ( Best Paper Award )
Yu Lin, Danny Dig
Proceedings of ICST'13, pp 164-173, Luxembourg, March 2013.
Acceptance ratio: 25% (38/152)
web page, tool, corpus
FSE 2012 How do Developers Use Parallel Libraries?
Semih Okur, Danny Dig
Proceedings of FSE'12, pp 54-65, Raleigh, USA, Nov 2012.
Acceptance ratio: 17% (35/201)
Online Exemplars
ICSM 2012 Refactoring Meets Spreadsheet Formulas
Sandro Badame, Danny Dig
Proceedings of ICSM'12.
Acceptance ratio: 25% (46/181)
Demo Video
ECOOP 2012 Is It Dangerous to Use Version Control Histories to Study Source Code Evolution?
Stas Negara, Mohsen Vakilian, Nicholas Chen, Ralph Johnson, Danny Dig
Proceedings of ECOOP'12, pp 79-103, Beijing, China, June 2012.
Acceptance ratio: 21% (30/140)
ICSE 2011 Transformation for Class Immutability ( Runner-up ACM SIGSOFT Distinguished Paper Award)
Fredrik Kjolstad, Danny Dig, Gabriel Acevedo, Marc Snir
Proceedings of ICSE'11, pp 61-70, Hawaii, USA, May 2011.
Acceptance ratio: 14% (62/441)
ASE 2009 Inferring Method Effect Summaries for Nested Heap Regions
Mohsen Vakilian, Danny Dig, Robert Bocchino, Jeff Overbey, Vikram Adve, Ralph Johnson
Proceedings of ASE'09, pp 421-432, Auckland, New Zealand, Nov 2009.
Acceptance ratio: 17% (38/222)
ASE 2009 ReAssert: Suggesting Repairs for Broken Unit Tests
Brett Daniel, Vilas Jagannath, Danny Dig, Darko Marinov
Proceedings of ASE'09, pp 433-444, Auckland, New Zealand, Nov 2009
Acceptance ratio: 17% (38/222).
OOPSLA 2009 A Type and Effect System for Deterministic Parallel Java
Robert Bocchino, Vikram Adve, Danny Dig, Sarita Adve, Stephen Heumann, Rakesh Komuravelli, Jeffrey Overbey, Patrick Simmons, Hyojin Sung, Mohsen Vakilian
Proceedings of OOPSLA'09, pp 97-116, Orlando, USA, Oct 2009.
Acceptance ratio: 17% (25/144).
ICSE 2009 Refactoring Sequential Java Code for Concurrency via Concurrent Libraries
Danny Dig, John Marrero, Michael D. Ernst
Proceedings of International Conference on Software Engineering (ICSE'09), pp 397-407, Vancouver, Canada, May 2009.
Acceptance ratio: 12% (50/405)
ISSTA 2008 Finding bugs in dynamic web applications
Shay Artzi, Adam Kiezun, Julian Dolby, Frank Tip, Danny Dig, Amit Paradkar, Michael D. Ernst
Proceedings of International Symposium on Software Testing and Analysis (ISSTA'08), pp 261-272, Seattle, USA, July 2008.
Acceptance ratio: 26% (26/100).
ICSE 2008 ReBA: Refactoring-aware Binary Adaptation of Evolving Libraries
Danny Dig, Stas Negara, Vibhu Mohindra, Ralph Johnson
Proceedings of International Conference on Software Engineering( ICSE'08), pp 441-450, Leipzig, Germany, May 2008.
Acceptance ratio: 15% (56/371).
FSE 2007 Automated Testing of Refactoring Engines
Brett Daniel, Danny Dig, Kelly Garcia, Darko Marinov
Proceedings of Foundations of Software Engineering (FSE'07), pp 185-194, Dubrovnik, Croatia, September 2007.
Acceptance ratio: 17% (43/251).
ICSE 2007 Refactoring-aware Configuration Management for Object-Oriented Programs
Danny Dig, Kashif Manzoor, Ralph Johnson, Tien Nguyen
Proceedings of International Conference on Software Engineering (ICSE'07), pp 427-436, Minneapolis, MN, USA, May 2007.
Acceptance ratio: 15% (50/334).
ECOOP 2006 Automated Detection of Refactorings in Evolving Components
Danny Dig, Can Comertoglu, Darko Marinov, and Ralph Johnson
Proceedings of European Conference on OO Programming (ECOOP'06), pp. 404-428, Nantes, France, July 2006.
Acceptance ratio: 13% (21/160)
MobiSys 2006 Pegboard: A Framework for Developing Mobile Applications
Danny Soroker, Ramon Caceres, Danny Dig, Andreas Schade, Susan Spraragen, and Alpana Tiwari
Proceedings of MobiSys'06, pp. 138-150, Uppsala, Sweden, June 2006.
Acceptance ratio: 15% (19/120)
ICSM 2005 The Role of Refactorings in API Evolution ( Runner-up Best Paper Award in 2005, then Most Influential Paper Award in 2015)
Danny Dig and Ralph Johnson
Proceedings of International Conference on Software Maintenance (ICSM'05), pp. 389-398, Budapest, Hungary, September 2005.
Acceptance ratio: 31% (55/180)

Refereed Formal Demos, Short Conference, or Workshop Papers

ICSE'16 Visions 2025 COPE: Vision for a Change-Oriented Programming Environment
Danny Dig, Ralph Johnson, Darko Marinov, Brian Bailey, Don Batory
ACM/IEEE International Conference on Software Engineering - Visions 2025 Track, pp 4, Austin, TX, USA, May 2016.
PPoPP'15 Are Web applications ready for parallelism?
Cosmin Radoi, Stephan Herhut, Jaswanth Sreeram, Danny Dig
ACM Symposium on Principles and Practice of Parallel Programming (PPoPP), pp 289-290, San Francisco, CA, USA, Feb 2015.
FSE'14:Demo BumbleBee: a refactoring environment for spreadsheet formulas
Felienne Hermans, Danny Dig
ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE), pp 747750, Hong Kong, China, Nov 2014.
ETSE'11 Automated GUI Refactoring and Test Script Repair
Brett Daniel, Qingzhou Luo, Mehdi Mirzaaghaei, Danny Dig, Darko Marinov, Mauro Pezze
First International Workshop on End-to-End Test Script Engineering (ETSE 11), pp 38-41, Toronto, Canada, July 2011.
IWMSE'11 How do programs become more concurrent? A story of program transformations
Danny Dig, John Marrero, Michael Ernst
ICSE 2011 International Workshop on Multicore Software Evolution (IWMSE'11), pp 1-8, Hawaii, USA, May 2011.
CAP 2010 Bringing the HPC Programmer's IDE into the 21st Century through Refactoring
Fredrik Kjolstad, Danny Dig, Marc Snir
SPLASH 2010 Workshop on Concurrency for the Application Programmer (CAP'10), pp 1-4, Reno, NV, USA, Oct 2010.
ICSM 2010 A practical tutorial on refactoring for parallelism
Danny Dig
International Conference on Software Maintenance: Tutorials (ICSM'10), pp 1-2, Timisoara, Romania, Sept 2010.
ParaPLoP 2009 N-Body Pattern Language
Danny Dig, Ralph Johnson, Marc Snir
Workshop on Parallel Programming Patterns (ParaPLoP'09), pp 1-12, Santa Cruz, CA, USA, June 2009.
ASE 2007 Automated Detection of API Refactorings in Libraries
Kunal Taneja, Danny Dig, Tao Xie
Proceedings of Automated Software Engineering (ASE'07), pp 377-380, Atlanta, GA, USA, November 2007.
Acceptance ratio: 25% ((37+40)/312).
ETX 2006 MolhadoRef: a refactoring-aware SCM Infrastructure for OO Programs.
Danny Dig, Kashif Manzoor, Tien N. Nguyen, Ralph Johnson
Eclipse Technology Exchange ETX'06 (held at OOPSLA'06), pp 25-29, Portland, OR, USA, October 2006.
OOPSLA 2005 Using Refactorings to Automatically Update Component-Based Applications
Danny Dig
Doctoral Symposium at Object-oriented programming, systems, languages and applications (OOPSLA'05), in Companion Proceedings of OOPSLA'05, San Diego - Oct 2005. 1st Prize Winner of the ACM SIGPLAN Student Research Competition
PLoP 2005 The Bull and the Calf - patterns for effective pair-programming
Danny Dig
11th Conference on Pattern Languages of Programs (PLoP'04), Monticello - September 2004.



  • LambdaFicator enables Java programmers to use lambda expressions and functional iterators.
  • Immutator is a refactoring tool for converting mutable into immutable classes.
  • ReLooper, parallelizes a sequential loop using Java's upcoming ParallelArray.
  • Concurrencer, extends Eclipse's refactoring engine with three refactorings: convert int to AtomicInteger, convert.HashMap to ConcurrentHashMap, convert sequential divide-and-conquer algorithm into a parallel divide-and-conquer.
  • ReBA, an Eclipse plugin that takes as input a library and generates a version which is backwards compatible
  • ASTGen, a program generator for automatically testing refactoring engines.
  • MolhadoRef, a refactoring-aware Software Configuration Management tool, built as a plug-in for Eclipse
  • RefactoringCrawler, a plugin for Eclipse to detect refactorings that happened between two versions of a software component
  • JavaRefactor (the first open-source refactoring engine for Java), implemented as a plugin for JEdit (requires JEdit 4.0)


  • I started a popular Practice for the Academic Job Talks (PACAJOT) seminar at MIT and one at Illinois
  • On Feb 27th I organized Inspirations (try this link from outside UIUC domain), an event aimed toward undergraduate students at UIUC who are seriously contemplating going to graduate school. Inspirations will provide them with a "taste of graduate school". Here are my slides.
  • I am trying to foster a live community of refactoring researchers. You can find more about this at refactoring.info

   Copyright 2005, Danny Dig.  All rights reserved.