Research

Software Research Lab

Our research

We study how software is built, understood, and evolved, and we create tools, techniques, and empirical evidence that help developers build better software. Our work spans program analysis, software analytics, human-centred software engineering, and AI for software development.

What we study

Research areas

Code clone detection and analysis

Detecting, understanding, and managing duplicated and similar code across large software systems, including scalable clone detectors and clone benchmarks.

Software evolution and maintenance

Studying how software changes over time, how changes ripple through large systems, and how to renovate and maintain legacy code.

AI and large language models for software engineering

Building efficient, robust code models, including compression and knowledge distillation, and studying how developers use LLMs such as ChatGPT in practice.

Software analytics and repository mining

Extracting insights from code repositories, issue trackers, Q&A sites, and other development data to support decision-making.

Recommender systems in software engineering

Tools that recommend code, fixes, and relevant knowledge to developers in the context of their everyday work.

Empirical software engineering and quality

Evidence-based studies of bugs, technical debt, and software metrics, and predictive analytics that help teams manage risk.

Human and interactive aspects of software engineering

Human-centred approaches to software development, interactive software, user interface engineering, and tools that support team collaboration and creativity.

Software visualization and program comprehension

Helping developers navigate, understand, and visualize complex programs through visualization, modeling, and reverse engineering.

Big data analytics, scientific workflows, and provenance

Frameworks for large-scale, data-intensive discovery, scientific workflow management, and tracking the provenance of data and analyses.

Faculty

Research leads

KS

Kevin A. Schneider

Professor · Director, Software Research Lab

Software analytics, human-computer interaction, visualization, software evolution and renovation, programming languages, and data-intensive discovery.

CR

Chanchal K. Roy

Co-Director, Software Research Lab

Code clone detection and management, software evolution and maintenance, recommender systems in software engineering, and AI for software engineering.

BR

Banani Roy

Associate Professor · Director, Interactive Software Engineering Lab (iSE Lab)

Data and software analytics, human-centred software engineering, interactive software, big data analytics, provenance, and empirical software engineering.

Beyond software

Applied research

We apply our software and data expertise to large interdisciplinary initiatives, building platforms and analytics that help scientists work with big data in food and water security.

Global Water Futures Designing Crops for Global Food Security Industry partnerships