Skip to main content

Showing 1–43 of 43 results for author: Mkaouer, M W

.
  1. arXiv:2505.18444  [pdf, ps, other

    cs.SE

    On the Structure and Semantics of Identifier Names Containing Closed Syntactic Category Words

    Authors: Christian D. Newman, Anthony Peruma, Eman Abdullah AlOmar, Mahie Crabbe, Syreen Banabilah, Reem S. AlSuhaibani, Michael J. Decker, Farhad Akhbardeh, Marcos Zampieri, Mohamed Wiem Mkaouer, Jonathan I. Maletic

    Abstract: 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; representations of the part-of-speech (PoS) sequences that underlie identifier phrases. The specific focus is on closed syntactic categories (e.g., prepositions, co… ▽ More

    Submitted 23 May, 2025; originally announced May 2025.

    Comments: Current in submission to EMSE

  2. arXiv:2505.06484  [pdf, other

    cs.SE

    10 quick tips for making your software outlive your job

    Authors: Richard Littauer, Greg Wilson, Jan Ainali, Eman Abdullah AlOmar, Sylwester Arabas, Yanina Bellini Saibene, Kris Bubendorfer, Kaylea Champion, Clare Dillon, Jouni Helske, Pieter Huybrechts, Daniel S. Katz, Chang Liao, David Lippert, Fang Liu, Pierre Marshall, Daniel R. McCloy, Ian McInerney, Mohamed Wiem Mkaouer, Priyanka Ojha, Christoph Treude, Ethan P. White

    Abstract: Loss of key personnel has always been a risk for research software projects. Key members of the team may have to step away due to illness or burnout, to care for a family member, from a loss of financial support, or because their career is going in a new direction. Today, though, political and financial changes are putting large numbers of researchers out of work simultaneously, potentially leavin… ▽ More

    Submitted 9 May, 2025; originally announced May 2025.

    Comments: 14 pages; 1 figure

  3. arXiv:2505.01459  [pdf, other

    cs.CL cs.AI cs.LG

    MoxE: Mixture of xLSTM Experts with Entropy-Aware Routing for Efficient Language Modeling

    Authors: Abdoul Majid O. Thiombiano, Brahim Hnich, Ali Ben Mrad, Mohamed Wiem Mkaouer

    Abstract: This paper introduces MoxE, a novel architecture that synergistically combines the Extended Long Short-Term Memory (xLSTM) with the Mixture of Experts (MoE) framework to address critical scalability and efficiency challenges in large language models (LLMs). The proposed method effectively leverages xLSTM's innovative memory structures while strategically introducing sparsity through MoE to substan… ▽ More

    Submitted 1 May, 2025; originally announced May 2025.

  4. arXiv:2504.17038  [pdf, other

    cs.SE cs.CL

    SCALAR: A Part-of-speech Tagger for Identifiers

    Authors: Christian D. Newman, Brandon Scholten, Sophia Testa, Joshua A. C. Behler, Syreen Banabilah, Michael L. Collard, Michael J. Decker, Mohamed Wiem Mkaouer, Marcos Zampieri, Eman Abdullah AlOmar, Reem Alsuhaibani, Anthony Peruma, Jonathan I. Maletic

    Abstract: The 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 patte… ▽ More

    Submitted 23 April, 2025; originally announced April 2025.

  5. arXiv:2503.18565  [pdf, other

    cs.LG cs.AI cs.CL

    Distil-xLSTM: Learning Attention Mechanisms through Recurrent Structures

    Authors: Abdoul Majid O. Thiombiano, Brahim Hnich, Ali Ben Mrad, Mohamed Wiem Mkaouer

    Abstract: The current era of Natural Language Processing (NLP) is dominated by Transformer models. However, novel architectures relying on recurrent mechanisms, such as xLSTM and Mamba, have been proposed as alternatives to attention-based models. Although computation is done differently than with the attention mechanism mechanism, these recurrent models yield good results and sometimes even outperform stat… ▽ More

    Submitted 24 March, 2025; originally announced March 2025.

  6. arXiv:2408.01751  [pdf, other

    cs.SE

    On the Rationale and Use of Assertion Messages in Test Code: Insights from Software Practitioners

    Authors: Anthony Peruma, Taryn Takebayashi, Rocky Huang, Joseph Carmelo Averion, Veronica Hodapp, Christian D. Newman, Mohamed Wiem Mkaouer

    Abstract: Unit 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., as… ▽ More

    Submitted 3 August, 2024; originally announced August 2024.

    Comments: Accepted: International Conference on Software Maintenance and Evolution (ICSME 2024); Research Track

  7. arXiv:2404.10185  [pdf, other

    cs.SE

    Insights from the Field: Exploring Students' Perspectives on Bad Unit Testing Practices

    Authors: Anthony Peruma, Eman Abdullah AlOmar, Wajdi Aljedaani, Christian D. Newman, Mohamed Wiem Mkaouer

    Abstract: Educating 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 cata… ▽ More

    Submitted 15 April, 2024; originally announced April 2024.

    Comments: Accepted at: 2024 Innovation and Technology in Computer Science Education V. 1 (ITiCSE 2024)

  8. arXiv:2402.06035  [pdf, other

    cs.SE

    AntiCopyPaster 2.0: Whitebox just-in-time code duplicates extraction

    Authors: Eman Abdullah AlOmar, Benjamin Knobloch, Thomas Kain, Christopher Kalish, Mohamed Wiem Mkaouer, Ali Ouni

    Abstract: AntiCopyPaster is an IntelliJ IDEA plugin, implemented to detect and refactor duplicate code interactively as soon as a duplicate is introduced. The plugin only recommends the extraction of a duplicate when it is worth it. In contrast to current Extract Method refactoring approaches, our tool seamlessly integrates with the developer's workflow and actively provides recommendations for refactorings… ▽ More

    Submitted 8 February, 2024; originally announced February 2024.

  9. arXiv:2402.06013  [pdf, other

    cs.SE

    How to Refactor this Code? An Exploratory Study on Developer-ChatGPT Refactoring Conversations

    Authors: Eman Abdullah AlOmar, Anushkrishna Venkatakrishnan, Mohamed Wiem Mkaouer, Christian D. Newman, Ali Ouni

    Abstract: Large 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… ▽ More

    Submitted 8 February, 2024; originally announced February 2024.

  10. arXiv:2312.12600  [pdf, other

    cs.SE

    Behind the Intent of Extract Method Refactoring: A Systematic Literature Review

    Authors: Eman Abdullah AlOmar, Mohamed Wiem Mkaouer, Ali Ouni

    Abstract: Code refactoring is widely recognized as an essential software engineering practice to improve the understandability and maintainability of the source code. The Extract Method refactoring is considered as "Swiss army knife" of refactorings, as developers often apply it to improve their code quality. In recent years, several studies attempted to recommend Extract Method refactorings allowing the co… ▽ More

    Submitted 19 December, 2023; originally announced December 2023.

  11. arXiv:2311.10753  [pdf, other

    cs.CY cs.SE

    Automating Source Code Refactoring in the Classroom

    Authors: Eman Abdullah AlOmar, Mohamed Wiem Mkaouer, Ali Ouni

    Abstract: Refactoring 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… ▽ More

    Submitted 5 November, 2023; originally announced November 2023.

  12. arXiv:2311.00256  [pdf

    cs.SE

    How is Software Reuse Discussed in Stack Overflow?

    Authors: Eman Abdullah AlOmara, Anthony Peruma, Mohamed Wiem Mkaouer, Christian Newman, Ali Ouni

    Abstract: Software reuse is a crucial external quality attribute targeted by open-source and commercial projects. Despite that software reuse has experienced an increased adoption throughout the years, little is known about what aspects of code reuse developers discuss. In this paper, we present an empirical study of 1,409 posts to better understand the challenges developers face when reusing code. Our find… ▽ More

    Submitted 31 October, 2023; originally announced November 2023.

    Comments: 2023 Conference on Systems Engineering Research

  13. arXiv:2303.04234  [pdf, other

    cs.SE

    Do the Test Smells Assertion Roulette and Eager Test Impact Students' Troubleshooting and Debugging Capabilities?

    Authors: Wajdi Aljedaani, Mohamed Wiem Mkaouer, Anthony Peruma, Stephanie Ludi

    Abstract: To ensure the quality of a software system, developers perform an activity known as unit testing, where they write code (known as test cases) that verifies the individual software units that make up the system. Like production code, test cases are subject to bad programming practices, known as test smells, that hurt maintenance activities. An essential part of most maintenance activities is progra… ▽ More

    Submitted 7 March, 2023; originally announced March 2023.

    Comments: This study has been accepted at: The 45th IEEE/ACM International Conference on Software Engineering (ICSE 2023); Track: Software Engineering Education and Training

  14. arXiv:2303.00169  [pdf, other

    cs.SE

    An Exploratory Study on the Usage and Readability of Messages Within Assertion Methods of Test Cases

    Authors: Taryn Takebayashi, Anthony Peruma, Mohamed Wiem Mkaouer, Christian D. Newman

    Abstract: Unit testing is a vital part of the software development process and involves developers writing code to verify or assert production code. Furthermore, to help comprehend the test case and troubleshoot issues, developers have the option to provide a message that explains the reason for the assertion failure. In this exploratory empirical study, we examine the characteristics of assertion messages… ▽ More

    Submitted 28 February, 2023; originally announced March 2023.

    Comments: This study has been accepted at: The 2nd International Workshop on Natural Language-based Software Engineering (NLBSE 2023)

  15. arXiv:2302.05554  [pdf, other

    cs.SE

    On the Use of Static Analysis to Engage Students with Software Quality Improvement: An Experience with PMD

    Authors: Eman Abdullah AlOmar, Salma Abdullah AlOmar, Mohamed Wiem Mkaouer

    Abstract: Static analysis tools are frequently used to scan the source code and detect deviations from the project coding guidelines. Given their importance, linters are often introduced to classrooms to educate students on how to detect and potentially avoid these code anti-patterns. However, little is known about their effectiveness in raising students awareness, given that these linters tend to generate… ▽ More

    Submitted 13 July, 2023; v1 submitted 10 February, 2023; originally announced February 2023.

  16. arXiv:2302.03416  [pdf, other

    cs.SE

    Just-in-Time Code Duplicates Extraction

    Authors: Eman Abdullah AlOmar, Anton Ivanov, Zarina Kurbatova, Yaroslav Golubev, Mohamed Wiem Mkaouer, Ali Ouni, Timofey Bryksin, Le Nguyen, Amit Kini, Aditya Thakur

    Abstract: Refactoring is a critical task in software maintenance, and is usually performed to enforce better design and coding practices, while coping with design defects. The Extract Method refactoring is widely used for merging duplicate code fragments into a single new method. Several studies attempted to recommend Extract Method refactoring opportunities using different techniques, including program sli… ▽ More

    Submitted 7 February, 2023; originally announced February 2023.

    Comments: 32 pages, 9 figures

  17. arXiv:2210.09947  [pdf, other

    cs.SE

    Finding the Needle in a Haystack: On the Automatic Identification of Accessibility User Reviews

    Authors: Eman Abdullah AlOmar, Wajdi Aljedaani, Murtaza Tamjeed, Mohamed Wiem Mkaouer, Yasmine N. Elglaly

    Abstract: In 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. Th… ▽ More

    Submitted 18 October, 2022; originally announced October 2022.

  18. arXiv:2203.14404  [pdf, other

    cs.SE

    Code Review Practices for Refactoring Changes: An Empirical Study on OpenStack

    Authors: Eman Abdullah AlOmar, Moataz Chouchen, Mohamed Wiem Mkaouer, Ali Ouni

    Abstract: Modern 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, b… ▽ More

    Submitted 27 March, 2022; originally announced March 2022.

  19. arXiv:2203.10221  [pdf, other

    cs.SE

    An Exploratory Study on Refactoring Documentation in Issues Handling

    Authors: Eman Abdullah AlOmar, Anthony Peruma, Mohamed Wiem Mkaouer, Christian D. Newman, Ali Ouni

    Abstract: Understanding 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 kno… ▽ More

    Submitted 18 March, 2022; originally announced March 2022.

  20. arXiv:2203.05660  [pdf, other

    cs.SE

    Refactoring Debt: Myth or Reality? An Exploratory Study on the Relationship Between Technical Debt and Refactoring

    Authors: Anthony Peruma, Eman Abdullah AlOmar, Christian D. Newman, Mohamed Wiem Mkaouer, Ali Ouni

    Abstract: To meet project timelines or budget constraints, developers intentionally deviate from writing optimal code to feasible code in what is known as incurring Technical Debt (TD). Furthermore, as part of planning their correction, developers document these deficiencies as comments in the code (i.e., self-admitted technical debt or SATD). As a means of improving source code quality, developers often ap… ▽ More

    Submitted 10 March, 2022; originally announced March 2022.

    Comments: This study has been accepted for publication at: The 19th International Conference on Mining Software Repositories (MSR 2022)

  21. arXiv:2112.15230  [pdf, other

    cs.SE

    AntiCopyPaster: Extracting Code Duplicates As Soon As They Are Introduced in the IDE

    Authors: Eman Abdullah AlOmar, Anton Ivanov, Zarina Kurbatova, Yaroslav Golubev, Mohamed Wiem Mkaouer, Ali Ouni, Timofey Bryksin, Le Nguyen, Amit Kini, Aditya Thakur

    Abstract: 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 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… ▽ More

    Submitted 2 September, 2022; v1 submitted 30 December, 2021; originally announced December 2021.

    Comments: 4 pages, 3 figures

  22. arXiv:2112.01581  [pdf, other

    cs.SE

    On the Documentation of Refactoring Types

    Authors: Eman Abdullah AlOmar, Jiaqian Liu, Kenneth Addo, Mohamed Wiem Mkaouer, Christian Newman, Ali Ouni, Zhe Yu

    Abstract: Commit messages are the atomic level of software documentation. They provide a natural language description of the code change and its purpose. Messages are critical for software maintenance and program comprehension. Unlike documenting feature updates and bug fixes, little is known about how developers document their refactoring activities. Developers can perform multiple refactoring operations,… ▽ More

    Submitted 2 December, 2021; originally announced December 2021.

    Comments: arXiv admin note: text overlap with arXiv:2009.09279

  23. arXiv:2111.07002  [pdf, other

    cs.SE

    Refactoring for Reuse: An Empirical Study

    Authors: Eman Abdullah AlOmar, Tianjia Wang, Vaibhavi Raut, Mohamed Wiem Mkaouer, Christian Newman, Ali Ouni

    Abstract: Refactoring is the de-facto practice to optimize software health. While several studies propose refactoring strategies to optimize software design through applying design patterns and removing design defects, little is known about how developers actually refactor their code to improve its reuse. Therefore, we extract, from 1,828 open-source projects, a set of refactorings that were intended to imp… ▽ More

    Submitted 12 November, 2021; originally announced November 2021.

  24. How Do I Refactor This? An Empirical Study on Refactoring Trends and Topics in Stack Overflow

    Authors: Anthony Peruma, Steven Simmons, Eman Abdullah AlOmar, Christian D. Newman, Mohamed Wiem Mkaouer, Ali Ouni

    Abstract: An essential part of software maintenance and evolution, refactoring is performed by developers, regardless of technology or domain, to improve the internal quality of the system, and reduce its technical debt. However, choosing the appropriate refactoring strategy is not always straightforward, resulting in developers seeking assistance. Although research in refactoring is well-established, with… ▽ More

    Submitted 23 October, 2021; originally announced October 2021.

    Comments: Part of a collection: Collective Knowledge in Software Engineering ISSN: 1382-3256 (Print) 1573-7616 (Online)

    Journal ref: Empir Software Eng 27, 11 (2022)

  25. arXiv:2109.15141  [pdf, other

    cs.SE cs.LG

    Predicting Code Review Completion Time in Modern Code Review

    Authors: Moataz Chouchen, Jefferson Olongo, Ali Ouni, Mohamed Wiem Mkaouer

    Abstract: Context. Modern Code Review (MCR) is being adopted in both open source and commercial projects as a common practice. MCR is a widely acknowledged quality assurance practice that allows early detection of defects as well as poor coding practices. It also brings several other benefits such as knowledge sharing, team awareness, and collaboration. Problem. In practice, code reviews can experience si… ▽ More

    Submitted 30 September, 2021; originally announced September 2021.

    Comments: 6 pages, 3 figures Registered report for ICSME21

    Report number: 237

  26. arXiv:2109.11089  [pdf, other

    cs.SE

    Behind the Scenes: On the Relationship Between Developer Experience and Refactoring

    Authors: Eman Abdullah AlOmar, Anthony Peruma, Mohamed Wiem Mkaouer, Christian D. Newman, Ali Ouni

    Abstract: 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… ▽ More

    Submitted 22 September, 2021; originally announced September 2021.

  27. An Ensemble Approach for Annotating Source Code Identifiers with Part-of-speech Tags

    Authors: Christian D. Newman, Michael J. Decker, Reem S. AlSuhaibani, Anthony Peruma, Satyajit Mohapatra, Tejal Vishnoi, Marcos Zampieri, Mohamed W. Mkaouer, Timothy J. Sheldon, Emily Hill

    Abstract: This 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… ▽ More

    Submitted 1 September, 2021; originally announced September 2021.

    Comments: 18 pages. arXiv admin note: text overlap with arXiv:2007.08033

    Journal ref: in IEEE Transactions on Software Engineering, vol. , no. 01, pp. 1-1, 5555

  28. arXiv:2107.07357  [pdf, other

    cs.SE

    One Thousand and One Stories: A Large-Scale Survey of Software Refactoring

    Authors: Yaroslav Golubev, Zarina Kurbatova, Eman Abdullah AlOmar, Timofey Bryksin, Mohamed Wiem Mkaouer

    Abstract: Despite 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 peopl… ▽ More

    Submitted 16 July, 2021; v1 submitted 15 July, 2021; originally announced July 2021.

    Comments: 11 pages, 7 figures

  29. arXiv:2107.00073  [pdf, other

    cs.SE

    SATDBailiff- Mining and Tracking Self-Admitted Technical Debt

    Authors: Eman Abdullah AlOmar, Ben Christians, Mihal Busho, Ahmed Hamad AlKhalid, Ali Ouni, Christian Newman, Mohamed Wiem Mkaouer

    Abstract: Self-Admitted Technical Debt (SATD) is a metaphorical concept to describe the self-documented addition of technical debt to a software project in the form of source code comments. SATD can linger in projects and degrade source-code quality, but it can also be more visible than unintentionally added or undocumented technical debt. Understanding the implications of adding SATD to a software project… ▽ More

    Submitted 30 June, 2021; originally announced July 2021.

  30. arXiv:2106.13900  [pdf, other

    cs.SE

    On Preserving the Behavior in Software Refactoring: A Systematic Mapping Study

    Authors: Eman Abdullah AlOmar, Mohamed Wiem Mkaouer, Christian Newman, Ali Ouni

    Abstract: Context: Refactoring is the art of modifying the design of a system without altering its behavior. The idea is to reorganize variables, classes and methods to facilitate their future adaptations and comprehension. As the concept of behavior preservation is fundamental for refactoring, several studies, using formal verification, language transformation and dynamic analysis, have been proposed to mo… ▽ More

    Submitted 21 July, 2021; v1 submitted 25 June, 2021; originally announced June 2021.

  31. arXiv:2104.14640  [pdf, other

    cs.SE

    Test Smell Detection Tools: A Systematic Mapping Study

    Authors: Wajdi Aljedaani, Anthony Peruma, Ahmed Aljohani, Mazen Alotaibi, Mohamed Wiem Mkaouer, Ali Ouni, Christian D. Newman, Abdullatif Ghallab, Stephanie Ludi

    Abstract: Test 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 thes… ▽ More

    Submitted 3 May, 2021; v1 submitted 29 April, 2021; originally announced April 2021.

    Comments: Accepted at: The International Conference on Evaluation and Assessment in Software Engineering (EASE '21)

  32. arXiv:2103.09190  [pdf, other

    cs.SE

    Using Grammar Patterns to Interpret Test Method Name Evolution

    Authors: Anthony Peruma, Emily Hu, Jiajun Chen, Eman Abdullah Alomar, Mohamed Wiem Mkaouer, Christian D. Newman

    Abstract: It 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 o… ▽ More

    Submitted 16 March, 2021; originally announced March 2021.

  33. arXiv:2102.05201  [pdf, other

    cs.SE

    Refactoring Practices in the Context of Modern Code Review: An Industrial Case Study at Xerox

    Authors: Eman Abdullah AlOmar, Hussein AlRubaye, Mohamed Wiem Mkaouer, Ali Ouni, Marouane Kessentini

    Abstract: Modern code review is a common and essential practice employed in both industrial and open-source projects to improve software quality, share knowledge, and ensure conformance with coding standards. During code review, developers may inspect and discuss various changes including refactoring activities before merging code changes in the codebase. To date, code review has been extensively studied to… ▽ More

    Submitted 9 February, 2021; originally announced February 2021.

  34. How We Refactor and How We Document it? On the Use of Supervised Machine Learning Algorithms to Classify Refactoring Documentation

    Authors: Eman Abdullah AlOmar, Anthony Peruma, Mohamed Wiem Mkaouer, Christian Newman, Ali Ouni, Marouane Kessentini

    Abstract: Refactoring is the art of improving the design of a system without altering its external behavior. Refactoring has become a well established and disciplined software engineering practice that has attracted a significant amount of research presuming that refactoring is primarily motivated by the need to improve system structures. However, recent studies have shown that developers may incorporate re… ▽ More

    Submitted 26 October, 2020; originally announced October 2020.

    Journal ref: Expert Systems with Applications. 167 (2021) 114176

  35. arXiv:2009.09279  [pdf, other

    cs.SE cs.LG

    Toward the Automatic Classification of Self-Affirmed Refactoring

    Authors: Eman Abdullah AlOmar, Mohamed Wiem Mkaouer, Ali Ouni

    Abstract: The 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, includ… ▽ More

    Submitted 19 September, 2020; originally announced September 2020.

  36. On the Generation, Structure, and Semantics of Grammar Patterns in Source Code Identifiers

    Authors: Christian D. Newman, Reem S. AlSuhaibani, Michael J. Decker, Anthony Peruma, Dishant Kaushik, Mohamed Wiem Mkaouer, Emily Hill

    Abstract: Identifiers make up a majority of the text in code. They are one of the most basic mediums through which developers describe the code they create and understand the code that others create. Therefore, understanding the patterns latent in identifier naming practices and how accurately we are able to automatically model these patterns is vital if researchers are to support developers and automated a… ▽ More

    Submitted 15 July, 2020; originally announced July 2020.

    Comments: 69 pages, 3 figures, 16 tables

    Journal ref: Journal of Systems and Software, 2020, 110740, ISSN 0164-1212

  37. arXiv:2005.06510  [pdf

    cs.SE cs.AI

    Many-Objective Software Remodularization using NSGA-III

    Authors: Mohamed Wiem Mkaouer, Marouane Kessentini, Adnan Shaout, Patrice Koligheu, Slim Bechikh, Kalyanmoy Deb, Ali Ouni

    Abstract: Software 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 remodulariz… ▽ More

    Submitted 13 May, 2020; originally announced May 2020.

    Comments: Mkaouer, Wiem, et al. "Many-objective software remodularization using NSGA-III." ACM Transactions on Software Engineering and Methodology (TOSEM) 24.3 (2015): 1-45

    Journal ref: ACM Transactions on Software Engineering and Methodology (TOSEM) 24, no. 3 (2015): 1-45

  38. arXiv:1907.07724  [pdf

    cs.SE

    How Does API Migration Impact Software Quality and Comprehension? An Empirical Study

    Authors: Hussein Alrubaye, Deema Alshoaibi, Eman Alomar, Mohamed Wiem Mkaouer, Ali Ouni

    Abstract: The migration process between different third-party software libraries is hard, complex and error-prone. Typically, during a library migration process, developers opt to replace methods from the retired library with other methods from a new library without altering the software behavior. However, the extent to which such a migration process to new libraries will be rewarded with an improved softwa… ▽ More

    Submitted 2 October, 2020; v1 submitted 18 July, 2019; originally announced July 2019.

    Comments: Accepted at International Conference on Software and Systems Reuse (ICSR-2020)

  39. Do Design Metrics Capture Developers Perception of Quality? An Empirical Study on Self-Affirmed Refactoring Activities

    Authors: Eman Abdullah AlOmar, Mohamed Wiem Mkaouer, Ali Ouni, Marouane Kessentini

    Abstract: Background. 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.… ▽ More

    Submitted 10 July, 2019; originally announced July 2019.

    Comments: technical paper accepted in 2019 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM)

    Journal ref: 2019 {ACM/IEEE} International Symposium on Empirical Software Engineering and Measurement, {ESEM} 2019, Porto de Galinhas, Recife, Brazil, September 19-20, 2019

  40. arXiv:1907.02997  [pdf

    cs.SE cs.CL

    MigrationMiner: An Automated Detection Tool of Third-Party Java Library Migration at the Method Level

    Authors: Hussein Alrubaye, Mohamed Wiem Mkaouer, Ali Ouni

    Abstract: In 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 pro… ▽ More

    Submitted 13 July, 2019; v1 submitted 5 July, 2019; originally announced July 2019.

    Comments: Accepted at ICSME 2019. arXiv admin note: text overlap with arXiv:1906.02591

  41. arXiv:1906.03060  [pdf

    cs.CY

    Comparison of block-based and hybrid-based environments in transferring programming skills to text-based environments

    Authors: Hussein Alrubaye, Stephanie Ludi, Mohamed Wiem Mkaouer

    Abstract: Teachers face several challenges when presenting the fundamental concepts of programming in the classroom. Several tools are introduced to give a visual dimension to support the learning process. These tools rely on code blocks, easily manipulated in a plug and play fashion, to build a program. These block-based tools intend to familiarize students with programming logic, before diving into text-b… ▽ More

    Submitted 20 November, 2019; v1 submitted 2 June, 2019; originally announced June 2019.

    Comments: Accepted at Proceedings of the 29th Annual International Conference on Computer Science and Software Engineering

  42. arXiv:1906.02882  [pdf

    cs.IR cs.CL

    Learning to Recommend Third-Party Library Migration Opportunities at the API Level

    Authors: Hussein Alrubaye, Mohamed Wiem Mkaouer, Igor Khokhlov, Leon Reznik, Ali Ouni, Jason Mcgoff

    Abstract: The manual migration between different third-party libraries represents a challenge for software developers. Developers typically need to explore both libraries Application Programming Interfaces, along with reading their documentation, in order to locate the suitable mappings between replacing and replaced methods. In this paper, we introduce RAPIM, a novel machine learning approach that recommen… ▽ More

    Submitted 6 June, 2019; originally announced June 2019.

  43. arXiv:1906.02591  [pdf

    cs.SE

    On the Use of Information Retrieval to Automate the Detection of Third-Party Java Library Migration at the Method Level

    Authors: Hussein Alrubaye, Mohamed Wiem Mkaouer, Ali Ouni

    Abstract: The 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 Progr… ▽ More

    Submitted 2 June, 2019; originally announced June 2019.

    Comments: accepted at 27th IEEE/ACM International Conference on Program Comprehension 2019

    Journal ref: 27th IEEE/ACM International Conference on Program Comprehension 2019