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.
![]() |
Mathieu Nassif • Ph.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 • Ph.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 Hernandez • Master's Student My research interests include software design, maintenance, and evolution. I received a B.A.in Computer Science at McGill University. |
![]() |
Ziming Wang • Master's Student I received my B.A.Sc. in Computer Engineering at University of Ottawa. My research interests are in the fields of Software Engineering and Machine Learning. |
![]() |
Lawrence Berardelli •
Undergraduate Research Assistant I'm a B.Sc student in Computer Science at McGill University. I am interested in software design and documentation. |
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 |
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 |
Name | Year | Project Title |
---|---|---|
Louis-Bertrand Varin | 2022 | A Study of Language-Independent Package Management With Flatpak |
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 |
Name | Period | Project Title |
---|---|---|
Zara Horlacher | 2021 (WSF) | Dynamic Developer Documentation |
Elby MacKenzie | 2021 (S) | Test Suite Quality Analysis |
Olivier Grenier-Leboeuf | 2020 (S) | Commenting Practices in Open Source Java Software |
Madonna Huang | 2020 (S) | Advanced Sequence Diagram Features for JetUML |
Alison Li | 2019 (SF) | 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 |
Name | Period | Project Title |
---|---|---|
Madelyn Lecsek | Winter 2022 | Adding a Path-Planning Feature to JetUML |
Lawrence Berardelli | Winter 2022 | Testing the DScribe Test Generator |
Delphine Pilon | Fall 2021 | JetUML Performance-Oriented Design Improvements |
Yingjie Xu | Winter 2021 | JetUML 3.2 Diagram Layout Enhancements |
Yann Sartori | Winter 2021 | Label Rendering Improvements in JetUML 3.2 |
Fariha Anika | Winter 2021 | Status Bar Proof of Concept for JetUML 3.2 |
Olivier Grenier-Leboeuf | Fall 2020 | Tip of the Day Feature For 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 C. | 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 |
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 indicate your interest to work under my supervision, please fill in this form.
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.