The Software Evolution Research Group (Swevo)

Members of the McGill Software Evolution Research Group, May 2017
Past and present members of the McGill Software Evolution Research Group, May 2017

Current Students

Mathieu Nassif Mathieu NassifPh.D. Student.

I recently submitted my Master's thesis at McGill. I am interested in software documentation and the dynamics of knowledge captured by code. I completed my BSc in Mathematics at the Université de Montréal in June 2016.
Deeksha Arya Deeksha AryaM.Sc. Student.
Co-supervised with Jin Guo

I am a Master’s Student in Computer Science at McGill University. I am interested in Natural Language Processing and Machine Learning and their application and use in Software Engineering. I'm a dancer at heart. Keep W(a/o)ndering!



Name Period Main Contribution Current Position
Mohamed Boussaa 2017-2018 Automatic Failure Localization and Diagnosis for Cloud Computing Applications
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 Morgan Stanley
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

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

Undergraduate Project Students

  • Nima Adibpour (Fall 2018). "Docco"
  • Mitchell Bears (Fall 2018). "Docco"
  • Kaylee Kutschera (Winter 2018). "JetUML 2.0"
  • Huanyu Zhao (Winter 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.