Jevgenija Pantiuchina

dblp:199/0400 · DBLP profile ↗
← Back
8ranked-venue papers
5as first author
1since 2021 · last 2022
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 8 · 5 first-author · 1 since 2021

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
3 papers
Software maintenance and evolution · 66% Empirical software engineering · 23% Compilers and program optimization · 9%

Topics — the 7 heaviest of 7, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Software maintenance and evolution
refactoring
1.432022
Why Do Developers Reject Refactorings in Open-Source Projects? · ACM Trans. Softw. Eng. Methodol. 2022
Why Developers Refactor Source Code: A Mining-based Study · ACM Trans. Softw. Eng. Methodol. 2020
On learning meaningful code changes via neural machine translation · ICSE 2019
Empirical software engineering
mining software repositories
1.022022
Why Do Developers Reject Refactorings in Open-Source Projects? · ACM Trans. Softw. Eng. Methodol. 2022
Why Developers Refactor Source Code: A Mining-based Study · ACM Trans. Softw. Eng. Methodol. 2020
Software maintenance and evolution › code review › code review analysis
pull request analysis
1.022022
Why Do Developers Reject Refactorings in Open-Source Projects? · ACM Trans. Softw. Eng. Methodol. 2022
Why Developers Refactor Source Code: A Mining-based Study · ACM Trans. Softw. Eng. Methodol. 2020
Software maintenance and evolution › refactoring
automated refactoring
0.412019
On learning meaningful code changes via neural machine translation · ICSE 2019
Compilers and program optimization
program transformation
0.412019
On learning meaningful code changes via neural machine translation · ICSE 2019
Debugging and program repair
automated program repair
0.112019
On learning meaningful code changes via neural machine translation · ICSE 2019
Software maintenance and evolution › software maintenance
bug fixing
0.112019
On learning meaningful code changes via neural machine translation · ICSE 2019

Methods — techniques the papers use, named apart from their topics

survey · 0.6manual coding · 0.6mining software repositories · 0.4manual analysis · 0.4neural machine translation · 0.4deep learning · 0.4
YearPublicationVenuePosition
2022 Why Do Developers Reject Refactorings in Open-Source Projects?
abstract
Refactoring operations are behavior-preserving changes aimed at improving source code quality. While refactoring is largely considered a good practice, refactoring proposals in pull requests are often rejected after the code review. Understanding the reasons behind the rejection of refactoring contributions can shed light on how such contributions can be improved, essentially benefiting software quality. This article reports a study in which we manually coded rejection reasons inferred from 330 refactoring-related pull requests from 207 open-source Java projects. We surveyed 267 developers to assess their perceived prevalence of these identified rejection reasons, further complementing the reasons. Our study resulted in a comprehensive taxonomy consisting of 26 refactoring-related rejection reasons and 21 process-related rejection reasons. The taxonomy, accompanied with representative examples and highlighted implications, provides developers with valuable insights on how to ponder and polish their refactoring contributions, and indicates a number of directions researchers can pursue toward better refactoring recommenders.
Jevgenija Pantiuchina, Bin Lin 0008, Fiorella Zampetti, Massimiliano Di Penta, Michele Lanza 0001, Gabriele Bavota
ACM Trans. Softw. Eng. Methodol.1
2020 On the relationship between bug reports and queries for text retrieval-based bug localization
Chris Mills, Esteban Parra, Jevgenija Pantiuchina, Gabriele Bavota, Sonia Haiduc
Empir. Softw. Eng.3
2020 Why Developers Refactor Source Code: A Mining-based Study
abstract
Refactoring aims at improving code non-functional attributes without modifying its external behavior. Previous studies investigated the motivations behind refactoring by surveying developers. With the aim of generalizing and complementing their findings, we present a large-scale study quantitatively and qualitatively investigating why developers perform refactoring in open source projects. First, we mine 287,813 refactoring operations performed in the history of 150 systems. Using this dataset, we investigate the interplay between refactoring operations and process (e.g., previous changes/fixes) and product (e.g., quality metrics) metrics. Then, we manually analyze 551 merged pull requests implementing refactoring operations and classify the motivations behind the implemented refactorings (e.g., removal of code duplication). Our results led to (i) quantitative evidence of the relationship existing between certain process/product metrics and refactoring operations and (ii) a detailed taxonomy, generalizing and complementing the ones existing in the literature, of motivations pushing developers to refactor source code.
Jevgenija Pantiuchina, Fiorella Zampetti, Simone Scalabrino, Valentina Piantadosi, Rocco Oliveto, Gabriele Bavota, Massimiliano Di Penta
ACM Trans. Softw. Eng. Methodol.1
2019 On learning meaningful code changes via neural machine translation
abstract
Recent years have seen the rise of Deep Learning (DL) techniques applied to source code. Researchers have exploited DL to automate several development and maintenance tasks, such as writing commit messages, generating comments and detecting vulnerabilities among others. One of the long lasting dreams of applying DL to source code is the possibility to automate non-trivial coding activities. While some steps in this direction have been taken (e.g., learning how to fix bugs), there is still a glaring lack of empirical evidence on the types of code changes that can be learned and automatically applied by DL. Our goal is to make this first important step by quantitatively and qualitatively investigating the ability of a Neural Machine Translation (NMT) model to learn how to automatically apply code changes implemented by developers during pull requests. We train and experiment with the NMT model on a set of 236k pairs of code components before and after the implementation of the changes provided in the pull requests. We show that, when applied in a narrow enough context (i.e., small/medium-sized pairs of methods before/after the pull request changes), NMT can automatically replicate the changes implemented by developers during pull requests in up to 36% of the cases. Moreover, our qualitative analysis shows that the model is capable of learning and replicating a wide variety of meaningful code changes, especially refactorings and bug-fixing activities. Our results pave the way for novel research in the area of DL on code, such as the automatic learning and applications of refactoring.
Michele Tufano, Jevgenija Pantiuchina, Cody Watson, Gabriele Bavota, Denys Poshyvanyk
ICSE2
2018 Are Bug Reports Enough for Text Retrieval-Based Bug Localization?
abstract
Text Retrieval (TR) has been widely used to support many software engineering tasks, including bug localization (i.e., the activity of localizing buggy code starting from a bug report). Many studies show TR's effectiveness in lowering the manual effort required to perform this maintenance task; however, the actual usefulness of TR-based bug localization has been questioned in recent studies. These studies discuss (i) potential biases in the experimental design usually adopted to evaluate TRbased bug localization techniques and (ii) their poor performance in the scenario when they are needed most: when the bug report, which serves as the de facto query in most studies, does not contain localization hints (e.g., code snippets, method names, etc.) Fundamentally, these studies raise the question: do bug reports provide sufficient information to perform TR-based localization? In this work, we approach that question from two perspectives. First, we investigate potential biases in the evaluation of TR-based approaches which artificially boost the performance of these techniques, making them appear more successful than they are. Second, we analyze bug report text with and without localization hints using a genetic algorithm to derive a near-optimal query that provides insight into the potential of that bug report for use in TR-based localization. Through this analysis we show that in most cases the bug report vocabulary (i.e., the terms contained in the bug title and description) is all we need to formulate effective queries, making TR-based bug localization successful without supplementary query expansion. Most notably, this also holds when localization hints are completely absent from the bug report. In fact, our results suggest that the next major step in improving TR-based bug localization is the ability to formulate these near-optimal queries.
Chris Mills, Jevgenija Pantiuchina, Esteban Parra, Gabriele Bavota, Sonia Haiduc
ICSME2
2018 Improving Code: The (Mis) Perception of Quality Metrics
abstract
Code quality metrics are widely used to identify design flaws (e.g., code smells) as well as to act as fitness functions for refactoring recommenders. Both these applications imply a strong assumption: quality metrics are able to assess code quality as perceived by developers. Indeed, code smell detectors and refactoring recommenders should be able to identify design flaws/recommend refactorings that are meaningful from the developer's point-of-view. While such an assumption might look reasonable, there is limited empirical evidence supporting it. We aim at bridging this gap by empirically investigating whether quality metrics are able to capture code quality improvement as perceived by developers. While previous studies surveyed developers to investigate whether metrics align with their perception of code quality, we mine commits in which developers clearly state in the commit message their aim of improving one of four quality attributes: cohesion, coupling, code readability, and code complexity. Then, we use state-of-the-art metrics to assess the change brought by each of those commits to the specific quality attribute it targets. We found that, more often than not the considered quality metrics were not able to capture the quality improvement as perceived by developers (e.g., the developer states "improved the cohesion of class C", but no quality metric captures such an improvement).
Jevgenija Pantiuchina, Michele Lanza 0001, Gabriele Bavota
ICSME1
2018 Towards just-in-time refactoring recommenders
abstract
Empirical studies have provided ample evidence that low code quality is generally associated with lower maintainability. For this reason, tools have been developed to automatically detect design flaws (e.g., code smells). However, these tools are not able to prevent the introduction of design flaws. This means that the code has to experience a quality decay (with a consequent increase of maintenance/evolution costs) before state-of-the-art tools can be applied to identify and refactor the design flaws.
Jevgenija Pantiuchina, Gabriele Bavota, Michele Tufano, Denys Poshyvanyk
ICPC1
2017 Are Software Startups Applying Agile Practices? The State of the Practice from a Large Survey
abstract
Software startups operate under various uncertainties and the demand on their ability to deal with change is high. Agile methods are considered a suitable and viable development approach for them. However, the competing needs for speed and quality may render certain agile practices less suitable than others in the startup context. The adoption of agile practices can be further complicated in software startups that adopt the Lean Startup approach. To make the best of agile practices, it is necessary to first understand whether and how they are used in software startups. This study targets at a better understanding of the use of agile practices in software startups, with a particular focus on lean startups. Based on a large survey of 1526 software startups, we examined the use of five agile practices, including quality related (regular refactoring and test first), speed related (frequent release and agile planning) and communication practice (daily standup meeting). The findings show that speed related agile practices are used to a greater extent in comparison to quality practices. Daily standup meeting is least used. Software startups who adopt the Lean Startup approach do not sacrifice quality for speed more than other startups do.
Jevgenija Pantiuchina, Marco Mondini, Dron Khanna, Xiaofeng Wang 0001, Pekka Abrahamsson
XP1