VLDB 2026 Research / reviewers in the wild / expert
Mohamed Wiem Mkaouer
dblp:140/0883 · also Wiem Mkaouer
· DBLP profile ↗
108ranked-venue papers
7as first author
79since 2021 · last 2026
0000-0001-6010-7561ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 83 · 6 first-author · 59 since 2021Artificial intelligence and machine learning · 17 · 3 first-author · 9 since 2021Databases, data management, data science and information retrieval · 9 · 8 since 2021Human-computer interaction and ubiquitous computing · 9 · 9 since 2021Applied, interdisciplinary, general and emerging computing · 8 · 7 since 2021Computer networks · 1 · 1 since 2021
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Personalizing LLMs for Financial Regulation Using RAG and Knowledge Graphs: A Case Study at Regnology
Amal Ben Abdelhafidh, Montassar Ben Messaoud, Mohamed Tounsi 0004, Mohamed Wiem Mkaouer |
COMPSAC | 4 |
| 2026 | A Preliminary Study on How AI Coding Agents Describe Refactoring Activities
Aymen Masmoudi, Belhassen Khefacha, Andrew Haralambous, Eman Abdullah AlOmar, Mohamed Wiem Mkaouer |
COMPSAC | 5 |
| 2026 | A Preliminary Study on How AI Coding Agents Describe Refactoring Activities
Aymen Masmoudi, Belhassen Khefacha, Andrew Haralambous, Eman Abdullah AlOmar, Mohamed Wiem Mkaouer |
COMPSAC | 5 |
| 2026 | AMP-SRD: An Agentic Multi-Pipeline Framework for Characterizing Semantic, Structural, and Performance Regressions Introduced by Code Changes
Sabrine Boussema, Brahim Hnich, Ali Ben Mrad, Mohamed Wiem Mkaouer |
ICAART (3) | 4 |
| 2026 | LARK: License analysis with RAG and knowledge graphs
Ilyes Ben Khalifa, Montassar Ben Messaoud, Mohamed Wiem Mkaouer |
Inf. Softw. Technol. | 3 |
| 2026 | On the effectiveness of large language models in predicting new method names after code modifications
Ali Ben Mrad, Abdoul Majid O. Thiombiano, Mohamed Wiem Mkaouer, Brahim Hnich |
Inf. Softw. Technol. | 3 |
| 2026 | A search-based file recommendation approach for infrastructure-as-code evolution
Narjes Bessghaier, Ali Ouni 0001, Mohammed Sayagh, Mohamed Wiem Mkaouer |
J. Syst. Softw. | 4 |
| 2026 | Hierarchical multi-label classification for concrete defects: An industrial case study at Vermeg
Montassar Ben Messaoud, Ahmed Nour, Ilyes Ben Khalifa, Mohamed Tounsi 0004, Mohamed Wiem Mkaouer |
J. Syst. Softw. | 5 |
| 2026 | AntiCopyPaster 3.0: Just-in-Time Clone RefactoringabstractRefactoring is a crucial practice in software maintenance that aims at improving design and coding practices while addressing design flaws. The Extract Method refactoring is particularly popular for consolidating duplicate code fragments into a single method. Various studies have explored ways to recommend Extract Method refactoring opportunities using techniques such as program slicing, program dependency graph analysis, change history analysis, structural similarity, and feature extraction. Despite their effectiveness, these approaches often disrupt the developer’s workflow, requiring them to pause their coding and assess the refactoring opportunities suggested throughout the project, without considering the specific development context. To enhance the adoption of Extract Method refactoring, our previous work proposed AntiCopyPaster 2.0 and investigated the effectiveness of detecting and extracting code clones without disrupting the developer’s workflow. To address these limitations, we develop a new approach in this article that supports the detection of Type-1 and Type-2 clones using the Program Structure Interface (PSI) and includes a custom-built Extract Method refactoring tool. We implement our approach using an IntelliJ IDEA extension plugin. Additionally, we integrated name recommendation models, including IntelliJ’s built-in recommender and Code2Vec , to enhance the quality of method names and improve developer productivity. To evaluate the accuracy and usefulness of our approach, we conducted a qualitative study involving 13 developers. The results indicate that (1) developers appreciate the approach and are satisfied with various aspects of the plugin’s functionality, (2) PSI effectively identifies clones by analyzing the structural and semantic aspects of the code, (3) IntelliJ’s naming recommender often provides default generic names, while code2vec produces descriptive and relevant names based on the code context, (4) the performance of AntiCopyPaster remains stable regardless of the file size and the number of clones present, (5) despite different detection and correction mechanisms, JDeodorant and AntiCopyPaster were able to perform method extraction, and AntiCopyPaster features just-in-time detection and correction, and (6) our results show an improvement in code quality after performing Extract Method refactoring with both refactoring tools. We envision that our AntiCopyPaster solution can streamline the Extract Method refactoring process, enhancing both developer efficiency and code quality by seamlessly integrating Type-2 clone detection and name recommendation capabilities in the development workflow. Eman Abdullah AlOmar, Jacob Ashkenas, Robert Feliciano, Matthew Angelakos, Dimitrios Haralamppopoulos, Xing Qian, Mohamed Wiem Mkaouer, Ali Ouni 0001 |
ACM Trans. Softw. Eng. Methodol. | 7 |
| 2025 | Automated Duplicate Bugs Detection: Do We Really Need All Bug Report Sections?
Lobna Ghadhab, Ilyes Jenhani, Montassar Ben Messaoud, Mohamed Wiem Mkaouer |
CoopIS | 4 |
| 2025 | Scalar: A Part-of-Speech Tagger for IdentifiersabstractThe paper presents the Source Code Analysis and Lexical Annotation Runtime (SCALAR), a tool specialized for mapping (annotating) source code identifier names to their corresponding part-of-speech tag sequence (grammar pattern). SCALAR's internal model is trained using scikit-learn's GradientBoostingClassifier in conjunction with a manually-curated oracle of identifier names and their grammar patterns. This specializes the tagger to recognize the unique structure of the natural language used by developers to create all types of identifiers (e.g., function names, variable names etc.). SCALAR's output is compared with a previous version of the tagger, as well as a modern off-the-shelf part-of-speech tagger to show how it improves upon other taggers' output for annotating identifiers. The code is available on Github11https://github.com/SCANL/scanl_tagger Christian D. Newman, Brandon Scholten, Sophia Testa, Joshua Behler, Syreen Banabilah, Michael L. Collard, Michael John Decker, Mohamed Wiem Mkaouer, Marcos Zampieri, Eman Abdullah AlOmar, Reem S. Alsuhaibani, Anthony Peruma, Jonathan I. Maletic |
ICPC | 8 |
| 2025 | VRTestSniffer: Test Smell Detector for Virtual Reality (VR) Software ProjectsabstractVirtual Reality (VR) is an emerging technology increasingly adopted in sectors such as gaming, education, border security, and industrial training. However, testing VR applications presents unique challenges due to factors like active user interaction, hardware dependencies, and immersive environments. Recent studies suggest that developers often write fewer test cases for VR applications, and these limited test cases frequently exhibit test smells. Current research on VR test smell detection can only identify a small subset of test smells and often lacks the necessary context for comprehensive detection. This highlights a critical gap in current testing practices for VR applications and underscores the need for approaches tailored to detecting and addressing quality issues in VR test cases.To address this research gap, we developed VRTestSniffer, a static analysis-based tool that extends test smell detection capabilities specifically for Unity-based VR applications. VRTestSniffer can detect 17 test smell categories, building upon those identified by the state-of-the-art tool tsDetect, and achieves an F1-score of 95.61%. It leverages abstract syntax trees (ASTs), control flow graphs (CFGs), and data flow graphs (DFGs) to enhance detection accuracy by capturing both control and data dependencies specific to VR testing patterns. In parallel, we conducted an empirical analysis of real-world VR projects to examine the prevalence and characteristics of these test smells. Our findings reveal that a few smelly test categories are associated with design issues such as Blob and Complex Class in functional code. We believe that VRTestSniffer, along with the empirical insights derived from this study, can help VR developers write more effective, reliable, and maintainable test cases. To support further research and replication, our tool, dataset, and analysis results are publicly available at [1]. Faraz Gurramkonda, Avishak Chakroborty, Bruce R. Maxim, Mohamed Wiem Mkaouer, Foyzul Hassan |
ASE | 4 |
| 2025 | Analyzing Vulnerability Overestimation in the Maven EcosystemabstractThe widespread use of third-party dependencies in software development has heightened concerns about security vulnerabilities, especially those introduced via transitive dependencies. Current vulnerability assessment tools often overestimate the attack surface by including bloated dependencies-unused components within dependency trees-leading to inflated risk evaluations. This paper investigates the role of bloated dependencies in vulnerability overestimation, focusing on Maven-based projects. Utilizing a dataset from Maven Central Dependency Graph, enriched with Weaver metrics, we identify patterns of dependency bloat and quantify its impact on risk assessments. Our findings demonstrate how excluding bloated dependencies from evaluations can provide a more accurate and actionable view of a project’s security risks. The study also discusses the limitations of existing tools, offering insights into refining vulnerability assessment methodologies for modern software ecosystems. Our artifacts are available at: https://github.com/smilevo/MavenVulnerability CCS Concepts • Software Engineering $\rightarrow$ Open source software; Vulnerability management Taha Draoui, Faten Jebari, Chawki Ben Slimen, Munjaap Uppal, Mohamed Wiem Mkaouer |
MSR | 5 |
| 2025 | An Empirical Study on Microservices Deployment Trends, Topics and Challenges in Stack OverflowabstractMicroservices architecture is increasingly adopted in modern software projects. Microservices deployment is often managed by tools like Spring Cloud, Consul, and Docker. Although there is existing research on microservices, practical deployment challenges are still under-explored, impacting the efficiency and success of applications. In this paper, we aim to identify and understand the challenges developers encounter with microservices deployment. We analyze trends in help requests on Stack Overflow, one of the most popular Q&A platforms for developers, to identify and categorize these challenges and highlight the most popular and difficult ones. First, we examined 1,214 Stack Overflow posts related to microservices deployment using topic modelling based on the BERTopic method to extract and analyze challenge topics. To obtain a more comprehensive understanding, we also analyzed the identified topics according to their popularity and difficulty. Our results reveal that discussions related to microservices deployment vary over time from 2013 to 2023. We identified nine distinct topics related to microservices deployment challenges, including deployment strategies, data management, composition and discovery, containerization, configuration, and orchestration in Kubernetes, security management, CI/CD pipeline automation, exposure to external clients, and post-deployment monitoring. Results reveal that microservices containerization is the most popular topic that poses numerous challenges to many users, with 2,148 average views and a 3.19 average score. While composition and discovery and post deployment monitoring are the most challenging topics, with 78 % of questions on post deployment monitoring lacking accepted answers, and 28 % of questions about composition and discovery remaining unanswered. This study identifies critical areas in microservices deployment that need further investigation, particularly, difficult and popular ones. Amina Bouaziz, Mohamed Aymen Saied, Mohammed Sayagh, Ali Ouni 0001, Mohamed Wiem Mkaouer |
SANER | 5 |
| 2025 | Towards understanding code review practices for infrastructure-as-code: An empirical study on OpenStack projects
Narjes Bessghaier, Ali Ouni 0001, Mohammed Sayagh, Moataz Chouchen, Mohamed Wiem Mkaouer |
Empir. Softw. Eng. | 5 |
| 2025 | On the structure and semantics of identifier names containing closed syntactic category wordsabstractAbstract Identifier names are crucial components of code, serving as primary clues for developers to understand program behavior. This paper investigates the linguistic structure of identifier names by extending the concept of grammar patterns, which represent the part-of-speech (PoS) sequences underlying identifier phrases. The specific focus is on closed syntactic categories (e.g., prepositions, conjunctions, determiners), which are rarely studied in software engineering despite their central role in general natural language. To study these categories, the Closed Category Identifier Dataset (CCID), a new manually annotated dataset of 1,275 identifiers drawn from 30 open-source systems, is constructed and presented. The relationship between closed-category grammar patterns and program behavior is then analyzed using grounded-theory-inspired coding, statistical, and pattern analysis. The results reveal recurring structures that developers use to express concepts such as control flow, data transformation, temporal reasoning, and other behavioral roles through naming. This work contributes an empirical foundation for understanding how linguistic resources encode behavior in identifier names and supports new directions for research in naming, program comprehension, and education. Christian D. Newman, Anthony Peruma, Eman Abdullah AlOmar, Mahie Crabbe, Syreen Banabilah, Reem S. Alsuhaibani, Michael John Decker, Farhad Akhbardeh, Marcos Zampieri, Mohamed Wiem Mkaouer, Jonathan I. Maletic |
Empir. Softw. Eng. | 10 |
| 2024 | Empirical Investigation of Accessibility Bug Reports in Mobile Platforms: A Chromium Case StudyabstractAccessibility is an important quality factor of mobile applications. Many studies have shown that, despite the availability of many resources to guide the development of accessible software, most apps and web applications contain many accessibility issues. Some researchers surveyed professionals and organizations to understand the lack of accessibility during software development, but few studies have investigated how developers and organizations respond to accessibility bug reports. Therefore, this paper analyzes accessibility bug reports posted in the Chromium repository to understand how developers and organizations handle them. More specifically, we want to determine the frequency of accessibility bug reports over time, the time-to-fix compared to traditional bug reports (e.g., functional bugs), and the types of accessibility barriers reported. Results show that the frequency of accessibility reports has increased over the years, and accessibility bugs take longer to be fixed, as they tend to be given low priority. Wajdi Aljedaani, Mohamed Wiem Mkaouer, Marcelo Medeiros Eler, Marouane Kessentini |
CHI | 2 |
| 2024 | Cultivating Software Quality Improvement in the Classroom: An Experience with ChatGPTabstractLarge Language Models (LLMs), like ChatGPT, have gained widespread popularity and usage in various software engineering tasks, including programming, testing, code review, and program comprehension. However, their effectiveness in improving software quality in the classroom remains uncertain. In this paper, our aim is to shed light on our experience in teaching the use of Programming Mistake Detector (PMD) to cultivate a bugfix culture and leverage LLMs to improve software quality in educational settings. This paper discusses the results of an experiment involving 102 submissions that carried out a code review activity of 1,230 rules. Our quantitative and qualitative analysis reveals that a set of PMD quality issues influences the acceptance or rejection of the issues, and design-related categories that take longer to resolve. Although students acknowledge the potential of using ChatGPT during code review, some skepticism persists. We envision our findings to enable educators to support students with code review strategies to raise students' awareness about LLMs and promote software quality in education. Eman Abdullah AlOmar, Mohamed Wiem Mkaouer |
CSEE&T | 2 |
| 2024 | On the Rationale and Use of Assertion Messages in Test Code: Insights from Software PractitionersabstractUnit testing is an important practice that helps ensure the quality of a software system by validating its behavior through a series of test cases. Core to these test cases are assertion statements, which enable software practitioners to validate the correctness of the system's behavior. To aid with understanding and troubleshooting test case failures, practitioners can include a message (i.e., assertion message) within the assertion statement. While prior studies have examined the frequency and structure of assertion messages by mining software repositories, they do not determine their types or purposes or how practitioners perceive the need for or the usage of various types of assertion messaaes. In this paper, we survey 138 professional software practitioners to gather insights into their experience and views regarding assertion messages. Our findings reveal that a majority of survey respondents find assertion messages valuable for troubleshooting failures, improving test understandability, and serving as doc-umentation. However, not all respondents consistently include messages in their assertion methods. We also identified common considerations for constructing effective assertion messages, challenges in crafting them, maintenance techniques, and their integration into debugging processes. Our results contribute to the understanding of current practices and provide guidelines for authoring high-quality assertion messages, serving as a foundation for best practices and coding standards. Furthermore, the insights can guide the improvement of automated unit testing tools by incorporating checks for the presence and quality of assertion messages and providing real-time feedback to practitioners. Anthony Peruma, Taryn Takebayashi, Rocky Huang, Joseph Carmelo Averion, Veronica Hodapp, Christian D. Newman, Mohamed Wiem Mkaouer |
ICSME | 7 |
| 2024 | Assessing Large Language Models Effectiveness in Outdated Method Renaming
Ali Ben Mrad, Abdoul Majid O. Thiombiano, Mohamed Wiem Mkaouer, Brahim Hnich |
ICSOC (1) | 3 |
| 2024 | Insights from the Field: Exploring Students' Perspectives on Bad Unit Testing PracticesabstractEducating students about software testing practices is integral to the curricula of many computer science-related courses and typically involves students writing unit tests. Similar to production/source code, students might inadvertently deviate from established unit testing best practices, and introduce problematic code, referred to as test smells, into their test suites. Given the extensive catalog of test smells, it becomes challenging for students to identify test smells in their code, especially for those who lack experience with testing practices. In this experience report, we aim to increase students' awareness of bad unit testing practices, and detail the outcomes of having 184 students from three higher educational institutes utilize an IDE plugin to automatically detect test smells in their code. Our findings show that while students report on the plugin's usefulness in learning about and detecting test smells, they also identify specific test smells that they consider harmless. We anticipate that our findings will support academia in refining course curricula on unit testing and enabling educators to support students with code review strategies of test code. Anthony Peruma, Eman Abdullah AlOmar, Wajdi Aljedaani, Christian D. Newman, Mohamed Wiem Mkaouer |
ITiCSE (1) | 5 |
| 2024 | How to Refactor this Code? An Exploratory Study on Developer-ChatGPT Refactoring ConversationsabstractLarge Language Models (LLMs), like ChatGPT, have gained widespread popularity and usage in various software engineering tasks, including refactoring, testing, code review, and program comprehension. Despite recent studies delving into refactoring documentation in commit messages, issues, and code review, little is known about how developers articulate their refactoring needs when interacting with ChatGPT. In this paper, our goal is to explore conversations between developers and ChatGPT related to refactoring to better understand how developers identify areas for improvement in code and how ChatGPT addresses developers' needs. Our approach relies on text mining refactoring-related conversations from 17,913 ChatGPT prompts and responses, and investigating developers' explicit refactoring intention. Our results reveal that (1) developer-ChatGPT conversations commonly involve generic and specific terms/phrases; (2) developers often make generic refactoring requests, while ChatGPT typically includes the refactoring intention; and (3) various learning settings when prompting ChatGPT in the context of refactoring. We envision that our findings contribute to a broader understanding of the collaboration between developers and AI models. Eman Abdullah AlOmar, Anushkrishna Venkatakrishnan, Mohamed Wiem Mkaouer, Christian D. Newman, Ali Ouni 0001 |
MSR | 3 |
| 2024 | Fine-Grained Just-In-Time Defect Prediction at the Block Level in Infrastructure-as-Code (IaC)abstractInfrastructure-as-Code (IaC) is an emerging software engineering practice that leverages source code to facilitate automated configuration of software systems' infrastructure. IaC files are typically complex, containing hundreds of lines of code and dependencies, making them prone to defects, which can result in breaking online services at scale. To help developers early identify and fix IaC defects, research efforts have introduced IaC defect prediction models at the file level. However, the granularity of the proposed approaches remains coarse-grained, requiring developers to inspect hundreds of lines of code in a file, while only a small fragment of code is defective. To alleviate this issue, we introduce a machine-learning-based approach to predict IaC defects at a fine-grained level, focusing on IaC blocks, i.e., small code units that encapsulate specific behaviours within an IaC file. We trained various machine learning algorithms based on a mixture of code, process, and change-level metrics. We evaluated our approach on 19 open-source projects that use Terraform, a widely used IaC tool. The results indicated that there is no single algorithm that consistently outperforms the others in 19 projects. Overall, among the six algorithms, we observed that the LightGBM model achieved a higher average of 0.21 in terms of MCC and 0.71 in terms of AUC. Models analysis reveals that the developer's experience and the relative number of added lines tend to be the most important features. Additionally, we found that blocks belonging to the most frequent types are more prone to defects. Our defect prediction models have also shown sensitivity to concept drift, indicating that IaC practitioners should regularly retrain their models. Mahi Begoug, Moataz Chouchen, Ali Ouni 0001, Eman Abdullah AlOmar, Mohamed Wiem Mkaouer |
MSR | 5 |
| 2024 | How Do So ware Developers Use ChatGPT? An Exploratory Study on GitHub Pull RequestsabstractNowadays, Large Language Models (LLMs) play a pivotal role in software engineering. Developers can use LLMs to address software development-related tasks such as documentation, code refactoring, debugging, and testing. ChatGPT, released by OpenAI, has become the most prominent LLM. In particular, ChatGPT is a cutting-edge tool for providing recommendations and solutions for developers in their pull requests (PRs). However, little is known about the characteristics of PRs that incorporate ChatGPT compared to those without it and what developers usually use it for. To this end, we quantitatively analyzed 243 PRs that listed at least one ChatGPT prompt against a representative sample of 384 PRs without any ChatGPT prompts. Our findings show that developers use ChatGPT in larger, time-consuming pull requests that are five times slower to be closed than PRs that do not use ChatGPT. Furthermore, we perform a qualitative analysis to build a taxonomy of the topics developers primarily address in their prompts. Our analysis results in a taxonomy comprising 8 topics and 32 sub-topics. Our findings highlight that ChatGPT is often used in review-intensive pull requests. Moreover, our taxonomy enriches our understanding of the developer's current applications of ChatGPT. Moataz Chouchen, Narjes Bessghaier, Mahi Begoug, Ali Ouni 0001, Eman Abdullah AlOmar, Mohamed Wiem Mkaouer |
MSR | 6 |
| 2024 | Analyzing Developer-ChatGPT Conversations for Software Refactoring: An Exploratory StudyabstractIn recent years, Large Language Models (LLMs) have witnessed a remarkable ascent, with OpenAI's ChatGPT, introduced in 2022, garnering substantial attention. ChatGPT's rapid adoption in the software development community has opened up new avenues for exploring its qualitative and quantitative impact on Developer-ChatGPT conversations. In this paper, we delve into a rich dataset from GitHub and Hacker News to perform a thorough analysis. Our objectives include characterizing the nature of these interactions and evaluating the use of ChatGPT in refactoring. To achieve these goals, we employ a combination of exploratory data analysis and data annotation, utilizing relevant keyword filters to extract pertinent information. Our examination encompasses the identification and analysis of code refactorings facilitated by ChatGPT. Through a meticulous exploration of these conversations, our goal is to illuminate the potential of ChatGPT to enhance software development practices. This research promises to provide valuable insights into the evolving role of ChatGPT in the world of software development. Soham Deo, Divya Hinge, Omkar Sandip Chavan, Yaxuan Olivia Wang, Mohamed Wiem Mkaouer |
MSR | 5 |
| 2024 | GitRev: An LLM-Based Gamification Framework for Modern Code Review ActivitiesabstractModern code review (MCR) is recognized as an effective software quality assurance practice that is broadly adopted by open-source and commercial software projects. MCR is most effective when developers follow best practices, as it improves code quality, enhances knowledge transfer, increases team awareness and shares code ownership. However, prior work highlights that poor code review practices are common and often manifest in the form of low review participation and engagement, shallow review, and toxic communications. To address these issues, we introduce GitRev, a novel approach that applies gamification mechanisms to boost developer motivation and engagement. GitRev is built on top of a Large Language Model (LLM), used as a points-based reward system that leverages the code change context, and code review activities. We implement GitRev as a GitHub app with a web browser extension that consists of a client-side web browser extension that gamifies the GitHub user interface, and a server-side composed of a Node.js server for authentication and data management. To evaluate GitRev, we conduct a controlled experiment with 86 graduate and undergraduate students. Results indicate the promising potential of our approach for improving the code review process and developers' engagement. GitRev is publicly available at https://anonymous.40pen.science/r/GitRev-OB74 Jasem Khelifi, Moataz Chouchen, Ali Ouni 0001, Dong Wang 0044, Raula Gaikovina Kula, Salma Hamza, Mohamed Wiem Mkaouer |
SCAM | 7 |
| 2024 | Automating Source Code Refactoring in the ClassroomabstractRefactoring is the practice of improving software quality without altering its external behavior. Developers intuitively refactor their code for multiple purposes, such as improving program comprehension, reducing code complexity, dealing with technical debt, and removing code smells. However, no prior studies have exposed the students to an experience of the process of antipatterns detection and refactoring correction, and provided students with toolset to practice it. To understand and increase the awareness of refactoring concepts, in this paper, we aim to reflect on our experience with teaching refactoring and how it helps students become more aware of bad programming practices and the importance of correcting them via refactoring. This paper discusses the results of an experiment in the classroom that involved carrying out various refactoring activities for the purpose of removing antipatterns using JDeodorant, an IDE plugin that supports antipatterns detection and refactoring. The results of the quantitative and qualitative analysis with 171 students show that students tend to appreciate the idea of learning refactoring and are satisfied with various aspects of the JDeodorant plugin's operation. Through this experiment, refactoring can turn into a vital part of the computing educational plan. We envision our findings enabling educators to support students with refactoring tools tuned towards safer and trustworthy refactoring. Eman Abdullah AlOmar, Mohamed Wiem Mkaouer, Ali Ouni 0001 |
SIGCSE (1) | 2 |
| 2024 | AntiCopyPaster: An Open-Source Ecosystem for Just-in-time Code Duplicates ExtractionabstractDuplicating a code fragment is the act of copying and pasting it with or without minor modifications into another section of the code base. Despite being an intuitive practice of code reuse, duplicate code brings its own challenges to software maintenance and evolution. To combat the propagation of duplicate code, we developed a plugin for IntelliJ IDEA called AntiCopyPaster, which tracks the pasting of code fragments inside the IDE and suggests the appropriate Extract Method refactoring. Unlike the existing approaches, our tool is integrated with the development workflow, and pro-actively recommends refactorings. Since not all code fragments need to be extracted, we develop a classification model to make this decision. When a code fragment is copy-pasted, the plugin searches for duplicates in the currently opened file, waits for a short period of time to allow the developer to edit the code, and finally inferences the refactoring decision based on a number of features. This tool can be used by educators to control the spread of duplicate code in their students code, and raise their awareness of the exitence of automated refactoring tehchniques that exist in the IDE. The plugin and its source code are publicly available on GitHub at https://github.com/refactorings/anti-copy-paster. The demonstration video can be found on YouTube: https://youtu.be/Y1sbfpds2Ms. Eman Abdullah AlOmar, Mohamed Wiem Mkaouer |
SIGCSE (2) | 2 |
| 2024 | How can We Leverage Static Analysis and Large Language Models to Engage Students in Software Quality ImprovementabstractStatic analysis tools are frequently used to scan the source code and detect deviations from the project coding guidelines. Yet, their adoption is challenged by their high false positive rate, which makes them not suitable for students and novice developers. However, Large Language Models (LLMs), such as ChatGPT, have gained widespread popularity and usage in various software engineering tasks, including testing, code review, and program comprehension. Such models represent an opportunity to reduce the ambiguity of static analysis tools and support their adoption. Yet, the effectiveness of using static analysis (i.e., PMD) to detect coding issues, and relying on LLMs (i.e., ChatGPT) to explain and recommend fix, has not yet been explored. In this talk, we aim to shed light on our experience in teaching the use of ChatGPT to cultivate a bugfix culture and leverage LLMs to improve software quality in educational settings. We share our findings to support educators in teaching students better code review strategies, and to increase students' awareness about LLM and promote software quality in education. Eman Abdullah AlOmar, Mohamed Wiem Mkaouer |
SIGCSE (2) | 2 |
| 2024 | On the Prevalence, Co-occurrence, and Impact of Infrastructure-as-Code SmellsabstractIn modern software systems, Infrastructure-as-Code (IaC) tools play a pivotal role in automating the management of various infrastructure resources such as networks, databases, and services. This automation is done through code-based specification files, commonly known as IaC files. Similarly to other code files, IaC files can suffer from violations of established implementation and design standards, i.e., IaC smells. Although prior research has studied various aspects of traditional smells in non-IaC artifacts, there is little knowledge of how IaC smells are prevalent, co-occurring, and impacting the change and defect proneness of IaC code. To fill this gap, we conduct an empirical study encompassing 82 Puppet-based open-source projects. Our investigation focused on 12 types of IaC smells in both implementation and design levels. Our findings reveal that IaC smells do not manifest uniformly, as IaC smells that are particularly associated with modularity issues, exhibit high prevalence rates across projects. Additionally, we found that 74% of IaC files are smelly and over 52% of the smelly IaC files have at least two co-occurring IaC smells. Furthermore, our findings highlight that, on average, smelly IaC files are modified nearly 3.8 times, in terms of number of commits, more frequently than non-smelly IaC files. Furthermore, smelly IaC files are found to be 3.1 times more prone to larger code changes, in terms of code churn, than non-smelly IaC files. Additionally, we found that smelly IaC files are 3.3 times more prone to the introduction of defects that are likely to persist in 1.65 more commits before being fixed than non-smelly IaC files. These findings advocate developers to be more aware of IaC smells in their projects and consider their correction. Narjes Bessghaier, Mahi Begoug, Chemseddine Mebarki, Ali Ouni 0001, Mohammed Sayagh, Mohamed Wiem Mkaouer |
SANER | 6 |
| 2024 | Behind the scenes: On the relationship between developer experience and refactoringabstractAbstract Refactoring is widely recognized as one of the efficient techniques to manage technical debt and maintain a healthy software project through enforcing best design practices, or coping with design defects. Previous refactoring surveys have shown that code refactoring activities are mainly executed by developers who have sufficient knowledge of the system's design, and disposing of leadership roles in their development teams. However, these surveys were mainly limited to specific projects and companies. In this paper, we explore the generalizability of the previous results by analyzing 800 open‐source projects. We mine their refactoring activities, and we identify their corresponding contributors. Then, we associate an experience score to each contributor in order to test various hypotheses related to whether developers with higher scores tend to (1) perform a higher number of refactoring operations, (2) exhibit different motivations behind their refactoring, and (3) better document their refactoring activity. We found that (1) although refactoring is not restricted to a subset of developers, those with higher contribution scores tend to perform more refactorings than others; (2) although there is no correlation between experience and motivation behind refactoring, top contributed developers are found to perform a wider variety of refactoring operations, regardless of their complexity; and (3) top contributed developer tend to document less their refactoring activity. Our qualitative analysis of three randomly sampled projects shows that the developers who are responsible for the majority of refactoring activities are typically in advanced positions in their development teams, demonstrating their extensive knowledge of the design of the systems they contribute to. Eman Abdullah AlOmar, Anthony Peruma, Mohamed Wiem Mkaouer, Christian D. Newman, Ali Ouni 0001 |
J. Softw. Evol. Process. | 3 |
| 2024 | What Constitutes the Deployment and Runtime Configuration System? An Empirical Study on OpenStack ProjectsabstractModern software systems are designed to be deployed in different configured environments (e.g., permissions, virtual resources, network connections) and adapted at runtime to different situations (e.g., memory limits, enabling/disabling features, database credentials). Such a configuration during the deployment and runtime of a software system is implemented via a set of configuration files, which together constitute what we refer to as a “configuration system.” Recent research efforts investigated the evolution and maintenance of configuration files. However, they merely focused on a limited part of the configuration system (e.g., specific infrastructure configuration files or Dockerfiles), and their results do not generalize to the whole configuration system. To cope with such a limitation, we aim to better capture and understand what files constitute a configuration system. To do so, we leverage an open card sort technique to qualitatively study 1,756 configuration files from OpenStack, a large and widely studied open source software ecosystem. Our investigation reveals the existence of nine types of configuration files, which cover the creation of the infrastructure on top of which OpenStack will be deployed, along with other types of configuration files used to customize OpenStack after its deployment. These configuration files are interconnected while being used at different deployment stages. For instance, we observe specific configuration files used during the deployment stage to create other configuration files that are used in the runtime stage. We also observe that identifying and classifying these types of files is not straightforward, as five out of the nine types can be written in similar programming languages (e.g., Python and Bash) as regular source code files. We also found that the same file extensions (e.g., Yaml ) can be used for different configuration types, making it difficult to identify and classify configuration files. Thus, we first leverage a machine learning model to identify configuration from non-configuration files, which achieved a median area under the curve (AUC) of 0.91, a median Brier score of 0.12, a median precision of 0.86, and a median recall of 0.83. Thereafter, we leverage a multi-class classification model to classify configuration files based on the nine configuration types. Our multi-class classification model achieved a median weighted AUC of 0.92, a median Brier score of 0.04, a median weighted precision of 0.84, and a median weighted recall of 0.82. Our analysis also shows that with only 100 labeled configuration and non-configuration files, our model reached a median AUC higher than 0.69. Furthermore, our configuration model requires a minimum of 100 configuration files to reach a median weighted AUC higher than 0.75. Narjes Bessghaier, Mohammed Sayagh, Ali Ouni 0001, Mohamed Wiem Mkaouer |
ACM Trans. Softw. Eng. Methodol. | 4 |
| 2024 | MULTICR: Predicting Merged and Abandoned Code Changes in Modern Code Review Using Multi-Objective SearchabstractModern Code Review (MCR) is an essential process in software development to ensure high-quality code. However, developers often spend considerable time reviewing code changes before being merged into the main code base. Previous studies attempted to predict whether a code change was going to be merged or abandoned soon after it was submitted to improve the code review process. However, these approaches require complex cost-sensitive learning, which makes their adoption challenging since it is difficult for developers to understand the main factors behind the models’ predictions. To address this issue, we introduce in this article, MULTICR , a multi-objective search-based approach that uses Multi-Objective Genetic Programming (MOGP) to learn early code review prediction models as IF-THEN rules. MULTICR evolves predictive models while maximizing the accuracy of both merged and abandoned classes, eliminating the need for misclassification cost estimation. To evaluate MULTICR, we conducted an empirical study on 146,612 code reviews from Eclipse, LibreOffice, and Gerrithub. The obtained results show that MULTICR outperforms existing baselines in terms of Matthew Correlation Coefficient (MCC) and F1 scores while learning less complex models compared to decision trees. Our experiments also showed how MULTICR allows identifying the main factors related to abandoned code reviews as well as their associated thresholds, making it a promising approach for early code review prediction with notable performance and inter-operability. Additionally, we qualitatively evaluate MULTICR by conducting a user study through semi-structured interviews involving 10 practitioners from different organizations. The obtained results indicate that 90% of the participants find that MULTICR is useful and can help them to improve the code review process. Additionally, the learned IF-THEN rules of MULTICR are transparent. Moataz Chouchen, Ali Ouni 0001, Mohamed Wiem Mkaouer |
ACM Trans. Softw. Eng. Methodol. | 3 |
| 2024 | Behind the Intent of Extract Method Refactoring: A Systematic Literature ReviewabstractBackground:Code refactoring is widely recognized as an essential software engineering practice to improve the understandability and maintainability of the source code. TheExtract Methodrefactoring is considered as “Swiss army knife” of refactorings, as developers often apply it to improve their code quality,e.g., decompose long code fragments, reduce code complexity, eliminate duplicated code, etc. In recent years, several studies attempted to recommendExtract Methodrefactorings allowing the collection, analysis, and revelation of actionable data-driven insights about refactoring practices within software projects.Aim:In this paper, we aim at reviewing the current body of knowledge on existing Extract Method refactoring research and explore their limitations and potential improvement opportunities for future research efforts. That is,Extract Methodis considered one of the most widely-used refactorings, but difficult to apply in practice as it involves low-level code changes such as statements, variables, parameters, return types, etc. Hence, researchers and practitioners begin to be aware of the state-of-the-art and identify new research opportunities in this context.Method:We review the body of knowledge related toExtract Methodrefactoring in the form of a systematic literature review (SLR). After compiling an initial pool of 1,367 papers, we conducted a systematic selection and our final pool included 83 primary studies. We define three sets of research questions and systematically develop and refine a classification schema based on several criteria including their methodology, applicability, and degree of automation.Results:The results construct a catalog of 83Extract Methodapproaches indicating that several techniques have been proposed in the literature. Our results show that: (i) 38.6% ofExtract Methodrefactoring studies primarily focus on addressing code clones; (ii) Several of theExtract Methodtools incorporate the developer’s involvement in the decision-making process when applying the method extraction, and (iii) the existing benchmarks are heterogeneous and do not contain the same type of information, making standardizing them for the purpose of benchmarking difficult.Conclusions:Our study serves as an “index” to the body of knowledge in this area for researchers and practitioners in determining theExtract Methodrefactoring approach that is most appropriate for their needs. Our findings also empower the community with information to guide the future development of refactoring tools. Eman Abdullah AlOmar, Mohamed Wiem Mkaouer, Ali Ouni 0001 |
IEEE Trans. Software Eng. | 2 |
| 2023 | Large-Scale Anonymized Text-based Disability Discourse DatasetabstractThe involvement of individuals with disabilities in online discussions related to disability and accessibility is a critical area of study. While previous research has qualitatively examined the participation of individuals with disabilities on social media platforms, large-scale analysis of social media content by people with disabilities has been an underexplored area. This paper presents a pioneering large-scale study of disability communities on Reddit. We developed an anonymized text-based dataset that consists of 1.5 million comments posted on three subreddits: r/disability, r/Blind, and r/ADHD. Using topic modeling, we analyzed the dataset and identified eight highly-coherent common categories and their associated keywords across the three subreddits. We contribute an Anonymized Disability Discourse Reddit Corpus (ADDReC) of 1.5 million comments that feature eight disability discourse categories. Brandon Palonis, Samantha Jane Dobesh, Selah Bellscheidt, Mohamed Wiem Mkaouer, Yasmine N. El-Glaly |
ASSETS | 4 |
| 2023 | An Empirical Study on Continuous Integration Trends, Topics and Challenges in Stack OverflowabstractDuring the last few years, Continuous Integration (CI) has become a common practice in open-source and industrial environments to reduce the scope for errors and increase the speed to market through the automated build and test processes. However, despite this wide adoption throughout the years, little is known about the challenges developers discuss. Analyzing the discussions of developers is required to understand what researchers, educators and practitioners should focus on, and how discussion communities can be helpful to shed the light on CI challenges. In this study, we examine Stack Overflow (SO), the most popular crowd-sourced forum, to understand the challenges developers face in the CI context. We collect a corpus of 27,728 CI-related developers posts from SO and analyze those posts through a mixed method with quantitative and qualitative analyzes. To study the trends of CI discussions, we investigated the metadata of CI questions, users and tags. Then, we extract the CI main topics using Latent Dirichlet Allocation (LDA) tuned with Genetic Algorithm (GA). Finally, we investigate the most popular and difficult topics faced by developers based on unanswered questions to get further insights into CI challenges. The LDA clustering reveals that developers face challenges with six main topics namely Build, Testing, Version Control, Configuration, Deployment, and CI Culture. Particularly, we found that the build topic is the most popular among the studied topics and that version control and testing topics are the most difficult for the SO community. Our study uncovers insights about CI challenges and adds evidence to existing knowledge about CI issues related especially to software build. Ali Ouni 0001, Islem Saidani, Eman Abdullah AlOmar, Mohamed Wiem Mkaouer |
EASE | 4 |
| 2023 | Multi-label Classification of Mobile Application User Reviews Using Neural Language Models
Ghaith Khlifi, Ilyes Jenhani, Montassar Ben Messaoud, Mohamed Wiem Mkaouer |
ECSQARU | 4 |
| 2023 | What Do Infrastructure-as-Code Practitioners Discuss: An Empirical Study on Stack OverflowabstractBackground. Infrastructure-as-Code (IaC) is an emerging practice to manage cloud infrastructure resources for software systems. Modern software development has evolved to embrace IaC as a best practice for consistently provisioning and managing infrastructure using various tools such as Terraform and Ansible. However, recent studies highlighted that developers still encounter various challenges with IaC tools. Aims. We aim in this paper to understand the different challenges that developers encounter with IaC and analyze the trend of seeking assistance on Q&A platforms in the context of IaC. To this end, we conduct a large-scale empirical study investigating developers' discussions in Stack Overflow. Method. We first collect IaC-relevant tags on Stack Overflow, constituting a dataset that comprises 52,692 questions and 64,078 answers. Then, we group questions into specific topics using the Latent Dirichlet Allocation (LDA) method, which we optimize using a Genetic Algorithm (GA) for parameter's fine-tuning. Finally, to gain better insights, we analyze the identified topics based on different criteria such as popularity and difficulty. Results. Our findings reveal an average yearly increase of 150% in terms of IaC-related questions and 135% in terms of users between 2011 and 2022. Furthermore, we observe that IaC questions revolve around seven main topics: server configuration, policy configuration, networking, deployment pipelines, variable management, templating, and file management. Notably, we found that server configuration and file management are the most popular topics, i.e., the most discussed among IaC developers, while the deployment pipelines and templating topics are the most difficult. Conclusions. Our results shed light on IaC challenges that are often encountered by developers on popular Q&A platforms. These findings reveal important implications for practitioners seeking better support for IaC tools in real-world settings and for researchers to better understand the IaC community needs and further investigate IaC in different aspects. Mahi Begoug, Narjes Bessghaier, Ali Ouni 0001, Eman Abdullah AlOmar, Mohamed Wiem Mkaouer |
ESEM | 5 |
| 2023 | Learning to Predict Code Review Completion Time In Modern Code Review
Moataz Chouchen, Ali Ouni 0001, Jefferson Olongo, Mohamed Wiem Mkaouer |
Empir. Softw. Eng. | 4 |
| 2023 | Just-in-time code duplicates extraction
Eman Abdullah AlOmar, Anton Ivanov, Zarina Kurbatova, Yaroslav Golubev, Mohamed Wiem Mkaouer, Ali Ouni 0001, Timofey Bryksin, Le Nguyen, Amit Dilip Kini, Aditya Thakur 0003 |
Inf. Softw. Technol. | 5 |
| 2023 | BPEL process defects prediction using multi-objective evolutionary search
Marwa Daaji, Ali Ouni 0001, Mohamed Mohsen Gammoudi, Salah Bouktif, Mohamed Wiem Mkaouer |
J. Syst. Softw. | 5 |
| 2023 | On the impact of single and co-occurrent refactorings on quality attributes in android applications
Ali Ouni 0001, Eman Abdullah AlOmar, Oumayma Hamdi, Mel Ó Cinnéide, Mohamed Wiem Mkaouer, Mohamed Aymen Saied |
J. Syst. Softw. | 5 |
| 2023 | Improving the detection of community smells through socio-technical and sentiment analysisabstractAbstract Open source software development is regarded as a collaborative activity in which developers interact to build a software product. Such a human collaboration is described as an organized effort of the “social” activity of organizations, individuals, and stakeholders, which can affect the development community and the open source project health. Negative effects of the development community manifest typically in the form of community smells, which represent symptoms of organizational and social issues within the open source software development community that often lead to additional project costs and reduced software quality. Recognizing the advantages of the early detection of potential community smells in a software project, we introduce a novel approach that learns from various community organizational, social, and emotional aspects to provide an automated support for detecting community smells. In particular, our approach learns from a set of interleaving organizational–social and emotional symptoms that characterize the existence of community smell instances in a software project. We build a multi‐label learning model to detect 10 common types of community smells. We use the ensemble classifier chain (ECC) model that transforms multi‐label problems into several single‐label problems, which are solved using genetic programming (GP) to find the optimal detection rules for each smell type. To evaluate the performance of our approach, we conducted an empirical study on a benchmark of 143 open source projects. The statistical tests of our results show that our approach can detect community smells with an average F‐measure of 93%, achieving a better performance compared to different state‐of‐the‐art techniques. Furthermore, we investigate the most influential community‐related metrics to identify each community smell type. Nuri Almarimi, Ali Ouni 0001, Moataz Chouchen, Mohamed Wiem Mkaouer |
J. Softw. Evol. Process. | 4 |
| 2023 | Duplicate Bug Report Detection Using an Attention-Based Neural Language ModelabstractContext:Users and developers use bug tracking systems to report errors that occur during the development and testing of software. The manual identification of duplicates is a tedious task especially with software that have large bug repositories. In this context, their automatic detection becomes a necessary task that can help prevent frequently fixing the same bug.Objective:In this article, we proposeBERT-MLP, a novel pretrained language model using bidirectional encoder representations from ransformers (BERT) for duplicate bug report detection (DBRD) with the aim of improving the detection rate compared to existing works.Method:Our approach considers only unstructured data. These are fed into the BERT model in order to learn the contextual relationships between words. The output is fed into a multilayer perceptron (MLP) classifier, representing our base DBRD.Results:Our approach was evaluated on three projects: Mozilla Firefox, Eclipse Platform, and Thunderbird. It achieved an accuracy of 92.11, 94.08, and 89.03%, respectively, for Mozilla, Eclipse, and Thunderbird. A comparison with a dual-channel convolutional neural network (DC-CNN) model and other pretrained models, including RoBERTa and Sentence-Bert has been conducted. Results showed thatBERT-MLPoutperformed, the second best performing models (DC-CNN and Sentence-BERT) by 12% in accuracy for Eclipse and 9% for both Mozilla and Thunderbird, respectively. Montassar Ben Messaoud, Asma Miladi, Ilyes Jenhani, Mohamed Wiem Mkaouer, Lobna Ghadhab |
IEEE Trans. Reliab. | 4 |
| 2022 | On the Identification of Third-Party Library Usage Patterns for Android ApplicationsabstractThe rapid growth of mobile applications development and usage raises several new challenges to developers as they need to respond quickly to the users’ needs in a world of continuous changes. Developers often use third-party libraries to add functionality, which significantly improves developers productivity, and reduces time-to-market. In this paper, we present an approach for the visualization and recommendation of libraries for Android apps. Our approach, named LibScanDroid, is based on how libraries are used within existing Android applications. LibScanDroid groups together libraries based on their history of joint and separate usage in existing Android applications available in Google Play Store. The library groups, i.e., usage patterns, are presented in several layers to visualize and navigate through the patterns. These groupings are performed using the ϵ-DBSCAN hierarchical clustering algorithm.We implement our approach in the form of an interactive tool and evaluate it on a database that covers 1,458 libraries that are used by over 1,000 Android applications. Our experiments have shown that our approach can detect library patterns with high co-usage cohesion. The results from the cross-validation, allows us to affirm the generalizability of the detected patterns. Richardson Alexandre, Ali Ouni 0001, Mohamed Aymen Saied, Salah Bouktif, Mohamed Wiem Mkaouer |
EASE | 5 |
| 2022 | Search-Based Third-Party Library Migration at the Method-Level
Niranjana Deshpande, Mohamed Wiem Mkaouer, Ali Ouni 0001, Naveen Sharma |
EvoApplications | 2 |
| 2022 | AntiCopyPaster: Extracting Code Duplicates As Soon As They Are Introduced in the IDEabstractWe developed a plugin for IntelliJ IDEA called AntiCopyPaster, which tracks the pasting of code fragments inside the IDE and suggests the appropriate Extract Method refactoring to combat the propagation of duplicates. Unlike the existing approaches, our tool is integrated with the developer’s workflow, and pro-actively recommends refactorings. Since not all code fragments need to be extracted, we develop a classification model to make this decision. When a developer copies and pastes a code fragment, the plugin searches for duplicates in the currently opened file, waits for a short period of time to allow the developer to edit the code, and finally inferences the refactoring decision based on a number of features. Eman Abdullah AlOmar, Anton Ivanov, Zarina Kurbatova, Yaroslav Golubev, Mohamed Wiem Mkaouer, Ali Ouni 0001, Timofey Bryksin, Le Nguyen, Amit Dilip Kini, Aditya Thakur 0003 |
ASE | 5 |
| 2022 | Code Review Practices for Refactoring Changes: An Empirical Study on OpenStackabstractModern code review is a widely used technique employed in both industrial and open-source projects to improve software quality, share knowledge, and ensure adherence to coding standards and guidelines. During code review, developers may discuss refactoring activities before merging code changes in the code base. To date, code review has been extensively studied to explore its general challenges, best practices and outcomes, and socio-technical aspects. However, little is known about how refactoring is being reviewed and what developers care about when they review refactored code. Hence, in this work, we present a quantitative and qualitative study to understand what are the main criteria developers rely on to develop a decision about accepting or rejecting a submitted refactored code, and what makes this process challenging. Through a case study of 11,010 refactoring and non-refactoring reviews spread across OpenStack open-source projects, we find that refactoring-related code reviews take significantly longer to be resolved in terms of code review efforts. Moreover, upon performing a thematic analysis on a significant sample of the refactoring code review discussions, we built a comprehensive taxonomy consisting of 28 refactoring review criteria. We envision our findings reaffirming the necessity of developing accurate and efficient tools and techniques that can assist developers in the review process in the presence of refactorings. Eman Abdullah AlOmar, Moataz Chouchen, Mohamed Wiem Mkaouer, Ali Ouni 0001 |
MSR | 3 |
| 2022 | An Exploratory Study on Refactoring Documentation in Issues HandlingabstractUnderstanding the practice of refactoring documentation is of paramount importance in academia and industry. Issue tracking systems are used by most software projects enabling developers, quality assurance, managers, and users to submit feature requests and other tasks such as bug fixing and code review. Although recent studies explored how to document refactoring in commit messages, little is known about how developers describe their refactoring needs in issues. In this study, we aim at exploring developer-reported refactoring changes in issues to better understand what developers consider to be problematic in their code and how they handle it. Our approach relies on text mining 45,477 refactoring-related issues and identifying refactoring patterns from a diverse corpus of 77 Java projects by investigating issues associated with 15,833 refactoring operations and developers' explicit refactoring intention. Our results show that (1) developers mostly use move refactoring related terms/phrases to target refactoring-related issues; and (2) developers tend to explicitly mention the improvement of specific quality attributes and focus on duplicate code removal. We envision our findings enabling tool builders to support developers with automated documentation of refactoring changes in issues. Eman Abdullah AlOmar, Anthony Peruma, Mohamed Wiem Mkaouer, Christian D. Newman, Ali Ouni 0001 |
MSR | 3 |
| 2022 | Refactoring Debt: Myth or Reality? An Exploratory Study on the Relationship Between Technical Debt and Refactoring
Anthony Peruma, Eman Abdullah AlOmar, Christian D. Newman, Mohamed Wiem Mkaouer, Ali Ouni 0001 |
MSR | 4 |
| 2022 | On the documentation of refactoring types
Eman Abdullah AlOmar, Jiaqian Liu, Kenneth Addo, Mohamed Wiem Mkaouer, Christian D. Newman, Ali Ouni 0001 |
Autom. Softw. Eng. | 4 |
| 2022 | Improving the prediction of continuous integration build failures using deep learning
Islem Saidani, Ali Ouni 0001, Mohamed Wiem Mkaouer |
Autom. Softw. Eng. | 3 |
| 2022 | How do i refactor this? An empirical study on refactoring trends and topics in Stack Overflow
Anthony Peruma, Steven Simmons, Eman Abdullah AlOmar, Christian D. Newman, Mohamed Wiem Mkaouer, Ali Ouni 0001 |
Empir. Softw. Eng. | 5 |
| 2022 | Tracking bad updates in mobile apps: a search-based approach
Islem Saidani, Ali Ouni 0001, Md. Ahasanuzzaman, Safwat Hassan, Mohamed Wiem Mkaouer, Ahmed E. Hassan |
Empir. Softw. Eng. | 5 |
| 2022 | Improving microservices extraction using evolutionary search
Khaled Sellami, Ali Ouni 0001, Mohamed Aymen Saied, Salah Bouktif, Mohamed Wiem Mkaouer |
Inf. Softw. Technol. | 5 |
| 2022 | Sentiment analysis on Twitter data integrating TextBlob and deep learning models: The case of US airline industry
Wajdi Aljedaani, Furqan Rustam, Mohamed Wiem Mkaouer, Abdullatif Ghallab, Vaibhav Rupapara, Patrick Bernard Washington, Ernesto Lee, Imran Ashraf 0003 |
Knowl. Based Syst. | 3 |
| 2022 | SATDBailiff-mining and tracking self-admitted technical debt
Eman Abdullah AlOmar, Ben Christians, Mihal Busho, Ahmed Hamad AlKhalid, Ali Ouni 0001, Christian D. Newman, Mohamed Wiem Mkaouer |
Sci. Comput. Program. | 7 |
| 2022 | Multi-criteria Web Services Selection: Balancing the Quality of Design and Quality of ServiceabstractWeb service composition allows developers to create applications via reusing available services that are interoperable to each other. The process of selecting relevant Web services for a composite service satisfying the developer requirements is commonly acknowledged to be hard and challenging, especially with the exponentially increasing number of available Web services on the Internet. The majority of existing approaches on Web Services Selection are merely based on the Quality of Service (QoS) as a basic criterion to guide the selection process. However, existing approaches tend to ignore the service design quality, which plays a crucial role in discovering, understanding, and reusing service functionalities. Indeed, poorly designed Web service interfaces result in service anti-patterns, which are symptoms of bad design and implementation practices. The existence of anti-pattern instances in Web service interfaces typically complicates their reuse in real-world service-based systems and may lead to several maintenance and evolution problems. To address this issue, we introduce a new approach based on the Multi-Objective and Optimization on the basis of Ratio Analysis method (MOORA) as a multi-criteria decision making (MCDM) method to select Web services based on a combination of their (1) QoS attributes and (2) QoS design. The proposed approach aims to help developers to maintain the soundness and quality of their service composite development processes. We conduct a quantitative and qualitative empirical study to evaluate our approach on a Quality of Web Service dataset. We compare our MOORA-based approach against four commonly used MCDM methods as well as a recent state-of-the-art Web service selection approach. The obtained results show that our approach outperforms state-of-the-art approaches by significantly improving the service selection quality of top- k selected services while providing the best trade-off between both service design quality and desired QoS values. Furthermore, we conducted a qualitative evaluation with developers. The obtained results provide evidence that our approach generates a good trade-off for what developers need regarding both QoS and quality of design. Our selection approach was evaluated as “relevant” from developers point of view, in improving the service selection task with an average score of 3.93, compared to an average of 2.62 for the traditional QoS-based approach. Marwa Daaji, Ali Ouni 0001, Mohamed Mohsen Gammoudi, Salah Bouktif, Mohamed Wiem Mkaouer |
ACM Trans. Internet Techn. | 5 |
| 2022 | An Ensemble Approach for Annotating Source Code Identifiers With Part-of-Speech TagsabstractThis paper presents an ensemble part-of-speech tagging approach for source code identifiers. Ensemble tagging is a technique that uses machine-learning and the output from multiple part-of-speech taggers to annotate natural language text at a higher quality than the part-of-speech taggers are able to obtain independently. Our ensemble uses three state-of-the-art part-of-speech taggers: SWUM, POSSE, and Stanford. We study the quality of the ensemble’s annotations on five different types of identifier names: function, class, attribute, parameter, and declaration statement at the level of both individual words and full identifier names. We also study and discuss the weaknesses of our tagger to promote the future amelioration of these problems through further research. Our results show that the ensemble achieves 75 percent accuracy at the identifier level and 84-86 percent accuracy at the word level. This is an increase of +17% points at the identifier level from the closest independent part-of-speech tagger. Christian D. Newman, Michael John Decker, Reem S. Alsuhaibani, Anthony Peruma, Mohamed Wiem Mkaouer, Satyajit Mohapatra, Tejal Vishnoi, Marcos Zampieri, Timothy J. Sheldon, Emily Hill 0001 |
IEEE Trans. Software Eng. | 5 |
| 2022 | Detecting Continuous Integration Skip Commits Using Multi-Objective Evolutionary SearchabstractContinuous Integration (CI) consists of integrating the changes introduced by different developers more frequently through the automation of build process. Nevertheless, the CI build process is seen as a major barrier that causes delays in the product release dates. One of the main reasons for such delays is that some simple changes (i.e., can be skipped) trigger the build, which represents an unnecessary overhead and particularly painful for large projects. In order to cut off the expenses of CI build time, we propose in this paper,SkipCI, a novel search-based approach to automatically detect CI Skip commits based on the adaptation of Strength-Pareto Evolutionary Algorithm (SPEA-2). Our approach aims to provide the optimal trade-off between two conflicting objectives to deal with both skipped and non-skipped commits. We evaluate our approach and investigate the performance of both within and cross-project validations on a benchmark of 14,294 CI commits from 15 projects that use Travis CI system. The statistical tests revealed that our approach shows a clear advantage over the baseline approaches with average scores of 92% and 84% in terms of AUC for cross-validation and cross-project validations respectively. Furthermore, the features analysis reveals that documentation changes, terms appearing in the commit message and the committer experience are the most prominent features in CI skip detection. When it comes to the cross-project scenario, the results reveal that besides the documentation changes, there is a strong link between current and previous commits results. Moreover, we deployed and evaluated the usefulness ofSkipCIwith our industrial partner. Qualitative results demonstrate the effectiveness ofSkipCIin providing relevant CI skip commit recommendations to developers for two large software projects from practitioner’s point of view. Islem Saidani, Ali Ouni 0001, Mohamed Wiem Mkaouer |
IEEE Trans. Software Eng. | 3 |
| 2021 | Finding the Needle in a Haystack: On the Automatic Identification of Accessibility User ReviewsabstractIn recent years, mobile accessibility has become an important trend with the goal of allowing all users the possibility of using any app without many limitations. User reviews include insights that are useful for app evolution. However, with the increase in the amount of received reviews, manually analyzing them is tedious and time-consuming, especially when searching for accessibility reviews. The goal of this paper is to support the automated identification of accessibility in user reviews, to help technology professionals in prioritizing their handling, and thus, creating more inclusive apps. Particularly, we design a model that takes as input accessibility user reviews, learns their keyword-based features, in order to make a binary decision, for a given review, on whether it is about accessibility or not. The model is evaluated using a total of 5,326 mobile app reviews. The findings show that (1) our model can accurately identify accessibility reviews, outperforming two baselines, namely keyword-based detector and a random classifier; (2) our model achieves an accuracy of 85% with relatively small training dataset; however, the accuracy improves as we increase the size of the training dataset. Eman Abdullah AlOmar, Wajdi Aljedaani, Murtaza Tamjeed, Mohamed Wiem Mkaouer, Yasmine N. El-Glaly |
CHI | 4 |
| 2021 | Test Smell Detection Tools: A Systematic Mapping StudyabstractTest smells are defined as sub-optimal design choices developers make when implementing test cases. Hence, similar to code smells, the research community has produced numerous test smell detection tools to investigate the impact of test smells on the quality and maintenance of test suites. However, little is known about the characteristics, type of smells, target language, and availability of these published tools. In this paper, we provide a detailed catalog of all known, peer-reviewed, test smell detection tools. Wajdi Aljedaani, Anthony Peruma, Ahmed Aljohani, Mazen Alotaibi, Mohamed Wiem Mkaouer, Ali Ouni 0001, Christian D. Newman, Abdullatif Ghallab, Stephanie Ludi |
EASE | 5 |
| 2021 | An Experimental Study of Weight Initialization and Lamarckian Inheritance on Neuroevolution
Zimeng Lyu, Abdelrahman Elsaid, Joshua Karnas, Mohamed Wiem Mkaouer, Travis J. Desell |
EvoApplications | 4 |
| 2021 | Improving Distributed Neuroevolution Using Island Extinction and Repopulation
Zimeng Lyu, Joshua Karnas, Abdelrahman Elsaid, Mohamed Wiem Mkaouer, Travis J. Desell |
EvoApplications | 4 |
| 2021 | Using Grammar Patterns to Interpret Test Method Name EvolutionabstractIt is good practice to name test methods such that they are comprehensible to developers; they must be written in such a way that their purpose and functionality are clear to those who will maintain them. Unfortunately, there is little automated support for writing or maintaining the names of test methods. This can lead to inconsistent and low-quality test names and increase the maintenance cost of supporting these methods. Due to this risk, it is essential to help developers in maintaining their test method names over time. In this paper, we use grammar patterns, and how they relate to test method behavior, to understand test naming practices. This data will be used to support an automated tool for maintaining test names. Anthony Peruma, Emily Hu, Eman Abdullah AlOmar, Mohamed Wiem Mkaouer, Christian D. Newman |
ICPC | 5 |
| 2021 | csDetector: an open source tool for community smells detectionabstractCommunity smells represent symptoms of sub-optimal organizational and social issues within software development communities that often lead to additional project costs and reduced software quality. Previous research identified a variety of community smells that are connected to sub-optimal patterns under different perspectives of organizational-social structures in the software development community. To detect community smells and understanding the characteristics of such organizational-social structures in a project, we propose csDetector, an open source tool that is able to automatically detect community smells within a project and provide relevant socio-technical metrics. csDetector uses a machine learning based detection approach that learns from various existing bad community development practices to provide automated support in detecting related community smells. We evaluate the effectiveness of csDetector on a benchmark of 143 open source projects from GitHub. Our results show that the csDetector tool can detect ten commonly occurring community smells in open software projects with an average F1 score of 84%. csDetector is publicly available, with a demo video, at: https://github.com/Nuri22/csDetector. Nuri Almarimi, Ali Ouni 0001, Moataz Chouchen, Mohamed Wiem Mkaouer |
ESEC/SIGSOFT FSE | 4 |
| 2021 | One thousand and one stories: a large-scale survey of software refactoringabstractDespite the availability of refactoring as a feature in popular IDEs, recent studies revealed that developers are reluctant to use them, and still prefer the manual refactoring of their code. At JetBrains, our goal is to fully support refactoring features in IntelliJ-based IDEs and improve their adoption in practice. Therefore, we start by raising the following main questions. How exactly do people refactor code? What refactorings are the most popular? Why do some developers tend not to use convenient IDE refactoring tools? Yaroslav Golubev, Zarina Kurbatova, Eman Abdullah AlOmar, Timofey Bryksin, Mohamed Wiem Mkaouer |
ESEC/SIGSOFT FSE | 5 |
| 2021 | BF-detector: an automated tool for CI build failure detectionabstractContinuous Integration (CI) aims at supporting developers in inte-grating code changes quickly through automated building. How-ever, there is a consensus that CI build failure is a major barrierthat developers face, which prevents them from proceeding furtherwith development. In this paper, we introduceBF-Detector, anautomated tool to detect CI build failure. Based on the adaptationof Non-dominated Sorting Genetic Algorithm (NSGA-II), our toolaims at finding the best prediction rules based on two conflictingobjective functions to deal with both minority and majority classes.We evaluated the effectiveness of our tool on a benchmark of 56,019CI builds. The results reveal that our technique outperforms state-of-the-art approaches by providing a better balance between bothfailed and passed builds.BF-Detectortool is publicly available,with a demo video, at: https://github.com/stilab-ets/BF-Detector. Islem Saidani, Ali Ouni 0001, Moataz Chouchen, Mohamed Wiem Mkaouer |
ESEC/SIGSOFT FSE | 4 |
| 2021 | Anti-patterns in Modern Code Review: Symptoms and PrevalenceabstractModern code review (MCR) is now broadly adopted as an established and effective software quality assurance practice, with an increasing number of open-source as well as commercial software projects identifying code review as a crucial practice. During the MCR process, developers review, provide constructive feedback, and/or critique each others’ patches before a code change is merged into the codebase. Nevertheless, code review is basically a human task that involves technical, personal and social aspects. Existing literature hint the existence of poor reviewing practices i.e., anti-patterns, that may contribute to a tense reviewing culture, degradation of software quality, slow down integration, and may affect the overall sustainability of the project. To better understand these practices, we present in this paper the concept of Modern Code Review Anti-patterns (MCRA) and take a first step to define a catalog that enumerates common poor code review practices. In detail we explore and characterize MCRA symptoms, causes, and impacts. We also conduct a series of preliminary experiments to investigate the prevalence and co-occurrences of such anti-patterns on a random sample of 100 code reviews from various OpenStack projects. Moataz Chouchen, Ali Ouni 0001, Raula Gaikovina Kula, Dong Wang 0044, Patanamon Thongtanunam, Mohamed Wiem Mkaouer, Ken-ichi Matsumoto |
SANER | 6 |
| 2021 | How we refactor and how we document it? On the use of supervised machine learning algorithms to classify refactoring documentation
Eman Abdullah AlOmar, Anthony Peruma, Mohamed Wiem Mkaouer, Christian D. Newman, Ali Ouni 0001, Marouane Kessentini |
Expert Syst. Appl. | 3 |
| 2021 | On preserving the behavior in software refactoring: A systematic mapping study
Eman Abdullah AlOmar, Mohamed Wiem Mkaouer, Christian D. Newman, Ali Ouni 0001 |
Inf. Softw. Technol. | 2 |
| 2021 | Method-level bug localization using hybrid multi-objective search
Rafi Almhana, Marouane Kessentini, Mohamed Wiem Mkaouer |
Inf. Softw. Technol. | 3 |
| 2021 | Augmenting commit classification by using fine-grained source code changes and a pre-trained deep neural language model
Lobna Ghadhab, Ilyes Jenhani, Mohamed Wiem Mkaouer, Montassar Ben Messaoud |
Inf. Softw. Technol. | 3 |
| 2021 | A longitudinal study of the impact of refactoring in android applications
Oumayma Hamdi, Ali Ouni 0001, Mel Ó Cinnéide, Mohamed Wiem Mkaouer |
Inf. Softw. Technol. | 4 |
| 2021 | On the impact of Continuous Integration on refactoring practice: An exploratory study on TravisTorrent
Islem Saidani, Ali Ouni 0001, Mohamed Wiem Mkaouer, Fabio Palomba |
Inf. Softw. Technol. | 3 |
| 2021 | Toward the automatic classification of Self-Affirmed RefactoringabstractThe concept of Self-Affirmed Refactoring (SAR) was introduced to explore how developers document their refactoring activities in commit messages, i.e., developers explicit documentation of refactoring operations intentionally introduced during a code change. In our previous study, we have manually identified refactoring patterns and defined three main common quality improvement categories including internal quality attributes, external quality attributes, and code smells, by only considering refactoring-related commits. However, this approach heavily depends on the manual inspection of commit messages. In this paper, we propose a two-step approach to first identify whether a commit describes developer-related refactoring events, then to classify it according to the refactoring common quality improvement categories. Specifically, we combine the N-Gram TF–IDF feature selection with binary and multiclass classifiers to build a new model to automate the classification of refactorings based on their quality improvement categories. We challenge our model using a total of 2,867 commit messages extracted from well engineered open-source Java projects. Our findings show that (1) our model is able to accurately classify SAR commits, outperforming the pattern-based and random classifier approaches, and allowing the discovery of 40 more relevant SAR patterns, and (2) our model reaches an F-measure of up to 90% even with a relatively small training dataset. Eman Abdullah AlOmar, Mohamed Wiem Mkaouer, Ali Ouni 0001 |
J. Syst. Softw. | 2 |
| 2021 | On the classification of bug reports to improve bug localization
Fan Fang, John Wu, Xin Ye 0003, Wajdi Aljedaani, Mohamed Wiem Mkaouer |
Soft Comput. | 6 |
| 2021 | Recommending pull request reviewers based on code changes
Xin Ye 0003, Wajdi Aljedaani, Mohamed Wiem Mkaouer |
Soft Comput. | 4 |
| 2021 | A longitudinal exploratory study on code smells in server side web applications
Narjes Bessghaier, Ali Ouni 0001, Mohamed Wiem Mkaouer |
Softw. Qual. J. | 3 |
| 2020 | On the detection of community smells using genetic programming-based ensemble classifier chainabstractCommunity smells are symptoms of organizational and social issues within the software development community that often increase the project costs and impact software quality. Recent studies have identified a variety of community smells and defined them as suboptimal patterns connected to organizational-social structures in the software development community such as the lack of communication, coordination and collaboration. Recognizing the advantages of the early detection of potential community smells in a software project, we introduce a novel approach that learns from various community organizational and social practices to provide an automated support for detecting community smells. In particular, our approach learns from a set of interleaving organizational-social symptoms that characterize the existence of community smell instances in a software project. We build a multi-label learning model to detect 8 common types of community smells. We use the ensemble classifier chain (ECC) model that transforms multi-label problems into several single-label problems which are solved using genetic programming (GP) to find the optimal detection rules for each smell type. To evaluate the performance of our approach, we conducted an empirical study on a benchmark of 103 open source projects and 407 community smell instances. The statistical tests of our results show that our approach can detect the eight considered smell types with an average F-measure of 89% achieving a better performance compared to different state-of-the-art techniques. Furthermore, we found that the most influential factors that best characterize community smells include the social network density and closeness centrality as well as the standard deviation of the number of developers per time zone and per community. Nuri Almarimi, Ali Ouni 0001, Moataz Chouchen, Islem Saidani, Mohamed Wiem Mkaouer |
ICGSE | 5 |
| 2020 | An Exploratory Study on How Software Reuse is Discussed in Stack Overflow
Eman Abdullah AlOmar, Diego Barinas, Jiaqian Liu, Mohamed Wiem Mkaouer, Ali Ouni 0001, Christian D. Newman |
ICSR | 4 |
| 2020 | How Do Developers Refactor Code to Improve Code Reusability?
Eman Abdullah AlOmar, Philip T. Rodriguez, Jordan Bowman, Tianjia Wang, Benjamin Adepoju, Kevin Lopez, Christian D. Newman, Ali Ouni 0001, Mohamed Wiem Mkaouer |
ICSR | 9 |
| 2020 | How Does Library Migration Impact Software Quality and Comprehension? An Empirical Study
Hussein Alrubaye, Deema Alshoaibi, Eman Abdullah AlOmar, Mohamed Wiem Mkaouer, Ali Ouni 0001 |
ICSR | 4 |
| 2020 | AndroLib: Third-Party Software Library Recommendation for Android Applications
Moataz Chouchen, Ali Ouni 0001, Mohamed Wiem Mkaouer |
ICSR | 3 |
| 2020 | tsDetect: an open source test smells detection toolabstractThe test code, just like production source code, is subject to bad design and programming practices, also known as smells. The presence of test smells in a software project may affect the quality, maintainability, and extendability of test suites making them less effective in finding potential faults and quality issues in the project's production code. In this paper, we introduce tsDetect, an automated test smell detection tool for Java software systems that uses a set of detection rules to locate existing test smells in test code. We evaluate the effectiveness of tsDetect on a benchmark of 65 unit test files containing instances of 19 test smell types. Results show that tsDetect achieves a high detection accuracy with an average precision score of 96% and an average recall score of 97%. tsDetect is publicly available, with a demo video, at: https://testsmells.github.io/ Anthony Peruma, Khalid Almalki, Christian D. Newman, Mohamed Wiem Mkaouer, Ali Ouni 0001, Fabio Palomba |
ESEC/SIGSOFT FSE | 4 |
| 2020 | Predicting continuous integration build failures using evolutionary search
Islem Saidani, Ali Ouni 0001, Moataz Chouchen, Mohamed Wiem Mkaouer |
Inf. Softw. Technol. | 4 |
| 2020 | On the generation, structure, and semantics of grammar patterns in source code identifiers
Christian D. Newman, Reem S. Alsuhaibani, Michael John Decker, Anthony Peruma, Dishant Kaushik, Mohamed Wiem Mkaouer, Emily Hill 0001 |
J. Syst. Softw. | 6 |
| 2020 | Contextualizing rename decisions using refactorings, commit messages, and data types
Anthony Peruma, Mohamed Wiem Mkaouer, Michael John Decker, Christian D. Newman |
J. Syst. Softw. | 2 |
| 2020 | Learning to detect community smells in open source software projects
Nuri Almarimi, Ali Ouni 0001, Mohamed Wiem Mkaouer |
Knowl. Based Syst. | 3 |
| 2020 | Assessing the quality of mobile graphical user interfaces using multi-objective optimization
Makram Soui, Mabrouka Chouchane, Mohamed Wiem Mkaouer, Marouane Kessentini, Khaled Ghédira |
Soft Comput. | 3 |
| 2020 | An Interactive and Dynamic Search-Based Approach to Software Refactoring RecommendationsabstractSuccessful software products evolve through a process of continual change. However, this process may weaken the design of the software and make it unnecessarily complex, leading to significantly reduced productivity and increased fault-proneness. Refactoring improves the software design while preserving overall functionality and behavior, and is an important technique in managing the growing complexity of software systems. Most of the existing work on software refactoring uses either an entirely manual or a fully automated approach. Manual refactoring is time-consuming, error-prone and unsuitable for large-scale, radical refactoring. On the other hand, fully automated refactoring yields a static list of refactorings which, when applied, leads to a new and often hard to comprehend design. Furthermore, it is difficult to merge these refactorings with other changes performed in parallel by developers. In this paper, we propose a refactoring recommendation approach that dynamically adapts and interactively suggests refactorings to developers and takes their feedback into consideration. Our approach uses NSGA-II to find a set of good refactoring solutions that improve software quality while minimizing the deviation from the initial design. These refactoring solutions are then analyzed to extract interesting common features between them such as the frequently occurring refactorings in the best non-dominated solutions. Based on this analysis, the refactorings are ranked and suggested to the developer in an interactive fashion as a sequence of transformations. The developer can approve, modify or reject each of the recommended refactorings, and this feedback is then used to update the proposed rankings of recommended refactorings. After a number of introduced code changes and interactions with the developer, the interactive NSGA-II algorithm is executed again on the new modified system to repair the set of refactoring solutions based on the new changes and the feedback received from the developer. We evaluated our approach on a set of eight open source systems and two industrial projects provided by an industrial partner. Statistical analysis of our experiments shows that our dynamic interactive refactoring approach performed significantly better than four existing search-based refactoring techniques and one fully-automated refactoring tool not based on heuristic search. Vahid Alizadeh, Marouane Kessentini, Mohamed Wiem Mkaouer, Mel Ó Cinnéide, Ali Ouni 0001, Yuanfang Cai |
IEEE Trans. Software Eng. | 3 |
| 2019 | On the Impact of Refactoring on the Relationship between Quality Attributes and Design MetricsabstractBackground. Refactoring is a critical task in software maintenance and is generally performed to enforce the best design and implementation practices or to cope with design defects. Several studies attempted to detect refactoring activities through mining software repositories allowing to collect, analyze and get actionable data-driven insights about refactoring practices within software projects. Aim. We aim at identifying, among the various quality models presented in the literature, the ones that are more in-line with the developer's vision of quality optimization, when they explicitly mention that they are refactoring to improve them. Method. We extract a large corpus of design-related refactoring activities that are applied and documented by developers during their daily changes from 3,795 curated open source Java projects. In particular, we extract a large-scale corpus of structural metrics and anti-pattern enhancement changes, from which we identify 1,245 quality improvement commits with their corresponding refactoring operations, as perceived by software engineers. Thereafter, we empirically analyze the impact of these refactoring operations on a set of common state-of-the-art design quality metrics. Results. The statistical analysis of the obtained results shows that (i) a few state-of-the-art metrics are more popular than others; and (ii) some metrics are being more emphasized than others. Conclusions. We verify that there are a variety of structural metrics that can represent the internal quality attributes with different degrees of improvement and degradation of software quality. Most of the metrics that are mapped to the main quality attributes do capture developer intentions of quality improvement reported in the commit messages. Eman Abdullah AlOmar, Mohamed Wiem Mkaouer, Ali Ouni 0001, Marouane Kessentini |
ESEM | 2 |
| 2019 | MigrationMiner: An Automated Detection Tool of Third-Party Java Library Migration at the Method LevelabstractIn this paper we introduce, MigrationMiner, an automated tool that detects code migrations performed between Java third-party library. Given a list of open source projects, the tool detects potential library migration code changes and collects the specific code fragments in which the developer replaces methods from the retired library with methods from the new library. To support the migration process, MigrationMiner collects the library documentation that is associated with every method involved in the migration. We evaluate our tool on a benchmark of manually validated library migrations. Results show that MigrationMiner achieves an accuracy of 100%. A demo video of Migration-Miner is available at https://youtu.be/sAlR1HNetXc. Hussein Alrubaye, Mohamed Wiem Mkaouer, Ali Ouni 0001 |
ICSME | 2 |
| 2019 | Towards Automated Microservices Extraction Using Muti-objective Evolutionary Search
Islem Saidani, Ali Ouni 0001, Mohamed Wiem Mkaouer, Mohamed Aymen Saied |
ICSOC | 3 |
| 2019 | On the use of information retrieval to automate the detection of third-party Java library migration at the method levelabstractThe migration process between different third-party libraries is hard, complex and error-prone. Typically, during a library migration, developers need to find methods in the new library that are most adequate in replacing the old methods of the retired library. This process is subjective and time-consuming as developers need to fully understand the documentation of both libraries' Application Programming Interfaces, and find the right matching between their methods, if it exists. In this context, several studies rely on mining existing library migrations to provide developers with by-example approaches for similar scenarios. In this paper, we introduce a novel mining approach that extracts existing instances of library method replacements that are manually performed by developers for a given library migration to automatically generate migration patterns in the method level. Thereafter, our approach combines the mined method-change patterns with method-related lexical similarity to accurately detect mappings between replacing/replaced methods. We conduct a large scale empirical study to evaluate our approach on a benchmark of 57,447 open-source Java projects leading to 9 popular library migrations. Our qualitative results indicate that our approach significantly increases the accuracy of mining method-level mappings by an average accuracy of 12%, as well as increasing the number of discovered method mappings, in comparison with existing state-of-the-art studies. Finally, we provide the community with an open source mining tool along with a dataset of all mined migrations at the method level. Hussein Alrubaye, Mohamed Wiem Mkaouer, Ali Ouni 0001 |
ICPC | 2 |
| 2019 | A Multi-label Active Learning Approach for Mobile App User Review Classification
Montassar Ben Messaoud, Ilyes Jenhani, Nermine Ben Jemaa, Mohamed Wiem Mkaouer |
KSEM (1) | 4 |
| 2019 | Contextualizing Rename Decisions using Refactorings and Commit MessagesabstractIdentifier names are the atoms of comprehension; weak identifier names decrease productivity by increasing the chance that developers make mistakes and increasing the time taken to understand chunks of code. Therefore, it is vital to support developers in naming, and renaming, identifiers. In this paper, we study how terms in an identifier change during the application of rename refactorings and contextualize these changes using co-occurring refactorings and commit messages. The goal of this work is to understand how different development activities affect the type of changes applied to names during a rename. Results of this study can help researchers understand more about developers' naming habits and support developers in determining when to rename and what words to use. Anthony Peruma, Mohamed Wiem Mkaouer, Michael John Decker, Christian D. Newman |
SCAM | 2 |
| 2019 | PRICE: Detection of Performance Regression Introducing Code Changes Using Static and Dynamic Metrics
Deema Alshoaibi, Kevin Hannigan, Hiten Gupta, Mohamed Wiem Mkaouer |
SSBSE | 4 |
| 2018 | Towards Prioritizing Documentation EffortabstractProgrammers need documentation to comprehend software, but they often lack the time to write it. Thus, programmers must prioritize their documentation effort to ensure that sections of code important to program comprehension are thoroughly explained. In this paper, we explore the possibility of automatically prioritizing documentation effort. We performed two user studies to evaluate the effectiveness of static source code attributes and textual analysis of source code towards prioritizing documentation effort. The first study used open-source API Libraries while the second study was conducted using closed-source industrial software from ABB. Our findings suggest that static source code attributes are poor predictors of documentation effort priority, whereas textual analysis of source code consistently performed well as a predictor of documentation effort priority. Paul W. McBurney, Siyuan Jiang, Marouane Kessentini, Nicholas A. Kraft, Ameer Armaly, Mohamed Wiem Mkaouer, Collin McMillan |
IEEE Trans. Software Eng. | 6 |
| 2017 | On the Use of Smelly Examples to Detect Code Smells in JavaScript
Ian Shoenberger, Mohamed Wiem Mkaouer, Marouane Kessentini |
EvoApplications (2) | 2 |
| 2017 | A robust multi-objective approach to balance severity and importance of refactoring opportunities
Mohamed Wiem Mkaouer, Marouane Kessentini, Mel Ó Cinnéide, Shinpei Hayashi, Kalyanmoy Deb |
Empir. Softw. Eng. | 1 |
| 2016 | Recommending relevant classes for bug reports using multi-objective searchabstractDevelopers may follow a tedious process to find the cause of a bug based on code reviews and reproducing the abnormal behavior. In this paper, we propose an automated approach to finding and ranking potential classes with the respect to the probability of containing a bug based on a bug report description. Our approach finds a good balance between minimizing the number of recommended classes and maximizing the relevance of the proposed solution using a multi-objective optimization algorithm. The relevance of the recommended classes (solution) is estimated based on the use of the history of changes and bug-fixing, and the lexical similarity between the bug report description and the API documentation. We evaluated our system on 6 open source Java projects, using the version of the project before fixing the bug of many bug reports. The experimental results show that the search-based approach significantly outperforms three state-of-the-art methods in recommending relevant files for bug reports. In particular, our multi-objective approach is able to successfully locate the true buggy methods within the top 10 recommendations for over 87% of the bug reports. Rafi Almhana, Mohamed Wiem Mkaouer, Marouane Kessentini, Ali Ouni 0001 |
ASE | 2 |
| 2016 | Interactive Code Smells Detection: An Initial Investigation
Mohamed Wiem Mkaouer |
SSBSE | 1 |
| 2016 | On the use of many quality attributes for software refactoring: a many-objective search-based software engineering approach
Mohamed Wiem Mkaouer, Marouane Kessentini, Slim Bechikh, Mel Ó Cinnéide, Kalyanmoy Deb |
Empir. Softw. Eng. | 1 |
| 2015 | Many-Objective Software Remodularization Using NSGA-IIIabstractSoftware systems nowadays are complex and difficult to maintain due to continuous changes and bad design choices. To handle the complexity of systems, software products are, in general, decomposed in terms of packages/modules containing classes that are dependent. However, it is challenging to automatically remodularize systems to improve their maintainability. The majority of existing remodularization work mainly satisfy one objective which is improving the structure of packages by optimizing coupling and cohesion. In addition, most of existing studies are limited to only few operation types such as move class and split packages. Many other objectives, such as the design semantics, reducing the number of changes and maximizing the consistency with development change history, are important to improve the quality of the software by remodularizing it. In this article, we propose a novel many-objective search-based approach using NSGA-III. The process aims at finding the optimal remodularization solutions that improve the structure of packages, minimize the number of changes, preserve semantics coherence, and reuse the history of changes. We evaluate the efficiency of our approach using four different open-source systems and one automotive industry project, provided by our industrial partner, through a quantitative and qualitative study conducted with software engineers. Mohamed Wiem Mkaouer, Marouane Kessentini, Adnan Shaout, Patrice Koligheu, Slim Bechikh, Kalyanmoy Deb, Ali Ouni 0001 |
ACM Trans. Softw. Eng. Methodol. | 1 |
| 2014 | High dimensional search-based software engineering: finding tradeoffs among 15 objectives for automating software refactoring using NSGA-IIIabstractThere is a growing need for scalable search-based software engineering approaches that address software engineering problems where a large number of objectives are to be optimized. Software refactoring is one of these problems where a refactoring sequence is sought that optimizes several software metrics. Most of the existing refactoring work uses a large set of quality metrics to evaluate the software design after applying refactoring operations, but current search-based software engineering approaches are limited to using a maximum of five metrics. We propose for the first time a scalable search-based software engineering approach based on a newly proposed evolutionary optimization method NSGA-III where there are 15 different objectives to be optimized. In our approach, automated refactoring solutions are evaluated using a set of 15 distinct quality metrics. We evaluated this approach on seven large open source systems and found that, on average, more than 92% of code smells were corrected. Statistical analysis of our experiments over 31 runs shows that NSGA-III performed significantly better than two other many-objective techniques (IBEA and MOEA/D), a multi-objective algorithm (NSGA-II) and two mono-objective approaches, hence demonstrating that our NSGA-III approach represents the new state of the art in fully-automated refactoring. Mohamed Wiem Mkaouer, Marouane Kessentini, Slim Bechikh, Kalyanmoy Deb, Mel Ó Cinnéide |
GECCO | 1 |
| 2014 | Recommendation system for software refactoring using innovization and interactive dynamic optimizationabstractWe propose a novel recommendation tool for software refactoring that dynamically adapts and suggests refactorings to developers interactively based on their feedback and introduced code changes. Our approach starts by finding upfront a set of non-dominated refactoring solutions using NSGA-II to improve software quality, reduce the number of refactorings and increase semantic coherence. The generated non-dominated refactoring solutions are analyzed using our innovization component to extract some interesting common features between them. Based on this analysis, the suggested refactorings are ranked and suggested to the developer one by one. The developer can approve, modify or reject each suggested refactoring, and this feedback is used to update the ranking of the suggested refactorings. After a number of introduced code changes, a local search is performed to update and adapt the set of refactoring solutions suggested by NSGA-II. We evaluated this tool on four large open source systems and one industrial project provided by our partner. Statistical analysis of our experiments over 31 runs shows that the dynamic refactoring approach performed significantly better than three other search-based refactoring techniques, manual refactorings, and one refactoring tool not based on heuristic search. Mohamed Wiem Mkaouer, Marouane Kessentini, Slim Bechikh, Kalyanmoy Deb, Mel Ó Cinnéide |
ASE | 1 |
| 2014 | A Robust Multi-objective Approach for Software Refactoring under Uncertainty
Mohamed Wiem Mkaouer, Marouane Kessentini, Slim Bechikh, Mel Ó Cinnéide |
SSBSE | 1 |