The Software Improvement (SWIM) Lab at Virginia Commonwealth University, led by Dr. Kostadin Damevski, is dedicated to advancing the state of the art in software maintenance and software engineering research. Our primary goal is to improve programmers' productivity and develop new methods and tools for evolving and maintaining high quality software systems. Specifically, we are interested in the following research topics:

  • Recommendation systems for software engineering
  • Text analysis for software engineering
  • Change-based modeling of software repositories
  • Human and empirical studies


  • Dr. Kostadin Damevski
  • Mia Mohammad Imran -- Ph.D. Student
  • Viral Sheth -- Ph.D. Student
  • ...we are actively looking for people to join SWIM Lab. please contact Dr. Damevski if interested.


  • Agnieszka Ciborowska -- Ph.D. Student -- Hewlett Packard Enterprise
  • Manziba Akanda Nishi -- Ph.D. Student -- LayerFive
  • John Coogle -- M.S. Student -- ZoomCharts
  • Chase Greco -- M.S. Student -- CoStar
  • Tyler Haden -- B.S. Student -- University of Virginia
  • Anish Gutha -- High School Student (Midlothian HS), 2021
  • Carson Krahe -- High School Student (Maggie Walker), 2021
  • James Hall -- High School Student (Maggie Walker), 2020
  • Sudeep Dharanikota -- High School Student (Deep Run), 2020
  • Jared Beller -- High School Student (Deep Run), 2018
  • Kevin Ngo -- High School Student (Deep Run), 2017 -- Carnegie Mellon University

Recent Projects

  • Changeset-based Bug Localization and Feature Location -- Using changesets (i.e., diffs) as they are committed into a repository to create up-to-date models that can be searched for bug localization or feature location.
  • Mining and Understanding Developer Conversations -- Extracting information from various sources of developer communication, such as Q&A sites (e.g. StackOverflow), multi-participant chat (e.g. Slack), issue trackers, etc. in order to make it more accessible to developers or improve its quality.
  • Automatically Posing Clarifying Questions -- Using clarifying questions to improve the quality of software developer documentation, bug reporting, and searching for information.

Older Projects

  • Analysis of Developer Activity Logs -- Leveraging large scale datasets of developer micro-interactions with the IDE, in the field, to understand how they perform certain software engineering tasks. This research leads to recommendation systems that integrate such complex usage data.
  • Code Search (Feature Location)


  • TBA

No longer maintained:

  • StackInTheFlow -- StackInTheFlow is a recommendation system that suggests Stack Overflow articles in IntelliJ.
  • Sando Code Search Tool -- Sando is a Visual Studio extension that helps developers locate relevant code in a large code base. (over 22K downloads, as of February 2016)
  • SenSee Android App -- SenSee is an Android application that collects data from each of the device's sensors and includes the ability to store this data on DropBox.