11 Dec 2018 |
Research article |
Information and Communications Technologies
Improving Source Code Quality Using Artificial Intelligence
Professor Ali Ouni, who was welcomed to the Department of Software Engineering and IT during the fall of 2017, is interested in software maintenance, evolution and quality, and optimization techniques applications, namely metaheuristics to software engineering.
The featured image was bought on Istock.com and is protected by copyrights.
Born in Tunisia where he received the most prestigious scholarship from the Tunisian government for the quality of his bachelor and master’s, Ali Ouni chose to come to the University of Montreal to pursue his PhD in computer science, where he received his doctorate in 2014. For his exceptional Ph.D. research productivity, he was awarded the Outstanding Research Award from the University of Montreal, the highest university honor that PhD students engaged in research can receive.
His studies, research projects and teaching assignments have taken him to the United States, Japan and the Middle East. During his PhD studies, he was a visiting researcher at both the University of Michigan and the University of Missouri. He later conducted research and taught at Osaka University, Japan, and at the United Arab Emirates University before joining ÉTS.
Source Code Refactoring
With a specific interest to software engineering including object- and service-oriented software systems, and mobile applications, , his research focuses on the use of artificial intelligence techniques—including machine learning and metaheuristics—to develop software quality enhancement tools and approaches. The goal is to support the volatile software lifecycle by providing better ways to reduce and manage the growing complexity of software systems. Ultimately, these techniques help increase developer productivity and substantially reduce software maintenance costs, which account for approximately 70 percent of a software’s total budget.
“Typically, developers focus on fixing bugs, adding new features, and adapting to new environments. They are often subject to time and budget constraints and cannot provide flawless design/coding solutions or even maintain quality standards during the software’s life cycle without efficient automated tools support”.
This is where my research comes into play. I am trying to promote and develop good software coding and design practices,” says the researcher. “Refactoring is a disciplined way that allows to progressively improve software quality by improving a program’s internal structure, while preserving its external behaviour.”
Multi-Objective Approach to Refactoring
In his PhD thesis, Professor Ouni proposed a multi-objective approach to improve software quality (flexibility, maintainability, etc.), correct “bad” design practices (design flaws), and introduce “good” design practices (design patterns) through automated refactoring. Even today, these objectives adequately summarize the major areas of his expertise.
Ali Ouni wants to develop user-friendly, robust and practical tools that would work in real time and revolutionize the way developers implement, maintain and evolve their code. These tools are intended to be integrated into modern development environments.
Links with Industry
With industrial experience from Ford in Michigan, and Panasonic in Japan, Professor Ouni intends to continue working with these organizations, but also to develop new partnerships with Quebec industry.
A Prolific Author
Professor Ouni’s publications are often cited and the quality of his work has already earned him prestigious awards. He has been recently ranked among the “Most Active Early Stage Software Engineering Researchers in Top-Quality Journal” according to a recent bibliometric assessment published in the Journal of Systems and Software. Among the first researchers to focus on preserving source code coherence and semantics during the refactoring process, he was recently ranked also as one of the most active researchers in the field of search-based refactoring in a study published in the journal Information and Software Technology.