Department of Electrical and Computer Engineering

Tien N. Nguyen, Associate Professor


Home

Research

Publications

Services

Teaching

Students

Funding

Awards

Research

My research mainly focuses on Software Engineering, and in particular, Program Analysis, Software Evolution, and Mining, and their applications in Software Maintenance, Mining Software Repositories, Version and Configuration Management, and Web Code Analysis and Security. The following projects are funded in parts by the NSF grants: CCF-1518897, CNS-1513263, CCF-1413927, CCF-1320578, TWC-1223828, CCF-1349153, CCF-1018600, CCLI-0737029, and others.

  1. NEW Our paper on using contexts phrase-based, statistical source code migration is accepted for publication at the 32nd IEEE International Conference on Software Maintenance and Evolution - ICSME 2016 !
  2. NEW Our paper on Using Topic Model to Suggest Fine-grained Source Code Changes is accepted for publication at the 32nd IEEE International Conference on Software Maintenance and Evolution - ICSME 2016 !
  3. NEW Our paper on API Code Recommendation Using Statistical Learning from Fine-grained Changes is accepted for publication at the 24th ACM SIGSOFT International Symposium on the Foundations of Software Engineering - FSE 2016 !
  4. NEW Our formal demo tool paper on Synthesizing API Code Usage Templates from English Texts with Statistical Translation is accepted for publication at the 24th ACM SIGSOFT International Symposium on the Foundations of Software Engineering - FSE 2016 !
  5. Our paper on Improving Automated Bug Triaging with Specialized Topic Model is accepted for publication in IEEE Transactions on Software Engineering (TSE), 2016.
  6. Our paper on Mapping API Elements for Code Migration with Vector Representations is accepted for publication at the 38th International Conference on Software Engineering - ICSE 2016 !
  7. Our paper on Characterizing API Elements via Textual Descriptions in Software Documentation with Vector Representation is accepted for publication at the 38th International Conference on Software Engineering - ICSE 2016 !
  8. Our paper on A Large-Scale Study On Repetitiveness, Containment, and Composability of Routines in Open-Source Projects is accepted for publication at the 13th International Conference on Mining Software Repositories - MSR 2016 !
  9. Statistical Translation of English Texts to API Code Usage Templates
  10. Using Change Context with Statistical Learning for API Code Recommendation
  11. A Deep Neural Network Language Model with Syntactic and Semantic Contexts for Java Source Code
  12. A Multi-phase, Phrase-based Approach for Source Code Migration (mppSMT): Our paper on mppSMT on code migration is accepted for publication at the 30th ACM/IEEE International Conference on Automated Software Engineering Conference - ASE 2015 !
  13. Combining Deep Learning with Information Retrieval to Localize Buggy Files for Bug Reports: our paper is for publication accepted at the 30th International Conference on Automated Software Engineering Conference - ASE 2015 !
  14. Our article Boa: Ultra-Large-Scale Software Repository and Source Code Mining is accepted for publication in TOSEM.
  15. Two new NSF grants are awarded for our mining research.
  16. Cross-language Program Slicing for Dynamic Web Applications (WebSlice): Our paper on WebSlice, cross-language program slicing for dynamic web applications is accepted for publication at the 10th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering - ESEC/FSE 2015 !
  17. Detecting Semantic Merge Conflicts With Variability-Aware Execution: Our paper is accepted for publication at the 10th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering - ESEC/FSE 2015 !
  18. Building Call Graphs for Embedded Client-Side Code in Dynamic Web Applications (Varis): Our research demonstration "Varis: IDE Support for Embedded Client Code in PHP Web Applications" has been awarded the Best Research Demonstration Award at the 37th ACM/IEEE International Conference on Software Engineering - ICSE 2015 !
  19. Graph-based Statistical Language Model for Code (GraLan): Our paper on GraLan is accepted for publication at the 37th ACM/IEEE International Conference on Software Engineering - ICSE 2015 !
  20. Our NIER paper "Inferring Behavioral Specifications from Large-scale Repositories by Leveraging Collective Intelligence" is accepted for publication at the 37th ACM/IEEE International Conference on Software Engineering - ICSE 2015 !
  21. Building Call Graphs for Embedded Client-Side Code in Dynamic Web Applications (Varis): Our paper on Varis is accepted for publication at the 22nd ACM SIGSOFT International Symposium on the Foundations of Software Engineering -FSE 2014 !
  22. Our paper on Mining Preconditions of APIs in Large-Scale Code Corpus is accepted for publication at the 22nd ACM SIGSOFT International Symposium on the Foundations of Software Engineering - FSE 2014 !
  23. Our paper on StaMiner, Statistical Learning Approach for Mining API Usage Mappings for Code Migration, is accepted for publication at the 29th IEEE/ACM International Conference on Automated Software Engineering - ASE 2014 ! This paper is awarded ACM SIGSOFT Distinguished Paper and ASE Best Paper Award !
  24. Exploring Variability-Aware Execution for Testing Plugin-Based Web Applications (Varex): Our paper on Variability-aware Execution used in Testing plugin-based Web applications is accepted for publication at the 36th ACM/IEEE International Conference on Software Engineering - ICSE 2014 !
  25. Mining Interprocedural, Data-Oriented Usage Patterns in JavaScript Web Applications (JScan): Our paper on JScan for mining Data-oriented Usage Patterns in JavaScript is accepted for publication at the 36th ACM/IEEE International Conference on Software Engineering - ICSE 2014 !
  26. Mining Billions of AST Nodes to Study Actual and Potential Usage of Java Language Features : Our paper on a large-scale study on the usage of Java Language Features is accepted for publication at the 36th ACM/IEEE International Conference on Software Engineering - ICSE 2014 !
  27. Fault Localization for Make-Based Build Crashes: Our paper on MkFault is accepted for publication at the 30th International Conference on Software Maintenance and Evolution - ICSME 2014 !
  28. Characterizing Defect Trends in Software Support: Our NIER paper on characterizing defect trends with IBM T.J. Watson is accepted for publication at the 36th ACM/IEEE International Conference on Software Engineering - ICSE 2014 !
  29. Migrating Code with Statistical Machine Translation: Our research tool demo paper on code migration with SMT (semSMT) is accepted for publication at the 36th ACM/IEEE International Conference on Software Engineering - ICSE 2014 !
  30. Efficiently Mining Source Code with Boa: Our tutorial on Boa will be at the Tutorials and Technical Briefings
    Track, the 36th ACM/IEEE International Conference on Software Engineering - ICSE 2014 !
  31. Fault Localization for Build Code Errors in Makefiles: Our poster on MkFault is accepted for publication at the 36th ACM/IEEE International Conference on Software Engineering - ICSE 2014 !
  32. Statistical Learning of API Mappings for Language Migration: Our poster on StaMiner is accepted for publication at the 36th ACM/IEEE International Conference on Software Engineering - ICSE 2014 !
  33. A Study of Repetitiveness of Code Changes in Software Evolution: Our paper on this study is accepted for publication at the 28th IEEE/ACM International Conference on Automated Software Engineering - IEEE/ACM ASE 2013 !
  34. Dangling References in PHP-based Dynamic Web Applications (DRC): Our paper on DRC is accepted for publication at the 28th IEEE/ACM International Conference on Automated Software Engineering - IEEE/ACM ASE 2013 !
  35. A Statistical Semantic Language Model for Source Code (SLAMC): Our paper on SLAMC for semantic language model is accepted for publication at the 9th Joint Meeting of the 14th European Software Engineering Conference and the 21st ACM SIGSOFT Symposium on the Foundations of Software Engineering - SIGSOFT ESEC/FSE 2013 !
  36. Lexical Statistical Machine Translation for Language Migration (lpSMT): Our paper on SMT for language migration is accepted for publication at the 9th Joint Meeting of the 14th European Software Engineering Conference and the 21st ACM SIGSOFT Symposium on the Foundations of Software Engineering - SIGSOFT ESEC/FSE 2013 !
  37. A Language and Infrastructure for Analyzing Ultra-Large-Scale Software Repositories (Boa): Our paper on Boa for Mining Ultra-large-scale Software Repositories is accepted for publication at the 35th ACM/IEEE International Conference on Software Engineering - ICSE 2013 !
  38. A Detection Tool for Dangling References in PHP-Based Web Applications: Our DRC tool is accepted for publication at the 35th ACM/IEEE International Conference on Software Engineering - ICSE 2013 !
  39. Mixed-Purpose Fixing Commits in Open-Source Projects (Cardo): Our paper on Cardo is accepted for publication at the 24th IEEE International Symposium on Software Reliability Engineering - ISSRE 2013 !
  40. Output-oriented Refactoring in PHP-based Dynamic Web Applications (WebDyn): Our paper on WebDyn output-oriented refactoring is accepted for publication at the 29th IEEE International Conference on Software Maintenance - ICSM 2013 !
  41. Database-aware Fault Localization for Dynamic Web Applications (SQLook): Our paper on SQLook is accepted for publication at the 29th IEEE International Conference on Software Maintenance - ICSM 2013 !
  42. Declarative Visitors to Ease Fine-grained Source Code Mining with Full History on Billions of AST Nodes: Our paper on Boa's declarative visitors is accepted at the 12th International Conference on Generative Programming: Concepts & Experiences - GPCE 2013 !
  43. Mining Source Code Repositories with Boa: Our demo on source code mining with Boa is accepted at SPLASH 2013 !
  44. Multi-layered Approach for Recovering Links between Bug Reports and Fixes : Our paper on MLink is accepted for publication at the 20th ACM SIGSOFT International Conference on the Foundations of Software Engineering - FSE 2012 !
  45. Duplicate Bug Report Detection with a Combination of Information Retrieval and Topic Modeling : Our paper on detecting duplicate bug reports with IR and topic modeling is accepted for publication at the 27th ACM/ IEEE International Conference on Automated Software Engineering - ASE 2012 ! This paper has been awarded the ACM SIGSOFT Distinguished Paper Award at ASE 2012 !
  46. Detection and Localization of Client-Side Code Smells in Dynamic Web Applications : Our paper on WebScent is accepted for publication at the 27th ACM/ IEEE International Conference on Automated Software Engineering - ASE 2012 !
  47. SYMake: Build Code Analysis with Symbolic Evaluation : Our tool SYMake is accepted for demonstration and publication at the 27th ACM/ IEEE International Conference on Automated Software Engineering - ASE 2012 !
  48. Detecting Semantic Changes in Makefile Build Code : Our paper on MkDiff is accepted for publication at the 28th IEEE International Conference on Software Maintenance - ICSM 2012 !
  49. Graph-based Pattern-Oriented, Context-sensitive Code Completion : Our paper on GraPacc for Code Completion is accepted for publication at the 34th ACM/IEEE International Conference on Software Engineering - ICSE 2012 !
  50. Build Code Analysis with Symbolic Evaluation : Our paper on SYMake for Build Code Analysis is accepted for publication at the 34th ACM/IEEE International Conference on Software Engineering - ICSE 2012 !
  51. Detection and Renaming Tool for Cross-Language Program Entities in Dynamic Web Applications : Our paper on BabelRef is accepted for publication at the 34th ACM/IEEE International Conference on Software Engineering - ICSE 2012 !
  52. Inferring Developer Expertise through Defect Analysis: Our paper on mining defect data to infer developer expertise is accepted for publication at the 34th ACM/IEEE International Conference on Software Engineering - ICSE 2012 !
  53. GraPacc: A Graph-Based Pattern-Oriented, Context-Sensitive Code Completion Tool: Our formal tool demo paper on GraPacc is accepted for publication at the 34th ACM/IEEE International Conference on Software Engineering - ICSE 2012 !
  54. Fuzzy Set and Cache-based Approach for Bug Triaging: Our paper on Bugzie for Bug Triaging is accepted for publication at the joint meeting of the 13rd European Software Engineering Conference and the 19th ACM SIGSOFT Conference on the Foundations of Software Engineering - SIGSOFT ESEC/FSE 2011 !
  55. Aspect Recommendation for Evolving Software: Our paper on XScan for Aspect Mining and Updating is accepted at the 33rd ACM/IEEE International Conference on Software Engineering - ICSE 2011 !
  56. A Topic-based Approach for Narrowing the Search Space of Buggy Files from a Bug Report: Our paper on BugScout for Bug Localization is accepted for publication at the 26th IEEE/ACM International Conference on Automated Software Engineering - ASE 2011 ! (Nominated for ACM SIGSOFT Distinguished Paper Award)
  57. Auto-Locating and Fix-Propagating for HTML Validation Errors to PHP Server-side Code: Our paper on PhpSync for Auto-Locating and Fix-Propagating of HTML errors is accepted for publication at the 26th IEEE/ACM International Conference on Automated Software Engineering - ASE 2011 !
  58. iDiff: Interaction-based Program Differencing Tool: Our paper on iDiff is accepted for publication at the 26th IEEE/ACM International Conference on Automated Software Engineering - ASE 2011 !
  59. Our papers on Topic-based Defect Prediction and Fuzzy Set-based Bug Triaging are accepted at ICSE NIER 2011 !
  60. A Graph-based Approach to API Usage Adaptation: Our paper on LibSync is accepted at the 2010 ACM International Conference on Systems, Programming, Languages, and Applications: Software for Humanity - SPLASH 2010 - OOPSLA 2010 !
  61. FixWizard: Recurring Bug Fixes in Object-Oriented Programs: Our paper on FixWizard is accepted at the 32th ACM/IEEE International Conference on Software Engineering - ICSE 2010 !
  62. SecureSync: Detection of Recurring Software Vulnerabilities: Our paper on SecureSync is accepted at the 25th ACM/IEEE International Conference on Automated Software Engineering - ASE 2010 ! (Nominated for ACM SIGSOFT Distinguished Paper Award)
  63. TagRec: Fuzzy Set Approach for Automatic Tagging in Evolving Software: Our paper on TagRec is accepted at the 26th IEEE International Conference on Software Maintenance - ICSM 2010 !
  64. OperV: Operation-based, Fine-grained Version Control Model for Tree-based Representation: Our paper on OperV is accepted at the 13th International Conference on Fundamental Approaches to Software Engineering - FASE 2010 !
  65. GrouMiner: Graph-based Mining of Multiple Object Usage Patterns: Our paper on GrouMiner is accepted at the 2009 ACM SIGSOFT Conference on the Foundations of Software Engineering - FSE 2009 ! The GrouMiner paper has been awarded the ACM SIGSOFT Distinguished Paper Award at ESEC/FSE 2009 !
  66. Clever: Clone-aware Configuration Management: Our paper on Clever is accepted at the 24th ACM/IEEE International Conference on Automated Software Engineering - ASE 2009 !
  67. ModelCD: Clone Detection in Model-based Development: Our paper on ModelCD is accepted at the 31th ACM/IEEE International Conference on Software Engineering - ICSE 2009 !
  68. Exas: Efficient Structural Characteristic Feature Extraction for Clone Detection : Exas has been successfully used in our model clone detection (ModelCD) and code clone detection tools.Our paper on Exas is accepted at the International Conference on Fundamental Approaches to Software Engineering - FASE 2009 !
  69. Incremental Latent Semantic Indexing for Maintaining Traceability Links in Evolving Software at ACM/IEEE ASE 2008 (the 23rd ACM/IEEE International Conference on Automated Software Engineering)
  70. Cleman: Clone Group Evolution Management. Our paper on Incremental Clone Detection tool, ClemanX, is accepted at the 25th IEEE International Conference on Software Maintenance (ICSM 2009) and was demonstrated at ICSE 2009 !
  71. MolhadoRef at ICSE 2007 (the 29th ACM/IEEE International Conference on Software Engineering) MolhadoRef: is a refactoring-aware SCM tool that is capable of capturing and versioning of the semantics of Java program entities and refactoring operations that were performed on those entities. It helps track the history of refactored, fine-grained program entities, eliminates many conflicts when merging refactored versions in multi-user environments, and represents the history at a higher level. It uses the operation-based SCM approach to represent and record refactoring operations as first-class entities in the repository. MolhadoRef records the operations that were performed to transform one version into another and replays them when updating to that version.We presented MolhadoRef in premiere at OOPSLA'06 and FSE'06 during the tool demo and poster sessions. A short paper was presented at ETX'06. A full version can be found in IEEE Transactions in Software Engineering (TSE) May/June 2008.
  72. Molhado: a Configuration Management and Version Control Infrastructure and methodology that facilitate the rapid development of object-oriented SCM systems.Unlike many existing text file-oriented SCM systems, which often treat a software system as a set of text files, the object-oriented SCM systems have the ability to manage the evolution of a software system in terms of logical abstractions, compositions, and their interrelations. With Molhado, one can quickly create the core of an object-oriented SCM system for any development or editing environment in any paradigm without worrying about the concrete level of actual file storing. Versions of objects are managed at various levels of abstraction and granularity. For example, any levels of structure in a program or a structured object can be versioned in a fine-grained manner. Configurations are maintained among logical objects (rather than among files), enabling the version control for complex software objects during design, implementation, etc.You can check out our ICSE 2005, ASE 2006, OOPSLA'04 papers at the ACM Digital Library.
  73. WebSCM: provides Configuration Management and Versioning infrastructure supports for Web Engineering life cycle. The distinguished characteristic of this SCM system for Web engineering is its ability to manage the evolution of a Web-based application in terms of Web contents, as well as crucial structures such as navigational, compositional, internal, and logical structures.Check out our papers at WWW 2006, WWW 2004, and ICSM 2005.
  74. WebSearchViz: is an interactive Web Information Retrieval, Analysis, and Visualization System for Web search results and to facilitate users' navigation and exploration. The metaphor in our model is the solar system with its planets and asteroids revolving around the sun. Location, color, movement, and spatial distance of objects in the visual space are used to represent the semantic relationships between a query and relevant Web pages. The movement of objects and their speeds add a new dimension to the visual space, illustrating the degree of relevance among a query and Web search results in the context of users' subjects of interest. By interacting with the visual space, users are able to observe the semantic relevance between a query and a resulting Web page with respect to their subjects of interest, context information, or concern. Users' subjects of interest can be dynamically changed, added, or deleted from the visual space. Check out our paper at IEEE Vis 2006. We are currently working on different technologies for Web Information Analysis, and using Visualization in information discovery.

Other projects.


Tien N. Nguyen (2005), tien@iastate.edu