About

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
  • Mining of software repositories
  • Software maintenance and evolution
  • Program comprehension
  • Software architectures
  • Empirical studies


News

  • August 2017: Released our new tool StackInTheFlow on the IntelliJ plugin repository.
  • April 2017: Congrats to Chase Greco, John Coogle, and Jeet Gajjar for winning the best computer science project award at the VCU Engineering Expo for the project "StackInTheFlow: StackOverflow Search Engine".
  • Jan 2017: Our TSE paper, "Mining Sequences of Developer Interactions in Visual Studio for Usage Smells", was selected as one of the journal-first publication to be presented at the main track of the International Conference on Software Engineering (ICSE 2017) in Buenos Aires, Argentina.
  • Nov 2016: Our proposal ``Mining Developer Communications to Create a Web-Scale Repository of Documented and Analyzable Snippets'' was funded by the DARPA MUSE program.
  • July 2016: Papers accepted IEEE Transactions on Software Engineering and the Journal on Visual Languages and Computing.


People

  • Dr. Kostadin Damevski
  • Manziba Akanda Nishi -- Ph.D. Student
  • Chase Greco -- M.S. Student
  • John Coogle -- M.S. Student
  • Jeet Gajjar -- B.S. Student
  • Tyler Haden -- B.S. Student
  • Lindsay Schowalter -- High School Student (St. Gertrude)
  • ...we are actively looking for people to join SWIM Lab. please contact Dr. Damevski if interested.

Alumni

  • Kevin Ngo -- High School Student (Deep Run), 2017


Recent Projects

  • Mining and Understanding Developer Communications -- Extracting information from various sources of developer communication, such as Q&A sites (e.g. StackOverflow), multiparticipant chat, issue trackers, etc.
  • Analysis of IDE Usage Telemetry Data -- Leveraging large scale datasets of developer micro-interactions with the IDE, in the field, to understand how they perform certain software engineering tasks.
    • Prioritizing investigation of exceptions. [ICSME 2017 Industry]
    • Detecting plagirism on class projects. [IEEE TLT]
    • Extracting high-level IDE behaviors. [IEEE TSE 2016][MSR 2016]
    • Understanding how developers locate features using modern IDEs. [EMSE 2015]
  • Code Search (Feature Location)


Software

In order of most to least recent.

  • 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.