STEM SIGHTS: The Concordian who uses AI to fix software bugs
Imagine a program that can anticipate when software developers are about to make a mistake and alert them.
Mathieu Nayrolles, a PhD candidate in Concordia’s Department of Electrical and Computer Engineering, is working to make this a reality.
As a member of the Intelligent System Logging and Monitoring Research Lab, Nayrolles is investigating how to make the production of error-free software easier.
Developers want to avoid as many mistakes, or “bugs,” in their software as possible. Nayrolles is creating an artificial intelligence (AI) program that learns bug patterns from decades of old software code.
This tool allows developers to focus their attention on creating features rather than fixing bugs, says Nayrolles.
Along with his supervisor, Abdelwahab Hamou-Lhadj, he recently partnered with Ubisoft to test their AI program on industrial data. Commit Assistant, a prototype Ubisoft uses to catch bugs during their own game development, relies on many of the algorithms developed in Nayrolles’s research.
He also leads a team focused on improving product quality at Ubisoft.
‘Machine learning is a hot topic in academia and industry’
How does this specific image (above) relate to your research at Concordia?
This is a presentation I did at an internal workshop organized by Ubisoft at their headquarters in Paris. Lead programmers, experts and architects gathered to discuss how we can improve our code quality in order to better maintain complex software over the long run. My presentation demonstrated how my PhD thesis could be applied at Ubisoft and to what extent.
What is the hoped-for result of your project? And what impact could you see it having on people's lives?
Software development and maintenance is heavily influenced by human activity. Software systems tend to contain many bugs after they are released despite all efforts spent on testing. In fact, fixing defects is one of the most time-consuming tasks in software development.
Automating this process can help companies produce better and more reliable systems at lower costs, enable software developers to focus on developing new features that add value to customers, improve their reputation in the market, and give users access to reliable and safe software systems.
What are some of the major challenges you face in your research? What are some of the key areas where your work could be applied?
One word: data. Machine learning is a hot topic in academia and industry. but it requires huge quantities of data to be accurate. As a researcher, you can model and validate your approaches on open-source data but it's also important to test them on industrial data.
What person, experience or moment in time first inspired you to study this subject and get involved in the field?
My first industrial experience was in Saint-Gobain, France, the world leader in the habitat market. I saw how hard it was for experienced developers to produce qualitative software in a geographically dispersed team and with very constraining hardware requirements. Following this experience, I decided to focus my efforts on making things easier for my fellow programmers.
How can interested STEM students get involved in this line of research? What advice would you give them?
Learn as many programming languages as you can and how people build large software systems. I recommend consulting the Pragmatic Bookshelf, as well as the Architecture of Open Source Applications series.
What do you like best about being Concordia?
The excellence of the academic personnel, the melting pot of nationalities and past experiences within the student community.
Are there any partners, agencies or other funding/support attached to your research?
The project is funded by the Natural Sciences and Engineering Research Council of Canada (NSERC). I also receive funding from the Fonds de recherche du Québec - Nature et technologies (FRQ-NT) and Mitacs.
Ubisoft developers helped improve the tool and provided us with valuable feedback throughout the entire project. The management of Ubisoft Laforge, particularly Yves Jacquier and Olivier Pomarez, supported every step of the project from day one.
Learn more about Concordia's Department of Electrical and Computer Engineering.
Watch a video about Ubisoft's Commit Assistant, which relies on algorithms developed in Nayrolle's research.