The McGill Software Technology Lab

The McGill Software Technology Lab is jointly led by Profs. Jin Guo and Martin Robillard.

We investigate how to facilitate the discovery and acquisition of crucial technical, design, and domain knowledge to support the development of complex software systems. Our research areas include automated documentation generation, software traceability, API usability, advanced programming tools, and computer science education. We work at the intersection of software engineering, artificial intelligence, and human-computer interaction.

Past and present members of the McGill Software Technology Lab, September 2019.
Past and present members of the McGill Software Technology Lab, September 2019.

Current Students

Mathieu Nassif Mathieu NassifPh.D. Student

I am a Ph.D. student in Computer Science at McGill University. My research focuses on the extraction, representation, and manipulation of knowledge in software systems to optimize the contribution of developers. I received my M.Sc. in Computer Science from McGill University and my B.Sc. in Mathematics from Université de Montréal.
Deeksha Arya Deeksha AryaPh.D. Student
Co-supervised with Jin Guo

I am a PhD Student in Computer Science at McGill University (and a professional dancer!). I am interested in software documentation and its role in CS education. I'm also curious about the application of natural language processing and machine learning in software engineering research. Keep w(a/o)ndering!
Alexa Alexa HernandezMaster's Student

My research interests include software design, maintenance, and evolution. I received a B.A.in Computer Science at McGill University.
Lucas Lucas TurpinMaster's Student

I am passionate about software engineering and how complex software systems are built. I completed my B.Eng. in Software Engineering at Concordia University.
Louis-Bertrand Louis-Bertrand VarinMaster's Student

I am a back-end developer at Unito working on a release engineering project for my Master's. I completed my B.A.Sc. in Computer Science at Université du Québec à Montréal (UQAM).
Zara Horlacher Zara HorlacherUndergraduate Research Assistant

I am an undergraduate student at McGill University majoring in Computer Science. My research interests include software design and algorithm design.
Fariha Anika Fariha AnikaUndergraduate Research Project

I am a second year McGill student completing my B.Sc. in Software Engineering. I have experience in bioinformatics and am now pursuing further research in software design.
Yann Sartori Yann SartoriUndergraduate Research Project

I am an undergraduate student at McGill, studying computer science. I am interested in software design due to the manageability it provides regarding development.
Yingjie Xu Yingjie XuUndergraduate Research Project

I am an undergraduate software engineering student at McGill University. I am interested in software design and maintenance.

Alumni

Postdoc

Name Period Main Contribution Current Position
Mohamed Boussaa 2017-2018 Automatic Failure Localization and Diagnosis for Cloud Computing Applications R&D Engineer at ActiveEon, France
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

Ph.D.

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
Deeksha Arya* 2019 Exploring the Correspondence between Types of Documentation for Application Programming Intefaces Ph.D. Student at McGill
Mathieu Nassif 2018 Embedding Constructural Documentation in Unit Tests Ph.D. Student at McGill
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
Olivier Grenier-Leboeuf Summer 2020 Commenting Practices in Open Source Java Software
Madonna Huang Summer 2020 Advanced Sequence Diagram Features for JetUML
Alison Li 2019 Opportunistic Concept Acquisition in Programming
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

Name Period Project Title
Olivier Grenier-Leboeuf Fall 2020 JetUML 3.1
Madonna Huang Winter 2020 JetUML 2.6
Alexa Hernandez Winter 2020 Generating Unit Tests for Documentation
Emma Guthrie Winter 2020 TutorialBuilder
Asvitha Sridharan Fall 2019 Generating Unit Tests for Documentation
Alison Li Fall 2019 Opportunistic Concept Acquisition in Programming
Nima Adibpour Fall 2018 Docco: Documentation-Code Traceability Tool
Mitchell Bears Fall 2018 Docco: Documentation-Code Traceability Tool
Kaylee Kutschera Winter 2018 JetUML 2.0; Lessons Learned While Migrating From Swing to JavaFX
Huanyu Zhao Winter 2018 Design prototype for JetUML
Caroline Berger Winter 2017 JTutor: A programming tool for children
Alexander Chatron-Michaud Winter 2017 API Documentation with natural language processing
Joel Cheverie Winter 2015 JetUML
Eric Quinn Winter 2015 JetUML
Dominic Charley-Roy Fall 2014 Reverse engineering AngularJS applications
Ben Fisher Winter 2014 Design prototype for TaskNav
Meki Cherkaoui Fall 2010 Preliminary study of documentation patterns
Sevan Hanssian Fall 2008 Automatic analysis of software documentation
David Kawrykow Winter 2008 Improving API Usage through Detection of Redundant Code
Mohammad Usman Ahmed Winter 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.