Research in Software Engineering, Maintenance, and Evolution
- Source-Code Analysis, Transformation, and Differencing
- Software Traceability
- Reverse Engineering and Re-engineering
- Program Comprehension and Understanding
- Emprical Software Engineering and Mining Software Repositories
- Software Visualization to Support Understanding of Large Software Systems
The research program focuses on the construction of methods, tools, and environments that assist in the process of software evolution. A source code viewpoint is taken to support understanding, analysis, and transformation of large software systems undergoing evolution. An XML representation, namely srcML, is leveraged to manipulate and analyze source code in a lightweight manner. srcML forms the core of a number of tools that analyze, refactor, and reverse engineer source code (most typically C++). The objective is to develop very efficient and useable tools that provide high value to software engineers and researchers.