Foutse Khomh

ORCID: 0000-0002-5704-4173
Publications
Citations
Views
---
Saved
---
About
Contact & Profiles
Research Areas
  • Software Engineering Research
  • Software Reliability and Analysis Research
  • Software System Performance and Reliability
  • Software Testing and Debugging Techniques
  • Software Engineering Techniques and Practices
  • Adversarial Robustness in Machine Learning
  • Advanced Malware Detection Techniques
  • Open Source Software Innovations
  • Advanced Software Engineering Methodologies
  • Cloud Computing and Resource Management
  • Machine Learning and Data Classification
  • Scientific Computing and Data Management
  • IoT and Edge/Fog Computing
  • Topic Modeling
  • Web Data Mining and Analysis
  • Green IT and Sustainability
  • Big Data and Business Intelligence
  • Explainable Artificial Intelligence (XAI)
  • Anomaly Detection Techniques and Applications
  • Service-Oriented Architecture and Web Services
  • Ethics and Social Impacts of AI
  • Mobile Crowdsensing and Crowdsourcing
  • Advanced Neural Network Applications
  • Reinforcement Learning in Robotics
  • Expert finding and Q&A systems

Polytechnique Montréal
2016-2025

Université de Montréal
2008-2024

University of Manitoba
2024

Queen's University
2011-2023

Jack Miller Center
2022-2023

University of Saskatchewan
2022

McGill University
2020-2021

Virginia Commonwealth University
2021

Western University
2020

Institute of Electrical and Electronics Engineers
2020

Bug tracking systems are valuable assets for managing maintenance activities. They widely used in open-source projects as well the software industry. collect many different kinds of issues: requests defect fixing, enhancements, refactoring/restructuring activities and organizational issues. These issues simply labeled "bug" lack a better classification support or knowledge about possible kinds.

10.1145/1463788.1463819 article EN 2008-01-01

Code smells are poor implementation choices, thought to make object-oriented systems hard maintain. In this study, we investigate if classes with code more change-prone than without smells. Specifically, test the general hypothesis: not change prone other classes. We detect 29 in 9 releases of Azureus and 13 Eclipse, study relation between these class change-proneness. show that, almost all others, that specific correlated others These results justify a posteriori previous work on...

10.1109/wcre.2009.28 article EN 2009-01-01

Antipatterns are "poor" solutions to recurring design problems which conjectured in the literature make object-oriented systems harder maintain. However, little quantitative evidence exists support this conjecture. We performed an empirical study investigate whether occurrence of antipatterns does indeed affect understandability by developers during comprehension and maintenance tasks. designed conducted three experiments, with 24 subjects each, collect data on performance basic tasks...

10.1109/csmr.2011.24 article EN 2011-03-01

10.1016/j.jss.2020.110542 article EN Journal of Systems and Software 2020-02-07

The presence of code and design smells can have a severe impact on the quality program. Consequently, their detection correction drawn attention both researchers practitioners who proposed various approaches to detect in programs. However, none these handle inherent uncertainty process. We propose Bayesian approach manage this uncertainty. First, we present systematic process convert existing state-of-the-art rules into probabilistic model. illustrate by generating model occurrences Blob...

10.1109/qsic.2009.47 article EN 2009-08-01

Code review is the process of having other team members examine changes to a software system in order evaluate its technical content and quality. A lightweight variant this practice, often referred as Modern Review (MCR), widely adopted by organizations today. Previous studies have established relation between practice code occurrence post-release bugs. While prior work impact practices on release quality, it still unclear what design Therefore, using 7 different types anti-patterns (i.e.,...

10.1109/saner.2015.7081827 article EN 2015-03-01

Nowadays, many software companies are shifting from the traditional 18-month release cycle to shorter cycles. For example, Google Chrome and Mozilla Firefox new versions every 6 weeks. These cycles reduce users' waiting time for a offer better marketing opportunities companies, but it is unclear if quality of product improves as well, since result in testing periods. In this paper, we empirically study development process 2010 2011, period during which project transitioned cycle. We compare...

10.5555/2664446.2664475 article EN Mining Software Repositories 2012-06-02

The First Symposium on Software Engineering for Machine Learning Applications (SEMLA) aimed to create a space in which machine learning (ML) and software engineering (SE) experts could come together discuss challenges, new insights, practical ideas regarding the of ML AI-based systems. Key challenges discussed included accuracy systems built using AI models, testing those systems, industrial applications AI, rift between SE communities. This article is part theme issue engineering's 50th anniversary.

10.1109/ms.2018.3571224 article EN IEEE Software 2018-09-01

We study the impact of design patterns on quality attributes in context software maintenance and evolution. show that, contrary to popular beliefs, practice negatively several attributes, thus providing concrete evidence against common lore. then object-oriented best practices by formulating a second hypothesis these principles quality. that results for some cannot be explained conclude need further studies. Thus, we bring should used with caution during development because they may actually impede

10.1109/csmr.2008.4493325 article EN 2008-04-01

Two similar code segments, or clones, form a clone pair within software system. The changes to the clones over time create evolution history. In this work we study late propagation, specific pattern of evolution. one in is modified, causing become inconsistent. segments are then re-synchronized later revision. Existing has established propagation as pattern, and suggested that related high number faults. examine characteristics two long-lived systems using Simian CCFinder detection tools. We...

10.1109/icsm.2011.6080794 article EN 2011-09-01

Nowadays, many software companies are shifting from the traditional 18-month release cycle to shorter cycles. For example, Google Chrome and Mozilla Firefox new versions every 6 weeks. These cycles reduce users' waiting time for a offer better marketing opportunities companies, but it is unclear if quality of product improves as well, since result in testing periods. In this paper, we empirically study development process 2010 2011, period during which project transitioned cycle. We compare...

10.1109/msr.2012.6224279 article EN 2012-06-01

Fixing bugs is an important activity of the software development process. A typical process bug fixing consists following steps: 1) a user files report, 2) assigned to developer, 3) developer fixes bug, 4) changed code reviewed and verified, 5) resolved. Many studies have investigated fixing. However, best our knowledge, none has explicitly analyzed interval between assignment time when starts. After assignment, some developers will immediately start while others after long period. We are...

10.1109/wcre.2012.32 article EN 2012-10-01

Bug prediction models are often used to help allocate software quality assurance efforts. Software metrics (e.g., process and product metrics) at the heart of bug models. However, some these like churn not actionable, on contrary, antipatterns which refer specific design implementation styles can tell developers whether a choice is "poor" or not. Poor designs be fixed by refactoring. Therefore in this paper, we explore use for prediction, strive improve accuracy proposing various based...

10.1109/icsm.2013.38 article EN 2013-09-01

The energy consumption of mobile apps is a trending topic and researchers are actively investigating the role coding practices on consumption. Recent studies suggest that design choices can conflict with Therefore, it important to take into account when evolving app. In this paper, we analyze impact eight type anti-patterns testbed 20 android extracted from F-Droid. We propose EARMO, novel anti-pattern correction approach accounts for refactoring anti-patterns. evaluate EARMO using three...

10.1109/tse.2017.2757486 article EN IEEE Transactions on Software Engineering 2017-09-28

Developers use Question and Answer (Q&A) websites to exchange knowledge expertise. Stack Overflow is a popular Q&A website where developers discuss coding problems share code examples. Although all posts are free access, examples on governed by the Creative Commons Attribute-ShareAlike 3.0 Unported license that should obey when reusing from or posting Overflow. In this paper, we conduct case study with 399 Android apps, investigate whether respect terms (and other way around). We found 232...

10.1109/saner.2017.7884629 preprint EN 2017-02-01

Machine-learning (ML) techniques are becoming more prevalent. ML rely on mathematics and software engineering. Researchers practitioners studying best practices strive to design systems that address complexity quality issues. Such often formalized as architecture patterns by encapsulating reusable solutions common problems within given contexts. However, a systematic study collect, classify, discuss these software-engineering (SE) for have yet be reported. Our research collects good/bad SE...

10.1109/iwesep49350.2019.00017 article EN 2019-12-01
Coming Soon ...