Anwar Ghammam

Assistant Professor of Computer and Information Science, College of Engineering and Computer Science, The University of Michigan-Dearborn

AI4SE AI4DevOps Software Maintenance, Software Evolution

Outdoor portrait of a person in a bright pink blazer over a dark top

My research focuses on intelligent software engineering, with an emphasis on improving the quality, reliability, and maintainability of software systems using data-driven and AI-powered methods. In particular, I study software maintenance and DevOps artifacts such as build systems and CI/CD pipelines, which are essential to modern software development but have received far less attention than source code. My work combines empirical software engineering, machine learning, large language models, and agentic AI to understand how these artifacts evolve, identify quality issues and refactoring opportunities, and support developers with intelligent analysis and repair tools.

A central part of my research is the creation and analysis of large-scale datasets mined from open-source software repositories. I collect and study software histories, commits, pull requests, build files, CI workflows, and failure logs across platforms such as GitHub Actions, GitLab CI, Jenkins, Travis CI, CircleCI, Maven, Gradle, and Ant. Using data mining, statistical analysis, and software repository mining, I investigate recurring patterns of bugs, misconfigurations, technical debt, refactorings, and quality degradation in these artifacts. This allows me to build taxonomies of software quality issues and better understand how developers maintain non-source-code artifacts in practice.

Methodologically, I use a combination of static analysis, AST-based parsing, repository mining, supervised machine learning, and LLM-based reasoning. I design custom analyzers to extract structural, semantic, and quality-related information from build and CI files, then derive metrics related to maintainability, modularity, readability, duplication, complexity, churn, and technical debt. I also use machine learning models to connect low-level software metrics to higher-level quality attributes, and I explore large language models and multi-agent systems to automatically detect, diagnose, refactor, and repair software configuration problems. More broadly, my research aims to build AI teammates for software engineering: intelligent systems that can assist developers throughout the software lifecycle, especially in the often-overlooked areas of build engineering, CI/CD, and software maintenance.

What is the most significant scientific contribution you would like to make?

I hope to make a meaningful contribution to the scientific community by advancing intelligent, data-driven methods that help improve the quality, reliability, and sustainability of software systems. More broadly, I want my research to support both researchers and practitioners by developing knowledge, tools, and methodologies that make software engineering more effective, accessible, and impactful for society.

What are 1-3 interesting facts about yourself? (Regarding your research or anything else)

  1. I enjoy working on problems that connect research with real developer challenges.
  2. I like bringing new ideas from my research into the classroom and learning from students’ perspectives.
  3. I am especially drawn to overlooked software problems because I enjoy finding value in areas others may not immediately notice.