Skip to main content

Showing 1–32 of 32 results for author: Alomar, A

.
  1. 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)

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. arXiv:2306.06019  [pdf, other

    cs.SE

    State of Refactoring Adoption: Better Understanding Developer Perception of Refactoring

    Authors: Eman Abdullah AlOmar

    Abstract: We aim to explore how developers document their refactoring activities during the software life cycle. We call such activity Self-Affirmed Refactoring (SAR), which indicates developers' documentation of their refactoring activities. SAR is crucial in understanding various aspects of refactoring, including the motivation, procedure, and consequences of the performed code change. After that, we prop… ▽ More

    Submitted 9 June, 2023; originally announced June 2023.

    Comments: arXiv admin note: text overlap with arXiv:2010.13890, arXiv:2102.05201, arXiv:2009.09279

  7. arXiv:2305.16491  [pdf, other

    cs.LG eess.SY stat.ML

    SAMoSSA: Multivariate Singular Spectrum Analysis with Stochastic Autoregressive Noise

    Authors: Abdullah Alomar, Munther Dahleh, Sean Mann, Devavrat Shah

    Abstract: The well-established practice of time series analysis involves estimating deterministic, non-stationary trend and seasonality components followed by learning the residual stochastic, stationary components. Recently, it has been shown that one can learn the deterministic non-stationary components accurately using multivariate Singular Spectrum Analysis (mSSA) in the absence of a correlated stationa… ▽ More

    Submitted 26 November, 2023; v1 submitted 25 May, 2023; originally announced May 2023.

  8. 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.

  9. 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 co** 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

  10. arXiv:2211.07434  [pdf, other

    cs.LG cs.AI

    Parallel Automatic History Matching Algorithm Using Reinforcement Learning

    Authors: Omar S. Alolayan, Abdullah O. Alomar, John R. Williams

    Abstract: Reformulating the history matching problem from a least-square mathematical optimization problem into a Markov Decision Process introduces a method in which reinforcement learning can be utilized to solve the problem. This method provides a mechanism where an artificial deep neural network agent can interact with the reservoir simulator and find multiple different solutions to the problem. Such fo… ▽ More

    Submitted 23 December, 2022; v1 submitted 14 November, 2022; originally announced November 2022.

  11. 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.

  12. 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.

  13. 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.

  14. 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)

  15. arXiv:2201.01811  [pdf, other

    cs.LG cs.AI cs.NI stat.ML

    CausalSim: A Causal Framework for Unbiased Trace-Driven Simulation

    Authors: Abdullah Alomar, Pouya Hamadanian, Arash Nasr-Esfahany, Anish Agarwal, Mohammad Alizadeh, Devavrat Shah

    Abstract: We present CausalSim, a causal framework for unbiased trace-driven simulation. Current trace-driven simulators assume that the interventions being simulated (e.g., a new algorithm) would not affect the validity of the traces. However, real-world traces are often biased by the choices algorithms make during trace collection, and hence replaying traces under an intervention may lead to incorrect res… ▽ More

    Submitted 5 May, 2023; v1 submitted 5 January, 2022; originally announced January 2022.

    Comments: NSDI'23 Best Paper Award

    Journal ref: 20th USENIX Symposium on Networked Systems Design and Implementation (2023) 1115--1147

  16. 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

  17. 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

  18. 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.

  19. 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)

  20. 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 co** 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.

  21. 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

  22. 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.

  23. arXiv:2106.13900  [pdf, other

    cs.SE

    On Preserving the Behavior in Software Refactoring: A Systematic Map** 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.

  24. 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.

  25. arXiv:2102.06961  [pdf, other

    cs.LG

    PerSim: Data-Efficient Offline Reinforcement Learning with Heterogeneous Agents via Personalized Simulators

    Authors: Anish Agarwal, Abdullah Alomar, Varkey Alumootil, Devavrat Shah, Dennis Shen, Zhi Xu, Cindy Yang

    Abstract: We consider offline reinforcement learning (RL) with heterogeneous agents under severe data scarcity, i.e., we only observe a single historical trajectory for every agent under an unknown, potentially sub-optimal policy. We find that the performance of state-of-the-art offline and model-based RL methods degrade significantly given such limited data availability, even for commonly perceived "solved… ▽ More

    Submitted 10 November, 2021; v1 submitted 13 February, 2021; originally announced February 2021.

  26. 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.

  27. 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

  28. 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.

  29. arXiv:2006.13448  [pdf, other

    cs.LG stat.ML

    On Multivariate Singular Spectrum Analysis and its Variants

    Authors: Anish Agarwal, Abdullah Alomar, Devavrat Shah

    Abstract: We introduce and analyze a variant of multivariate singular spectrum analysis (mSSA), a popular time series method to impute and forecast a multivariate time series. Under a spatio-temporal factor model we introduce, given $N$ time series and $T$ observations per time series, we establish prediction mean-squared-error for both imputation and out-of-sample forecasting effectively scale as… ▽ More

    Submitted 19 June, 2022; v1 submitted 23 June, 2020; originally announced June 2020.

  30. arXiv:2005.00072  [pdf, other

    econ.EM cs.LG stat.AP

    Two Burning Questions on COVID-19: Did shutting down the economy help? Can we (partially) reopen the economy without risking the second wave?

    Authors: Anish Agarwal, Abdullah Alomar, Arnab Sarker, Devavrat Shah, Dennis Shen, Cindy Yang

    Abstract: As we reach the apex of the COVID-19 pandemic, the most pressing question facing us is: can we even partially reopen the economy without risking a second wave? We first need to understand if shutting down the economy helped. And if it did, is it possible to achieve similar gains in the war against the pandemic while partially opening up the economy? To do so, it is critical to understand the effec… ▽ More

    Submitted 10 May, 2020; v1 submitted 30 April, 2020; originally announced May 2020.

  31. 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

  32. arXiv:1903.07097  [pdf, other

    cs.DB cs.LG

    tspDB: Time Series Predict DB

    Authors: Anish Agarwal, Abdullah Alomar, Devavrat Shah

    Abstract: A major bottleneck of the current Machine Learning (ML) workflow is the time consuming, error prone engineering required to get data from a datastore or a database (DB) to the point an ML algorithm can be applied to it. Hence, we explore the feasibility of directly integrating prediction functionality on top of a data store or DB. Such a system ideally: (i) provides an intuitive prediction query i… ▽ More

    Submitted 13 February, 2021; v1 submitted 17 March, 2019; originally announced March 2019.