Simone Scalabrino

Dr. Simone Scalabrino


Research Focus & Metrics

Academic Career Length

11Years (2016-Present)

(Calculated once Scilit publication data is synced: current year − year of first publication + 1)

Representative Publications

View All Publications
8 June 2018 in Journal of Software: Evolution and Process
Verified
Journal Article
Closed access
PDF file
SSSimone Scalabrino
Simone Scalabrino
MLMario Linares‐Vásquez
Mario Linares‐Vásquez
RORocco Oliveto
Rocco Oliveto
DPDenys Poshyvanyk
Denys Poshyvanyk

15 June 2022 in IEEE Transactions on Software Engineering
Verified
Journal Article
Closed access
AMAntonio Mastropaolo
Antonio Mastropaolo
NCNathan Cooper
Nathan Cooper
DPDavid Nader Palacio
David Nader Palacio
SSSimone Scalabrino
Simone Scalabrino
DPDenys Poshyvanyk
Denys Poshyvanyk
GBGabriele Bavota
Gabriele Bavota
Deep learning (DL) techniques have been used to support several code-related tasks such as code summarization and bug-fixing. In particular, pre-trained transformer models are on the rise, also thanks to the excellent results they achieved in Natural Language Processing (NLP) tasks. The basic idea behind these models is to first pre-train them on a generic dataset using a self-supervised task (e.g.,filling masked words in sentences). Then, these models are fine-tuned to support specific tasks of interest (e.g.,language translation). A single model can be fine-tuned to support multiple tasks, possibly exploiting the benefits of transfer learning. This means that knowledge acquired to solve a specific task (e.g.,language translation) can be useful to boost performance on another task (e.g.,sentiment classification). While the benefits of transfer learning have been widely studied in NLP, limited empirical evidence is available when it comes to code-related tasks. In this paper, we assess the performance of the Text-To-Text Transfer Transformer (T5) model in supporting four different code-related tasks: (i) automatic bug-fixing, (ii) injection of code mutants, (iii) generation of assert statements, and (iv) code summarization. We pay particular attention in studying the role played by pre-training and multi-task fine-tuning on the model’s performance. We show that (i) the T5 can achieve better performance as compared to state-of-the-art baselines; and (ii) while pre-training helps the model, not all tasks benefit from a multi-task fine-tuning.

1 May 2017
Verified
Conference Paper
Closed access
FZFiorella Zampetti
Fiorella Zampetti
SSSimone Scalabrino
Simone Scalabrino
RORocco Oliveto
Rocco Oliveto
GCGerardo Canfora
Gerardo Canfora
MPMassimiliano Di Penta
Massimiliano Di Penta
Static analysis tools are often used by software developers to entail early detection of potential faults, vulnerabilities, code smells, or to assess the source code adherence to coding standards and guidelines. Also, their adoption within Continuous Integration (CI) pipelines has been advocated by researchers and practitioners. This paper studies the usage of static analysis tools in 20 Java open source projects hosted on GitHub and using Travis CI as continuous integration infrastructure. Specifically, we investigate (i) which tools are being used and how they are configured for the CI, (ii) what types of issues make the build fail or raise warnings, and (iii) whether, how, and after how long are broken builds and warnings resolved. Results indicate that in the analyzed projects build breakages due to static analysis tools are mainly related to adherence to coding standards, and there is also some attention to missing licenses. Build failures related to tools identifying potential bugs or vulnerabilities occur less frequently, and in some cases such tools are activated in a "softer" mode, without making the build fail. Also, the study reveals that build breakages due to static analysis tools are quickly fixed by actually solving the problem, rather than by disabling the warning, and are often properly documented.

25 February 2019 in IEEE Transactions on Software Engineering
Verified
Journal Article
Closed access
SSSimone Scalabrino
Simone Scalabrino
GBGabriele Bavota
Gabriele Bavota
CVChristopher Vendome
Christopher Vendome
MLMario Linares-Vásquez
Mario Linares-Vásquez
DPDenys Poshyvanyk
Denys Poshyvanyk
RORocco Oliveto
Rocco Oliveto
Understanding software is an inherent requirement for many maintenance and evolution tasks. Without a thorough understanding of the code, developers would not be able to fix bugs or add new features timely. Measuring code understandability might be useful to guide developers in writing better code, and could also help in estimating the effort required to modify code components. Unfortunately, there are no metrics designed to assess the understandability of code snippets. In this work, we perform an extensive evaluation of 121 existing as well as new code-related, documentation-related, and developer-related metrics. We try to (i) correlate each metric with understandability and (ii) build models combining metrics to assess understandability. To do this, we use 444 human evaluations from 63 developers and we obtained a bold negative result: none of the 121 experimented metrics is able to capture code understandability, not even the ones assumed to assess quality attributes apparently related, such as code readability and complexity. While we observed some improvements while combining metrics in models, their effectiveness is still far from making them suitable for practical applications. Finally, we conducted interviews with five professional developers to understand the factors that influence their ability to understand code snippets, aiming at identifying possible new metrics.

4 October 2017 in IEEE Transactions on Software Engineering
Verified
Journal Article
Closed access
SSSimone Scalabrino
Simone Scalabrino
GBGabriele Bavota
Gabriele Bavota
BRBarbara Russo
Barbara Russo
MPMassimiliano Di Penta
Massimiliano Di Penta
RORocco Oliveto
Rocco Oliveto
The market for mobile apps is getting bigger and bigger, and it is expected to be worth over 100 Billion dollars in 2020. To have a chance to succeed in such a competitive environment, developers need to build and maintain high-quality apps, continuously astonishing their users with the coolest new features. Mobile app marketplaces allow users to release reviews. Despite reviews are aimed at recommending apps among users, they also contain precious information for developers, reporting bugs and suggesting new features. To exploit such a source of information, developers are supposed to manually read user reviews, something not doable when hundreds of them are collected per day. To help developers dealing with such a task, we developed CLAP (Crowd Listener for releAse Planning), a web application able to (i) categorize user reviews based on the information they carry out, (ii) cluster together related reviews, and (iii) prioritize the clusters of reviews to be implemented when planning the subsequent app release. We evaluated all the steps behind CLAP, showing its high accuracy in categorizing and clustering reviews and the meaningfulness of the recommended prioritizations. Also, given the availability of CLAP as a working tool, we assessed its applicability in industrial environments.

1 May 2016
Verified
Conference Paper
Closed access
SSSimone Scalabrino
Simone Scalabrino
MLMario Linares-Vásquez
Mario Linares-Vásquez
DPDenys Poshyvanyk
Denys Poshyvanyk
RORocco Oliveto
Rocco Oliveto
Code reading is one of the most frequent activities in software maintenance; before implementing changes, it is necessary to fully understand source code often written by other developers. Thus, readability is a crucial aspect of source code that may significantly influence program comprehension effort. In general, models used to estimate software readability take into account only structural aspects of source code, e.g., line length and a number of comments. However, source code is a particular form of text; therefore, a code readability model should not ignore the textual aspects of source code encapsulated in identifiers and comments. In this paper, we propose a set of textual features aimed at measuring code readability. We evaluated the proposed textual features on 600 code snippets manually evaluated (in terms of readability) by 5K+ people. The results demonstrate that the proposed features complement classic structural features when predicting code readability judgments. Consequently, a code readability model based on a richer set of features, including the ones proposed in this paper, achieves a significantly higher accuracy as compared to all of the state-of-the-art readability models.