Interest

Software engineering with a specific focus on software evolution/maintenance, empirical software engineering, program comprehension, source code analysis, and software visualization.

Program

My research program focuses on the development of empiric methods and software tools that use relationships and pertinent information observed from past changes, typically recorded in software repositories such as Subversion and Bugzilla, to support the future evolution of a software system.  Tasks such as source code change analysis and prediction, uncovering software traceability links, document localization, and expert-developer recommendations are supported. The developed methodology consists of lightweight parsing and analysis methods, heuristics, and the application of data-mining techniques.  The overarching goal of these research efforts is to build a holistic software-change recommendation approach that includes the historical component of software evolution to support change impact analysis.  This program directly falls under Empirical Software Engineering/Mining Software Repositories (MSR). 

Additionally, techniques providing a means to support comprehension, analysis, and visualization of large UML models are investigated.  Lightweight-parsing methods for evolving source code, i.e., with irregularities such as non-compilable code and missing header files are being developed.  We have developed the srcML infrastructure that is used in academic research and commercial projects for lightweight source code parsing, analysis, and transformation.  The use of eye-tracking technology in the empirical assessment studies of software visualization metaphors, representations, and development environments is being investigated.

Large-scale software systems with a diverse range of application/solution domains such as KDE (~500 KLOC), Linux kernel (~600 KLOC), and Apache web server are used in the evaluation of the developed approaches, methods, and tools.