Laboratories - Software Engineering
Software Analysis and Compilation Laboratory
213 Smith Hall, Professor Lori Pollock.
Our research focuses on program analysis to automate and semi-automate tedious and error-prone tasks typically performed by software engineers, testers, and scientists. Current research projects include applying natural language processing techniques to perform textual analysis of software artifacts and using that information for automatically generating documentation from source code, improving code search and feature location, and improving other software maintenance tools. We are also investigating various aspects of green software engineering to enable software designers to make energy-conscious design decisions. In software testing, we are developing techniques to automatically generate tests for web applications. Other projects focus on optimizing compilers for modern parallel architectures.
Program Analysis and Debugging Laboratory
429 Smith Hall, Professor James (Jim) Clause.
This research group focuses on developing tools and techniques to improve software quality by simplifying the detection and debugging of software faults. Current projects include investigating how dynamic tainting can be used to help guide developers in fixing common programming mistakes such as memory leaks and other types of failures. The group is also investigating how information can be safely and efficiently collected from software users and how such information can be used to improve the software development process.
Verified Software Laboratory
421 Smith Hall, Professor Stephen Siegel.
The VSL conducts research into one of the most important problems in Software Engineering: how to develop verifiably correct complex software systems. Currently, the VSL is focusing on parallel programs used for scientific computation and is developing tools that can find defects in these programs or establish their correctness. These tools are based on techniques from logic, compiler theory, symbolic computation, and model checking.