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.
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!). My research is on understanding how learning resources can cater to the different considerations people have when searching for software-related information online. I am also interested in exploring how we can leverage these resources to teach students without access to systematic computer science education, about software engineering concepts.
Bhagya Chembakottu Ph.D. Student
I'm currently pursuing a Ph.D. in Computer Science at McGill University, where my studies revolve around software engineering and its optimization, alongside in relation to its intersection with machine learning. I hold an M.Sc. in Computer and Software Engineering from Polytechnique Montréal.
Linh Nguyen Master's Student
I am a Master's student in Computer Science, and I received my Bachelor in Computer Science from Eindhoven University of Technology in the Netherlands. I am interested in the field of Software Engineering and Human-Computer Interaction, and I am also curious about the applications of Artificial Engineering in the research of the two mentioned fields.
Lanese Trimmigham Master's Student
I am a Computer Science Master's student with a Bachelor's degree from the University of the West Indies, Cave Hill. During my studies, I participated in exchange programs at Queen's University and the University of Merced, California. My research interest center around software engineering and human-computer interaction.
Abdullah Saad Master's Student
I am an MSc student in Computer Science at McGill University. My research focuses on enhancing software traceability and API usability to support developers in managing and navigating complex software systems. I received my Bachelor's degree in Software Engineering from the University of Guelph.
Jun Soo Kim Undergraduate Research Assistant
I am a third year B.A. student at McGill studying Computer Science. My interest lies in Software Engineering, and I'm keen to learn about all aspects of the Software Development process.
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 | Associate Professor at Singapore Management University |
Bradley Cossette | 2014-2015 | Eliciting User Interests in Reviews of Complex Products | Advanced Data Analytics and Insights Manager at General Motors |
Peter C. Rigby | 2011-2012 | Discovering Essential Code Elements in Informal Documentation | Associate Professor at Concordia University |
Name | Year | Thesis | Current Position |
---|---|---|---|
Mathieu Nassif | 2024 | On-Demand Documentation via Code Examples | |
Annie Ying | 2016 | Code Fragment Summarization | Lead Data Scientist at startup EquitySim |
Barthélémy Dagenais | 2012 | Analysis and Recommendations for Developer Learning Resources | CTO & Partner at Power Go |
Ekwa Duala-Ekoko | 2012 | Using Structure-Based Recommendations to Facilitate API Learnability. | Senior 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 |
---|---|---|
Jun Soo Kim | 2024 (S) | JetUML 3.8 |
Shushi Huang | 2024 (S) | Dynamic Documentation Tool |
Alex Armenciu | 2023 (S) | User Tracking on Health Information Portals |
Emily Shannon | 2023 (S) | Casdoc 3.1 |
Lawrence Berardelli | 2022 (S) | Correspondence between Software Documentation Resources |
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 |
---|---|---|
Vivian Li | Winter 2024 | Design Prototypes for Dynamic Documentation |
Jun Soo Kim | Winter 2024 | A Synthesis of Fonts Research and JetUML Development |
Tristan Stevens | Winter 2024 | Improvements to Database Fragments and Anchoring on Matched AST Nodes |
Artem Buyalo | Winter 2024 | Abstracting JetUML's ClassDiagramRenderer |
Muhammad Sohail | Fall 2023 | Investigating Test Quality: A Revision of Test Convention Consistency |
Arthus Wauquiez | Fall 2023 | Semantic Validation Based Feedback for Software Design Modeling |
Ruoyu Deng | Winter 2023 | Semantic Validation in JetUML |
Laurie Prince | Fall 2022 | Redesigning the persistence feature of JetUML with explicit validation support |
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 |
Ph.D. and M.Sc. applicants: 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. For an MSc the requirements are a bachelor in a related field with focus on software engineering, and some exposure to research (e.g., via a course project or internship). To indicate your interest to work under my supervision, please fill in this form and I will be notified by email. Please do not email me directly.
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.
Postdocs: I do not have an open funded postdoc position open at the moment. If you are applying for a postdoctoral fellowship and are interested in conducting it in my group, please contact me by email.