The Software Evolution Research Group (Swevo)

Members of the McGill Software Evolution Research Group, May 2017
Members of the McGill Software Evolution Research Group, May 2017

Current Students and Postdocs

Mohamed Boussaa Mohamed Boussaa
I am currently a postdoctoral researcher. Previously, I obtained a Ph.D. degree in Computer Science from the University of Rennes 1 as part of the DiverSE research team of IRISA–INRIA, France. During my PhD, I had the opportunity to work with Prof. Olivier Barais and Dr. Benoit Baudry on research fields related to software testing and optimisation. Particularly, we focused on the non-functional testing and tuning of highly configurable code generators.
Mathieu Nassif Mathieu Nassif
I am a second-year Master student at McGill. I recently worked on a risk analysis project where we analyzed how leaving developers lead to knowledge loss in a software system. My Master's thesis will focus on targeted information extraction from code using static analysis. I completed my B.Sc. in pure and applied mathematics at the Université de Montréal in June 2016.



Name Period Main Contribution Current Position
Christoph Treude 2012-2015 Extracting Development Tasks to Navigate Software Documentation Senior Lecturer at the University of Adelaide
Bradley Cossette 2014-2015 Eliciting User Interests in Reviews of Complex Products Advanced Analytics and Insights Manager, GM Canada.
Peter C. Rigby 2011-2012 Discovering Essential Code Elements in Informal Documentation Assistant Professor at Concordia University


Name Year Thesis Current Position
Annie Ying 2016 "Code Fragment Summarization" Lead Data Scientist at startup EquitySim
Barthélémy Dagenais 2012 "Analysis and Recommendations for Developer Learning Resources" Chief Technology Officer at startup Resulto
Ekwa Duala-Ekoko 2012 "Using Structure-Based Recommendations to Facilitate API Learnability". Director of Engineering at Fuze

M.Sc. Theses

Name Year Thesis Current Position
Inderjot Kaur Ratol 2017 "Detecting Fragile Comments" Java Developer at Ericsson
Gayane Petrosyan 2013 "Discovering Information Relevant to API Elements Using Text Classification" Software Developer at Google
Yam Chhetri 2012 "Classifying and Recommending Knowledge in Reference Documentation to Improve API Usability" Senior Software Engineer at Salesforce
Tristan Ratchford 2011 "Creating Application Programming Interface Code Templates from Usage Patterns" Senior Software Engineer at Wellington Management
David Kawrykow 2011 "Enabling Precise Interpretations of Software Change Data" Vice President (Technology) at Morgan Stanley
Isaac Yuen 2009 "Improving Software Modularity Through Crosscutting Concern Extraction" Senior Program Manager at Microsoft
Punit Agrawal 2009 "Program Navigation Analysis Using Machine Learning" Staff Software Engineer at ARM
Barthélémy Dagenais 2008 "Recommending Adaptive Changes for Framework Evolution" Chief Technology Officer at startup Resulto
Olivier Giroux 2007 ""Detecting Increases in Feature Coupling using Regression Tests" Principal Architect at NVIDIA

M.Sc. Projects

Name Year Project Title
Paul Husek 2017 Automated Processing of Stack Overflow Posts
Senjuti Kundu 2017 Relating Stereotypes and Documentation Patterns in API Documentation: A Case Study
Mangala Gowri Krishnamoorthy 2015 R Helper - a Learning Resource for the R Language
Imran Majid 2006 "NaCIN - Tool Support for Program Navigation-Based Concern Inference"

Research Assistants

  • Jiajun Chen (Intern 2016-2018). "Reverse Engineering Unit Tests". "Debugging Support for Cloud Applications"
  • Caroline Berger (Intern 2017). "Programming Environment for Children"
  • Bejal Lewis (Intern 2016-2017). "API Documentation"
  • Xiaoye Ding (Intern 2016). "Reverse Engineering Unit Tests"
  • Sahas Leelodharry (Intern 2016). "Comment Mining Infrastructure"
  • Paul Husek (Intern 2016). "Recovering Traceability Links Between Test and Project Methods"
  • Devon Ochman (Intern 2015). "TaskNav: Task-based Navigation of Software Documentation"
  • Mathieu Nassif (Intern 2013-2015). "Automatically Categorizing Software Technologies".
  • Kelley Zhao (Intern 2015). "TaskNav: Task-based Navigation of Software Documentation".
  • Mathieu Sicard (Intern 2014). "TaskNav: Task-based Navigation of Software Documentation".
  • Marc Klocke (Intern 2014). "TaskNav: Task-based Navigation of Software Documentation".
  • Joshua Liben (Intern 2013). "Infrastructure for API Documentation Analysis".
  • Mathieu Nassif (Intern 2013). "Infrastructure for API Documentation Analysis".
  • Dwijesh Bhageerutty (Intern 2012). "NLP Tooling for API Documentation Analysis".
  • Borui Zhang (Intern 2011). "Qualyzer".
  • Luke Bayly (Intern 2010). "API Usage Data Mining".
  • Jean-Benoit Chasles (Intern 2010). "Sweviz: Software Evolution Vizualization".
  • Jonathan Faubert (Intern 2010). "Qualyzer".
  • David Kawrykow (Intern 2008-2009). "Improving API Usage through Detection of Redundant Code".
  • Tristan Ratchford (Intern 2007-2009). "Automatically Recommending Triage Decisions for Pragmatic Reuse Tasks".
  • Jean-Rémi Desjardins (Intern 2008). "Refactoring Awareness for ConcernMapper".
  • David Marple (Intern 2008). "Code Traceability".
  • Putra Manggala (Intern 2007) ConcernDetector
  • Silvia Breu (Intern 2007). "Inferring Structural Patterns for Concern Traceability in Evolving Software".
  • Frédéric Weigand Warr (Intern 2005-2006). "ConcernMapper", "Suade", "Inferring Structural Patterns for Concern Traceability in Evolving Software".
  • Ekwa Duala-Ekoko (Intern 2006). "Tracking Code Clones in Evolving Software".
  • Jean-Sébastien Boulanger (Intern 2006). "Managing Concern Interfaces".

Undergradute Project Students

  • Kaylee Kutschera (Project 2018). "JetUML 2.0"
  • Huanyu Zhao (Project 2018). "JetUML"
  • Caroline Berger (Project 2017). "JTutor"
  • Alexander Chatron-Michaud (Project 2017). "API Documentation"
  • Joel Cheverie (Project 2015). JetUML - "The Simple UML Diagramming Tool"
  • Eric Quinn (Project 2015). JetUML - "The Simple UML Diagramming Tool."
  • Dominic Charley-Roy (Project 2014). "Reverse Engineering AngularJS Applications"
  • Ben Fisher (Project 2014). "Interface and API Design for Documentation Analysis"
  • Meki Cherkaoui (Project 2010). "Documentation Analysis".
  • Sevan Hanssian (Project 2008). "Web Documentation Analysis".
  • David Kawrykow (Project 2008). "Classifying Library Usage Patterns".
  • Mohammad Usman Ahmed (Project 2007). "Extensible Architecture for ConcernMapper".

Interested in joining?

Postdocs:I do not have an open funded postdoc position open at the moment. If you plan to have funding for postdoctoral research and are interested in conducting it in my group, please contact me.

Ph.D. Students: To do a Ph.D. under my supervision you will need a strong background and a research track record in software engineering or a related field, including a research degree (such as M.Sc.), and ideally at least one publication. To be considered as a potential Ph.D. student, you should first apply to the Ph.D. program, and then contact me with your application ID (except if you have applied for an NSERC or equivalent Canadian scholarship, in which case you can contact me ahead of the application deadline.

M.Sc. Students: First apply to the M.Sc. program and contact me once you are at McGill. Make sure to enroll in one of my graduate courses. If you plan to hold an NSERC or equivalent Canadian scholarship, please contact me before your application.

Undergraduates: The best way to inquire about opportunities for a research assistant position or self-directed project course is to enroll in one of my courses and talk to me in person. I do not currently offer internships to non-McGill students.