Davide Di Ruscio

dblp:r/DavideDiRuscio · DBLP profile ↗
← Back
122ranked-venue papers
24as first author
63since 2021 · last 2026
0000-0002-5077-6793ORCID · verified

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

Software engineering, systems software and programming languages · 113 · 23 first-author · 57 since 2021Databases, data management, data science and information retrieval · 8 · 2 first-author · 3 since 2021Applied, interdisciplinary, general and emerging computing · 5 · 3 since 2021Artificial intelligence and machine learning · 4 · 4 since 2021Systems, architecture and hardware · 1Human-computer interaction and ubiquitous computing · 1 · 1 since 2021Theory of computation · 1 · 1 first-author
YearPublicationVenuePosition
2026 Model-Driven Quality Analysis of Cyber-Physical Systems: State of the Art and Perspectives
Vittorio Cortellessa, Davide Di Ruscio, Tiziano Lombardi, Alfonso Pierantonio
MODELSWARD2
2026 An Empirical Investigation on the Use of Large Language Models for Performance Bug Detection
Muhammad Imran 0026, Vittorio Cortellessa, Davide Di Ruscio, Riccardo Rubei, Luca Traini
SANER3
2026 Automated summarization of software documents: an LLM-based multi-agent approach
Duc S. H. Nguyen, Minh T. Nguyen, Phuong T. Nguyen 0001, Juri Di Rocco, Davide Di Ruscio
Autom. Softw. Eng.5
2026 Many hands make light work: An LLM-based multi-agent system for detecting malicious PyPI packages
abstract
Malicious code in open-source repositories such as PyPI poses a growing threat to software supply chains. Traditional rule-based tools often overlook the semantic patterns in source code that are crucial for identifying adversarial components. Large language models (LLMs) show promise for software analysis, yet their use in interpretable and modular security pipelines remains limited. This paper presents LAMPS , a multi-agent system that employs collaborative LLMs to detect malicious PyPI packages. The system consists of four role-specific agents for package retrieval, file extraction, classification , and verdict aggregation , coordinated through the CrewAI framework. A prototype combines a fine-tuned CodeBERT model for classification with LLaMA 3 agents for contextual reasoning. LAMPS has been evaluated on two complementary datasets: D 1 , a balanced collection of 6,000 setup.py files, and D 2 , a realistic multi-file dataset with 1,296 files and natural class imbalance. On D 1 , LAMPS achieves 97.7% accuracy, surpassing MPHunter and TD-IDF stacking models–two state-of-the-art approaches. On D 2 , it reaches 99.5% accuracy and 99.5% balanced accuracy, outperforming RAG-based approaches and fine-tuned single-agent baselines. McNemar’s test confirmed these improvements as highly significant. The results demonstrate the feasibility of distributed LLM reasoning for malicious code detection and highlight the benefits of modular multi-agent designs in software supply chain security.
Muhammad Umar Zeshan, Motunrayo Osatohanmen Ibiyo, Claudio Di Sipio, Phuong T. Nguyen 0001, Davide Di Ruscio
J. Syst. Softw.5
2026 Guest editorial to the theme section on foundations and applications of AI and MDE
Loli Burgueño, Davide Di Ruscio, Dominik Bork
Softw. Syst. Model.2
2026 How fair are we? From conceptualization to automated assessment of fairness definitions
abstract
Abstract Fairness is a critical concept in ethics and social domains, but it is also a challenging property to engineer in software systems. With the increasing use of machine learning in software systems, researchers have been developing techniques to assess the fairness of software systems automatically. Nonetheless, many of these techniques rely upon pre-established fairness definitions, metrics, and criteria, which may fail to encompass the wide-ranging needs and preferences of users and stakeholders. To overcome this limitation, we propose a novel approach, called MODNESS, that enables users to customize and define their fairness concepts using a dedicated modeling environment. Our approach guides the user through the definition of new fairness concepts also in emerging domains, and the specification and composition of metrics for its evaluation through a dedicated domain-specific language. Ultimately, MODNESS generates the source code to implement fair assessment based on these custom definitions. In addition, we elucidate the process we followed to collect and analyze relevant literature on fairness assessment in software engineering (SE). We compare MODNESS with the selected approaches and evaluate how they support the distinguishing features identified by our study. Our findings reveal that i) most of the current approaches do not support user-defined fairness concepts; ii) our approach can cover additional application domains not addressed by currently available tools, e.g., mitigating bias in recommender systems for software engineering and Arduino software component recommendations; iii) MODNESS demonstrates the capability to overcome the limitations of the only two other model-driven engineering-based approaches for fairness assessment.
Giordano d'Aloisio, Claudio Di Sipio, Antinisca Di Marco, Davide Di Ruscio
Softw. Syst. Model.4
2025 Students' Perception of ChatGPT in Software Engineering: Lessons Learned from Five Courses
abstract
A few years after their release, Large Language Models (LLMs)-based tools are becoming an essential component of software education, as calculators are used in math courses. When learning software engineering (SE), the challenge is the extent to which LLMs are suitable and easy to use for different software development tasks. In this paper, we report the findings and lessons learned from using LLM-based tools-ChatGPT in particular-in five SE courses from four universities. After instructing students on the LLM potentials in SE and about prompting strategies, we ask participants to complete a survey and be involved in semi-structured interviews. The collected results report (i) indications about the usefulness of the LLM for different tasks, (ii) challenges to prompt the LLM, i.e., interact with it, (iii) challenges to adapt the generated artifacts to their own needs, and (iv) wishes about some valuable features students would like to see in LLM-based tools. Although results vary among different courses, also because of students' seniority and course goals, the perceived usefulness is greater for lowlevel phases (e.g., coding or debugging/fault localization) than for analysis and design phases. Interaction and code adaptation challenges vary among tasks and are mostly related to the need for task-specific prompts, as well as better specification of the development context.
Luciano Baresi, Andrea De Lucia, Antinisca Di Marco, Massimiliano Di Penta, Davide Di Ruscio, Leonardo Mariani, Daniela Micucci, Fabio Palomba, Maria Teresa Rossi, Fiorella Zampetti
CSEE&T5
2025 Detecting Malicious Source Code in PyPI Packages with LLMs: Does RAG Come in Handy
abstract
Malicious software packages in open-source ecosystems, such as PyPI, pose growing security risks. Unlike traditional vulnerabilities, these packages are intentionally designed to deceive users, making detection challenging due to evolving attack methods and the lack of structured datasets. In this work, we empirically evaluate the effectiveness of Large Language Models (LLMs), Retrieval-Augmented Generation (RAG), and few-shot learning for detecting malicious source code. We fine-tune LLMs on curated datasets and integrate YARA rules, GitHub Security Advisories, and malicious code snippets with the aim of enhancing classification accuracy. We came across a counterintuitive outcome: While RAG is expected to boost up the prediction performance, it fails in the performed evaluation, obtaining a mediocre accuracy. In contrast, few-shot learning is more effective as it significantly improves the detection of malicious code, achieving 97% accuracy and 95% balanced accuracy, outperforming traditional RAG approaches. Thus, future work should expand structured knowledge bases, refine retrieval models, and explore hybrid AI-driven cybersecurity solutions.
Motunrayo Osatohanmen Ibiyo, Thinakone Louangdy, Phuong T. Nguyen 0001, Claudio Di Sipio, Davide Di Ruscio
EASE5
2025 Bake Two Cakes with One Oven: RL for Defusing Popularity Bias and Cold-start in Third-Party Library Recommendations
abstract
Third-party libraries (TPLs) are an integral part of modern software development, enhancing developer productivity and accelerating time-to-market. However, identifying suitable candidates from a rapidly growing and continuously evolving collection of TPLs remains a challenging task. TPL recommender systems have been developed to address this issue. They typically rely on collaborative filtering (CF) which exploits a two-dimensional project-library matrix (user-item in general context of recommendation) when making recommendations. In fact, CF-based approaches often encounter two challenges: (i) a tendency to recommend popular items more frequently, making them even more dominant, a phenomenon known as popularity bias, and (ii) difficulty in generating recommendations for new users or items due to limited user-item interactions, commonly referred to as the cold-start problem. In this paper, we propose a reinforcement learning (RL)-based approach to address popularity bias and the cold-start problem in TPL recommendation. We conducted experiments on benchmark datasets for TPL recommendation, demonstrating that our proposed approach outperforms state-of-the-art models in cold-start scenarios while effectively mitigating the impact of popularity bias.
Vuong Hoang Minh, Anh M. T. Bui, Phuong T. Nguyen 0001, Davide Di Ruscio
EASE4
2025 Investigating the Role of LLMs Hyperparameter Tuning and Prompt Engineering to Support Domain Modeling
Vladyslav Bulhakov, Giordano d'Aloisio, Claudio Di Sipio, Antinisca Di Marco, Davide Di Ruscio
SEAA5
2025 Generate with CodeXHug: A Dataset to Enhance Model Cards with Code Usage Patterns
Stefano Palombo, Claudio Di Sipio, Juri Di Rocco, Davide Di Ruscio
SEAA (3)4
2025 Is code coverage of performance tests related to source code features? An empirical study on open-source Java systems
abstract
Abstract Performance testing aims to ensure the operational efficiency of software systems. However, many factors influencing the efficacy and adoption of performance tests in practice are not yet fully understood. For instance, while code coverage is widely regarded as a key quality metric for evaluating the efficacy of functional testing suites, there is limited knowledge about the types and levels of coverage that performance tests specifically achieve. Another important factor, often perceived as a barrier to the broader adoption of performance tests yet remaining relatively unexplored, is their extended execution time. In this paper, we examine (i) the coverage of performance testing suites, (ii) the characteristics of source code associated with performance-tested components, and (iii) the time cost of executing performance tests. Our analysis on open-source Java systems reveals that performance tests achieve significantly lower code coverage than functional tests, as expected, and it highlights a significant trade-off between coverage and execution time. Our results also indicate a lack of generalizable characteristics in the source code covered by performance tests.
Muhammad Imran 0026, Vittorio Cortellessa, Davide Di Ruscio, Riccardo Rubei, Luca Traini
Empir. Softw. Eng.3
2025 Binary and multi-class classification of Self-Admitted Technical Debt: How far can we go?
abstract
Context: Aiming for a trade-off between short-term efficiency and long-term stability, software teams resort to sub-optimal solutions, neglecting the best software development practices. Such solutions may induce technical debt (TD), triggering maintenance issues. To facilitate future fixing, developers mark code with any issues using textual comments, resulting in Self-Admitted Technical Debt (SATD). Detecting SATD in source code is crucial since it helps programmers locate potentially erroneous snippets, allowing for suitable interventions, and improving code quality. There are two main types of SATD detection, i.e., binary classification and multi-class classification , grouping TD comments into SATD/Non-SATD categories, and multiple categories, respectively. Objective: We attempt to understand to which extent state-of-the-art research has addressed the issue of detecting SATD, both binary and multi-class classification. Based on this investigation, we also propose a practical approach for the detection of SATD using Large Language Models (LLMs). Methods: First, we conducted a literature review to understand to which extent the two types of classification have been tackled by existing research. Second, we developed SALA , a dual-purpose tool on top of Natural Language Processing (NLP) techniques and neural networks to deal with both types of classification. An empirical evaluation has been performed to compare SALA with state-of-the-art baselines. Results: The literature review reveals that while binary classification has been well studied, multi-class classification has not received adequate attention. The empirical evaluation shows that SALA obtains a promising performance, and outperforms the baselines with respect to various quality metrics. Conclusion: We conclude that more effort needs to be spent to tackle multi-class classification of SATD. To this end, LLMs hold the potential, albeit with more rigorous investigation on possible fine-tuning and prompt engineering strategies.
Francesca Arcelli Fontana, Juri Di Rocco, Davide Di Ruscio, Amleto Di Salle, Phuong T. Nguyen 0001
Inf. Softw. Technol.3
2025 DeepMig: A transformer-based approach to support coupled library and code migrations
abstract
While working on software projects, developers often replace third-party libraries (TPLs) with different ones offering similar functionalities. However, choosing a suitable TPL to migrate to is a complex task. As TPLs provide developers with Application Programming Interfaces (APIs) to allow for the invocation of their functionalities after adopting a new TPL, projects need to be migrated by the methods containing the affected API calls. Altogether, the coupled migration of TPLs and code is a strenuous process, requiring massive development effort. Most of the existing approaches either deal with library or API call migration but usually fail to solve both problems coherently simultaneously. This paper presents DeepMig, a novel approach to the coupled migration of TPLs and API calls. We aim to support developers in managing their projects, at the library and API level, allowing them to increase their productivity. DeepMig is based on a transformer architecture, accepts a set of libraries to predict a new set of libraries. Then, it looks for the changed API calls and recommends a migration plan for the affected methods. We evaluate DeepMig using datasets of Java projects collected from the Maven Central Repository, ensuring an assessment based on real-world dependency configurations. Our evaluation reveals promising outcomes: DeepMig recommends both libraries and code; by several projects, it retrieves a perfect match for the recommended items, obtaining an accuracy of 1.0. Moreover, being fed with proper training data, DeepMig provides comparable code migration steps of a static API migrator, a baseline for the code migration task. We conclude that DeepMig is capable of recommending both TPL and API migration, providing developers with a practical tool to migrate the entire project. • The migration of TPLs boils down to transforming of sequence of libraries. • Code migration is equal to the transition of sequences of API invocations. • Transformers can be used for migrating TPLs and APIs. • DeepMig recommends more relevant migration when there is enough data for learning.
Juri Di Rocco, Phuong T. Nguyen 0001, Claudio Di Sipio, Riccardo Rubei, Davide Di Ruscio, Massimiliano Di Penta
Inf. Softw. Technol.5
2025 Towards early detection of algorithmic bias from dataset's bias symptoms: An empirical study
abstract
The rise of AI software has made fairness auditing essential, particularly where biased decisions have serious impacts. This entails identifying sensitive variables and calculating fairness metrics based on predictions from a baseline model. Since model training is computationally intensive, recent research focuses on early bias assessment to detect bias before extensive training starts. This paper presents an empirical study to evaluate how dataset statistics, named bias symptoms , can assist in the early identification of variables that may lead to bias in the system. The aim of this study is to avoid training a machine learning model before assessing - and, in case, mitigating - its bias, thus increasing the sustainability of the development process. We first identify a bias symptoms dataset, employing 24 datasets from diverse application domains commonly used in fairness auditing. Through extensive empirical analysis, we investigate the ability of these bias symptoms to predict variables associated with bias under three fairness definitions. Our results demonstrate that bias symptoms are effective in supporting early predictions of bias-inducing variables under specific fairness definitions. These findings offer valuable insights for practitioners and researchers, encouraging further exploration in developing methods for proactive bias mitigation involving bias symptoms.
Giordano d'Aloisio, Claudio Di Sipio, Antinisca Di Marco, Davide Di Ruscio
Inf. Softw. Technol.4
2025 ModelXGlue: a benchmarking framework for ML tools in MDE
abstract
Abstract The integration of machine learning (ML) into model-driven engineering (MDE) holds the potential to enhance the efficiency of modelers and elevate the quality of modeling tools. However, a consensus is yet to be reached on which MDE tasks can derive substantial benefits from ML and how progress in these tasks should be measured. This paper introduces ModelXGlue , a dedicated benchmarking framework to empower researchers when constructing benchmarks for evaluating the application of ML to address MDE tasks. A benchmark is built by referencing datasets and ML models provided by other researchers, and by selecting an evaluation strategy and a set of metrics. ModelXGlue is designed with automation in mind and each component operates in an isolated execution environment (via Docker containers or Python environments), which allows the execution of approaches implemented with diverse technologies like Java, Python, R, etc. We used ModelXGlue to build reference benchmarks for three distinct MDE tasks: model classification, clustering, and feature name recommendation. To build the benchmarks we integrated existing third-party approaches in ModelXGlue . This shows that ModelXGlue is able to accommodate heterogeneous ML models, MDE tasks and different technological requirements. Moreover, we have obtained, for the first time, comparable results for these tasks. Altogether, it emerges that ModelXGlue is a valuable tool for advancing the understanding and evaluation of ML tools within the context of MDE.
José Antonio Hernández López, Jesús Sánchez Cuadrado, Riccardo Rubei, Davide Di Ruscio
Softw. Syst. Model.4
2025 On the use of large language models in model-driven engineering
Juri Di Rocco, Davide Di Ruscio, Claudio Di Sipio, Phuong T. Nguyen 0001, Riccardo Rubei
Softw. Syst. Model.2
2025 On the Energy Consumption of ATL Transformations
abstract
Abstract Background Model transformations play a crucial role in Model‐Driven Engineering (MDE), with the ATLAS Transformation Language (ATL) being a powerful technology for developing model‐to‐model transformations. Methods This paper presents a comprehensive investigation into the energy consumption of ATL transformations, aiming to identify possible correlations among transformation rules, model size, and metamodel structural characteristics. We conducted experiments on 52 ATL transformations, analyzing power usage and extending our inquiry to understand the impact of mutations on both models and transformations. Results The experimental findings reveal relationships between the energy utilization of ATL transformations and the structural characteristics of metamodels. Furthermore, we establish a connection between energy consumption, model size, and the complexity of transformation processes. Conclusion The insights gained from this research lay the groundwork for devising future energy‐efficient strategies while developing model transformations.
Riccardo Rubei, Juri Di Rocco, Davide Di Ruscio
Softw. Pract. Exp.3
2025 Automation in Model-Driven Engineering: A Look Back, and Ahead
abstract
Model-Driven Engineering (MDE) provides a huge body of knowledge of automation for many different engineering tasks, especially those involving transitioning from design to implementation. With the huge progress made in AI, questions arise about the future of MDE, such as how existing MDE techniques and technologies can be improved or how other activities that currently lack dedicated support can also be automated. However, at the same time, it has to be revisited where and how models should be used to keep the engineers in the loop for creating, operating, and maintaining complex systems. To trigger dedicated research on these open points, we discuss the history of automation in MDE and present perspectives on how automation in MDE can be further improved and which obstacles have to be overcome in both the medium and long-term.
Loli Burgueño, Davide Di Ruscio, Houari Sahraoui, Manuel Wimmer
ACM Trans. Softw. Eng. Methodol.2
2024 When simplicity meets effectiveness: Detecting code comments coherence with word embeddings and LSTM
abstract
Code comments play a crucial role in software development, as they provide programmers with practical information, allowing them to understand better the intent and semantics of the underpinning code. Nevertheless, developers tend to leave comments unchanged after updating the code, resulting in a discrepancy between the two artifacts. Such a discrepancy may trigger misunderstanding and confusion among developers, impeding various activities, including code comprehension and maintenance. Thus, it is crucial to identify if, given a code snippet, its corresponding comment is coherent and reflects well the intent behind the code. Unfortunately, existing approaches to this problem, while obtaining an encouraging performance, either rely on heavily pre-trained models, or treat input data as text, neglecting the intrinsic features contained in comments and code, including word order and synonyms.
Michael Dubem Igbomezie, Phuong T. Nguyen 0001, Davide Di Ruscio
EASE3
2024 An Empirical Study on Code Coverage of Performance Testing
abstract
Performance testing aims to ensure the operational efficiency of software systems. However, many factors influencing the efficacy and adoption of performance tests in practice are not yet fully understood. For instance, while code coverage is widely regarded as a key quality metric for evaluating the efficacy of functional testing suites, there is limited knowledge about the types and levels of coverage that performance tests specifically achieve. Another important factor, often perceived as a barrier to the broader adoption of performance tests yet remaining relatively unexplored, is their extended execution time. In this paper, we analyze the performance testing suites of 28 open-source systems to study (i) the magnitude of their code coverage, and (ii) their execution time. Our analysis shows that performance tests achieve significantly lower code coverage than functional tests, as expected, and it highlights a significant trade-off between coverage and execution time. Our results also suggest, in perspective, that automated test generation methods might not ensure affordable performance testing due to the associated time cost. This finding poses new challenges in the field of performance test generation.
Muhammad Imran 0026, Vittorio Cortellessa, Davide Di Ruscio, Riccardo Rubei, Luca Traini
EASE3
2024 Automated categorization of pre-trained models in software engineering: A case study with a Hugging Face dataset
abstract
Software engineering (SE) activities have been revolutionized by the advent of pre-trained models (PTMs), defined as large machine learning (ML) models that can be fine-tuned to perform specific SE tasks. However, users with limited expertise may need help to select the appropriate model for their current task. To tackle the issue, the Hugging Face (HF) platform simplifies the use of PTMs by collecting, storing, and curating several models. Nevertheless, the platform currently lacks a comprehensive categorization of PTMs designed specifically for SE, i.e., the existing tags are more suited to generic ML categories.
Claudio Di Sipio, Riccardo Rubei, Juri Di Rocco, Davide Di Ruscio, Phuong T. Nguyen 0001
EASE4
2024 Automatic Categorization of GitHub Actions with Transformers and Few-shot Learning
abstract
In the GitHub ecosystem, workflows are used as an effective means to automate development tasks and to set up a Continuous Integration and Delivery (CI/CD pipeline). GitHub Actions (GHA) has been conceived to provide developers with a practical tool to create and maintain workflows, avoiding “reinventing the wheel” and cluttering the workflow with shell commands. Properly leveraging the power of GitHub Actions can facilitate the development processes, enhance collaboration, and significantly impact project outcomes. To expose actions to search engines, GitHub allows developers to assign them to one or more categories manually. These are used as an effective means to group actions sharing similar functionality. Nevertheless, while providing a practical way to execute workflows, many actions have unclear purposes, and sometimes they are not categorized. In this work, we bridge such a gap by conceptualizing Gavel, a practical solution to increasing the visibility of actions in GitHub. By leveraging the content of README.MD files for each action, we use Transformer to assign suitable categories to the action. We conducted an empirical investigation and compared Gavel with a state-of-the-art baseline. The results show that our approach can assign categories to GitHub actions effectively, thus outperforming the baseline.
Phuong T. Nguyen 0001, Juri Di Rocco, Claudio Di Sipio, Mudita Shakya, Davide Di Ruscio, Massimiliano Di Penta
ESEM5
2024 Good things come in three: Generating SO Post Titles with Pre-Trained Models, Self Improvement and Post Ranking
abstract
Background. Stack Overflow is a prominent Q&A forum, supporting developers in seeking suitable resources on programming-related matters. Having high-quality question titles is an effective means to attract developers’ attention. Research has been conducted, predominantly leveraging pre-trained models to generate titles from code snippets and problem descriptions. Yet, getting high-quality titles is still a challenging task, attributed to both the quality of the input data (e.g., containing noise and ambiguity) and inherent constraints in sequence generation models. Aims. In this paper, we present FILLER as a solution to generating Stack Overflow post titles using a fine-tuned language model with self-improvement and post ranking. Method. Our study focuses on enhancing pre-trained language models for generating titles for posts, employing a training and subsequent fine-tuning paradigm for these models. To this end, we integrate the model’s predictions into the training process, enabling it to learn from its errors, thereby lessening the effects of exposure bias. Moreover, we apply a post-ranking method to produce a variety of sample candidates, subsequently selecting the most suitable one. Results. The empirical findings indicate that FILLER provides high-quality recommendations. Moreover, it significantly outperforms all the baselines, including Code2Que, SOTitle, CCBERT, M3NSCT5, and GPT3.5-turbo. A user study also shows that FILLER provides more relevant titles, with respect to SOTitle and GPT3.5-turbo. Conclusion. We conclude that FILLER has the potential to be used in practice to support developers in generating suitable post titles.
Duc Anh Le, Bui Thi Mai Anh, Phuong T. Nguyen 0001, Davide Di Ruscio
ESEM4
2024 FRINGE: context-aware FaiRness engineerING in complex software systEms
abstract
Machine learning (ML) is essential in modern technology, driving complex data-driven decisions. By 2025, daily data generation will exceed 463 exabytes, increasing ML’s influence and ethical risks of data exploitation and discrimination. The European Union’s Artificial Intelligence Act highlights the need for ethical AI solutions.
Fabio Palomba, Andrea Di Sorbo, Davide Di Ruscio, Filomena Ferrucci, Gemma Catolino, Giammaria Giordano, Dario Di Dario, Gianmario Voria, Viviana Pentangelo, Maria Tortorella, Arnaldo Sgueglia, Claudio Di Sipio, Giordano d'Aloisio, Antinisca Di Marco
ESEM3
2024 CodeLL: A Lifelong Learning Dataset to Support the Co-Evolution of Data and Language Models of Code
abstract
Motivated by recent work on lifelong learning applications for language models (LMs) of code, we introduce CodeLL, a lifelong learning dataset focused on code changes. Our contribution addresses a notable research gap marked by the absence of a long-term temporal dimension in existing code change datasets, limiting their suitability in lifelong learning scenarios. In contrast, our dataset aims to comprehensively capture code changes across the entire release history of open-source software repositories. In this work, we introduce an initial version of CodeLL, comprising 71 machine-learning-based projects mined from Software Heritage. This dataset enables the extraction and in-depth analysis of code changes spanning 2,483 releases at both the method and API levels. CodeLL enables researchers studying the behaviour of LMs in lifelong fine-tuning settings for learning code changes. Additionally, the dataset can help studying data distribution shifts within software repositories and the evolution of API usages over time.
Martin Weyssow, Claudio Di Sipio, Davide Di Ruscio, Houari Sahraoui
MSR3
2024 Leveraging privacy profiles to empower users in the digital society
abstract
Abstract Protecting privacy and ethics of citizens is among the core concerns raised by an increasingly digital society. Profiling users is common practice for software applications triggering the need for users, also enforced by laws, to manage privacy settings properly. Users need to properly manage these settings to protect personally identifiable information and express personal ethical preferences. This has shown to be very difficult for several concurrent reasons. However, profiling technologies can also empower users in their interaction with the digital world by reflecting personal ethical preferences and allowing for automatizing/assisting users in privacy settings. In this way, if properly reflecting users’ preferences, privacy profiling can become a key enabler for a trustworthy digital society. We focus on characterizing/collecting users’ privacy preferences and contribute a step in this direction through an empirical study on an existing dataset collected from the fitness domain. We aim to understand which set of questions is more appropriate to differentiate users according to their privacy preferences. The results reveal that a compact set of semantic-driven questions (about domain-independent privacy preferences) helps distinguish users better than a complex domain-dependent one. Based on the outcome, we implement a recommender system to provide users with suitable recommendations related to privacy choices. We then show that the proposed recommender system provides relevant settings to users, obtaining high accuracy.
Davide Di Ruscio, Paola Inverardi, Patrizio Migliarini, Phuong T. Nguyen 0001
Autom. Softw. Eng.1
2024 Multi-objective model transformation chain exploration with MOMoT
abstract
The increasing complexity of modern systems leads to an increasing amount of artifacts that are used along the model-based software and systems development lifecycle. This also includes model transformations, which serve for mapping models between representations, e.g., for verification and validation purposes. Model repositories manage this variety of artifacts and promote reusability, but should also enable the bundling of compatible artifacts. Therefore, model transformations should be reused and arranged into transformation chains to support more complex transformation scenarios. The resulting transformation should correspond to the user’s interest in terms of quality criteria such as model coverage, transformation coverage, and number of transformation steps, thus assembling such chains becomes a multi-objective problem. A novel multi-objective approach for exploring possible transformation chains residing in model repositories is presented. MOMoT, a model-driven optimization framework, is leveraged to explore the transformation space spanned by the repository. For demonstration, three differently populated repositories are considered. We have extended MOMoT with an exhaustive, multi-objective search that explores the entire model transformation space defined by graph transformation rules, allowing all possible transformation chains to be considered as solution. Accordingly, the optimal solutions were identified in the demonstration cases with negligible computation time. The approach assists modelers when there are multiple chains for transforming an input model to a specified output model to consider. Our evaluation shows that the approach elicits all legitimate transformation chains, thus enabling the modelers to consider trade-offs in view of multiple criteria selection.
Martin Eisenberg, Apurvanand Sahay, Davide Di Ruscio, Ludovico Iovino, Manuel Wimmer, Alfonso Pierantonio
Inf. Softw. Technol.3
2024 GPTSniffer: A CodeBERT-based classifier to detect source code written by ChatGPT
abstract
Since its launch in November 2022, ChatGPT has gained popularity among users, especially programmers who use it to solve development issues. However, while offering a practical solution to programming problems, ChatGPT should be used primarily as a supporting tool (e.g., in software education) rather than as a replacement for humans. Thus, detecting automatically generated source code by ChatGPT is necessary, and tools for identifying AI-generated content need to be adapted to work effectively with code. This paper presents GPTSniffer– a novel approach to the detection of source code written by AI–built on top of CodeBERT. We conducted an empirical study to investigate the feasibility of automated identification of AI-generated code, and the factors that influence this ability. The results show that GPTSniffer can accurately classify whether code is human-written or AI-generated, outperforming two baselines, GPTZero and OpenAI Text Classifier. Also, the study shows how similar training data or a classification context with paired snippets helps boost the prediction. We conclude that GPTSniffer can be leveraged in different contexts, e.g., in software engineering education, where teachers use the tool to detect cheating and plagiarism, or in development, where AI-generated code may require peculiar quality assurance activities.
Phuong T. Nguyen 0001, Juri Di Rocco, Claudio Di Sipio, Riccardo Rubei, Davide Di Ruscio, Massimiliano Di Penta
J. Syst. Softw.5
2024 Preface for the Special Issue on Tools and Demonstrations in Model-Driven Engineering
Davide Di Ruscio, Jessie Galasso, Richard F. Paige
Sci. Comput. Program.1
2024 AMINO: A quality assessment framework for modeling ecosystems
abstract
Summary Models are core assets in Model‐Driven Engineering (MDE). They are pervasively used throughout software development processes to leverage automation, increase cost‐effectiveness, and enhance quality factors. Model repositories have been successfully proposed to enforce reuse and elicit correlations among modeling artifacts, enabling storing operations on model‐based artifacts and collaborative modeling features. Maintaining and improving the quality of modeling artifacts is mandatory for software quality scale‐ups. Limiting the exploration of datasets and repositories of models to individual artifacts might reduce the ability to capture insights and reuse opportunities. This paper proposes AMINO, an analytics tool for model repositories supporting the discovery and quality evaluation of modeling ecosystems.
Davide Di Ruscio, Ludovico Iovino, Alfonso Pierantonio
J. Softw. Evol. Process.1
2024 Advanced discovery mechanisms in model repositories
abstract
Summary As model‐driven engineering gains traction and poses as the new paradigm for software engineering, it raises a need for efficient approaches and tools to manage, discover, and retrieve relevant modeling artifacts. Hence, industry and academia are conceiving effective ways to store, search, and retrieve heterogeneous model artifacts that employ advanced discovery mechanisms. This paper presents MDEForge‐Search, a novel approach to discovering heterogeneous model artifacts over MDEForge, a distributed cloud‐based model repository. We designed advanced discovery mechanisms that retrieve heterogeneous artifacts within their context (megamodel) and reuse them across model management services. In addition, a domain‐specific approach has been proposed to formulate queries in terms of keywords, search tags, conditional operators, quality model assessment services and a transformation chain discoverer. Finally, the applicability of our approach was assessed in a recommender system modeling framework, which, thanks to the operated integration, can rely on the availability of more than 5000 model artifacts currently persisted in our cloud‐based model repository.
Arsene Indamutsa, Juri Di Rocco, Lissette Almonte, Davide Di Ruscio, Alfonso Pierantonio
Softw. Pract. Exp.4
2023 Too long; didn't read: Automatic summarization of GitHub README.MD with Transformers
abstract
The ability to allow developers to share their source code and collaborate on software projects has made GitHub a widely used open source platform. Each repository in GitHub is generally equipped with a README.MD file to exhibit an overview of the main functionalities. Nevertheless, while offering useful information, README.MD is usually lengthy, requiring time and effort to read and comprehend. Thus, besides README.MD, GitHub also allows its users to add a short description called “About,” giving a brief but informative summary about the repository. This enables visitors to quickly grasp the main content and decide whether to continue reading. Unfortunately, due to various reasons–not excluding laziness–oftentimes this field is left blank by developers.
Thu Thu Ha Doan, Phuong T. Nguyen 0001, Juri Di Rocco, Davide Di Ruscio
EASE4
2023 Dealing with Popularity Bias in Recommender Systems for Third-party Libraries: How far Are We?
abstract
Recommender systems for software engineering (RSSEs) assist software engineers in dealing with a growing information overload when discerning alternative development solutions. While RSSEs are becoming more and more effective in suggesting handy recommendations, they tend to suffer from popularity bias, i.e., favoring items that are relevant mainly because several developers are using them. While this rewards artifacts that are likely more reliable and well-documented, it would also mean that missing artifacts are rarely used because they are very specific or more recent. This paper studies popularity bias in Third-Party Library (TPL) RSSEs. First, we investigate whether state-of-the-art research in RSSEs has already tackled the issue of popularity bias. Then, we quantitatively assess four existing TPL RSSEs, exploring their capability to deal with the recommendation of popular items. Finally, we propose a mechanism to defuse popularity bias in the recommendation list. The empirical study reveals that the issue of dealing with popularity in TPL RSSEs has not received adequate attention from the software engineering community. Among the surveyed work, only one starts investigating the issue, albeit getting a low prediction performance.
Phuong T. Nguyen 0001, Riccardo Rubei, Juri Di Rocco, Claudio Di Sipio, Davide Di Ruscio, Massimiliano Di Penta
MSR5
2023 HybridRec: A recommender system for tagging GitHub repositories
abstract
Abstract Software repositories are increasingly essential to support the management of typical artifacts building up projects, including source code, documentation, and bug reports. GitHub is at the forefront of this kind of platforms, providing developer with a reservoir of code contained in more than 28M repositories. To help developers find the right artifacts, GitHub uses topics, which are short texts assigned to the stored artifacts. However, assigning inappropriate topics to a repository might hamper its popularity and reachability. In our previous work, we implemented MNBN and TopFilter to recommend GitHub topics. MNBN exploits a stochastic network to predict topics, while TopFilter relies on a syntactic-based function to recommend topics. In this paper, we extend our work by building HybridRec, a recommender system based on stochastic and collaborative-filtering techniques to generate more relevant topics. To deal with unbalanced datasets, we employ a Complement Naïve Bayesian Network (CNBN). Furthermore, we apply a preprocessing phase to clean and refine the input data before feeding the recommendation engine. An empirical evaluation demonstrates that HybridRec outperforms three state-of-the-art baselines, obtaining a better performance with respect to various metrics. We conclude that the conceived framework can be used to help developers increase their projects’ visibility.
Juri Di Rocco, Davide Di Ruscio, Claudio Di Sipio, Phuong T. Nguyen 0001, Riccardo Rubei
Appl. Intell.2
2023 Fitting missing API puzzles with machine translation techniques
Phuong T. Nguyen 0001, Claudio Di Sipio, Juri Di Rocco, Davide Di Ruscio, Massimiliano Di Penta
Expert Syst. Appl.4
2023 A modeling assistant to manage technical debt in coupled evolution
Davide Di Ruscio, Amleto Di Salle, Ludovico Iovino, Alfonso Pierantonio
Inf. Softw. Technol.1
2023 MemoRec: a recommender system for assisting modelers in specifying metamodels
abstract
Abstract Model-driven engineering has been widely applied in software development, aiming to facilitate the coordination among various stakeholders. Such a methodology allows for a more efficient and effective development process. Nevertheless, modeling is a strenuous activity that requires proper knowledge of components, attributes, and logic to reach the level of abstraction required by the application domain. In particular, metamodels play an important role in several paradigms, and specifying wrong entities or attributes in metamodels can negatively impact on the quality of the produced artifacts as well as other elements of the whole process. During the metamodeling phase, modelers can benefit from assistance to avoid mistakes, e.g., getting recommendations like metaclasses and structural features relevant to the metamodel being defined. However, suitable machinery is needed to mine data from repositories of existing modeling artifacts and compute recommendations. In this work, we propose MemoRec, a novel approach that makes use of a collaborative filtering strategy to recommend valuable entities related to the metamodel under construction. Our approach can provide suggestions related to both metaclasses and structured features that should be added in the metamodel under definition. We assess the quality of the work with respect to different metrics, i.e., success rate, precision, and recall. The results demonstrate that MemoRec is capable of suggesting relevant items given a partial metamodel and supporting modelers in their task.
Juri Di Rocco, Davide Di Ruscio, Claudio Di Sipio, Phuong T. Nguyen 0001, Alfonso Pierantonio
Softw. Syst. Model.2
2023 MORGAN: a modeling recommender system based on graph kernel
abstract
Abstract Model-driven engineering (MDE) is an effective means of synchronizing among stakeholders, thereby being a crucial part of the software development life cycle. In recent years, MDE has been on the rise, triggering the need for automatic modeling assistants to support metamodelers during their daily activities. Among others, it is crucial to enable model designers to choose suitable components while working on new (meta)models. In our previous work, we proposed MORGAN, a graph kernel-based recommender system to assist developers in completing models and metamodels. To provide input for the recommendation engine, we convert training data into a graph-based format, making use of various natural language processing (NLP) techniques. The extracted graphs are then fed as input for a recommendation engine based on graph kernel similarity, which performs predictions to provide modelers with relevant recommendations to complete the partially specified (meta)models. In this paper, we extend the proposed tool in different dimensions, resulting in a more advanced recommender system. Firstly, we equip it with the ability to support recommendations for JSON schema that provides a model representation of data handling operations. Secondly, we introduce additional preprocessing steps and a kernel similarity function based on item frequency, aiming to enhance the capabilities, providing more precise recommendations. Thirdly, we study the proposed enhancements, conducting a well-structured evaluation by considering three real-world datasets. Although the increasing size of the training data negatively affects the computation time, the experimental results demonstrate that the newly introduced mechanisms allow MORGAN to improve its recommendations compared to its preceding version.
Claudio Di Sipio, Juri Di Rocco, Davide Di Ruscio, Phuong T. Nguyen 0001
Softw. Syst. Model.3
2023 Analyzing business process management capabilities of low-code development platforms
abstract
Abstract Low‐code development platforms (LCDPs) aim to simplify software systems' development by providing easy‐to‐use graphical interfaces and drag‐and‐drop facilities. The system behaviors are defined through available data handling and workflow mechanisms enabling the specification of business processes from users that do not have strong programming skills. However, the number of LCDPs has grown significantly over the last few years. Consequently, it is not easy for inexpert users to understand their differences, especially in terms of provided modeling constructs. In this article, we analyze and compare eight low‐code development platforms by focusing on their capabilities for specifying business processes. The analysis exploits business process modeling and notation (BPMN) as a reference modeling language. Thus, the core elements of BPMN are leveraged to analyze the workflow mechanisms provided by each of the analyzed LCDP. The article explains different types of process flows and data handling means of the different LCDPs aiming to give potential users objective elements that can be used to make educated decisions when selecting LCDPs.
Apurvanand Sahay, Davide Di Ruscio, Ludovico Iovino, Alfonso Pierantonio
Softw. Pract. Exp.2
2023 GitRanking: A ranking of GitHub topics for software classification using active sampling
abstract
Abstract Context GitHub is the world's most prominent host of source code, with more than 327M repositories. However, most of these repositories are not labelled or inadequately, making it harder for users to find relevant projects. Various proposals for software application domain classification over the past years have been proposed. However, these several of those approaches suffer from multiple issues, called antipatterns of software classification, that reduce their usability. Objective In this paper, we propose a new taxonomy in the GitHub ecosystem, called GitRanking, starting from a well‐structured data set, composed of curated repositories annotated with topics. The main objective is to create a baseline methodology for software classification that is expandable, hierarchical, grounded in a knowledge base, and free of antipatterns. Method We collected 121K topics from GitHub and used GitRanking to create a taxonomy of 301 ranked application domains. GitRanking (1) uses active sampling to ensure a minimal number of annotations to create the ranking; and (2) links each topic to Wikidata, reducing ambiguities and improving the reusability of the taxonomy. Furthermore, we adopt the conceived taxonomy in a classification task by considering a state‐of‐the‐art classifier. Results Our results show that GitRanking can effectively rank terms in a hierarchy according to how general or specific their meaning is. Furthermore, we show that GitRanking is a dynamically extensible method: it can currently accept further terms to be ranked, and with a minimum number of annotations (). Concerning the classification task, we show that the model achieves an F1‐score of 34%, with a precision of 54%. Conclusion This paper is the first collective attempt at building a ground‐up taxonomy of software domains. Our vision is that our taxonomy, and its extensibility, can be used to better and more precisely label software projects.
Cezar Sas, Andrea Capiluppi, Claudio Di Sipio, Juri Di Rocco, Davide Di Ruscio
Softw. Pract. Exp.5
2022 PILOT: synergy between text processing and neural networks to detect self-admitted technical debt
abstract
During the development phase, software programmers usually introduce code that contains issues intentionally left for additional treatment. To allow for future fixing, they mark such code using textual comments, resulting in Self-Admitted Technical Debt (SATD). Detecting SATD contained in source code has become crucial in the development cycle since it helps programmers locate issues that need to be solved, thus improving code quality. We introduce PILOT, a technical debt detector built on top of a combination of different natural language processing (NLP) and machine learning (ML) techniques. First, the semantic among SATD comments is captured using feature extraction steps. Then, neural network algorithms are applied to classify comments, represented as vectors. We built a PILOT prototype with a feed-forward neural network and evaluated it using real-world datasets as proof of concept. The empirical evaluation shows that PILOT obtains an encouraging performance and outperforms a well-established baseline. We anticipate that our tool will come in handy, as once being embedded in the IDE, it can help developers recognize SATD manifested in their code, allowing them to conveniently identify and fix issues.
Amleto Di Salle, Alessandra Rota, Phuong T. Nguyen 0001, Davide Di Ruscio, Francesca Arcelli Fontana, Irene Sala
TechDebt@ICSE4
2022 Machine learning methods for model classification: a comparative study
abstract
In the quest to reuse modeling artifacts, academics and industry have proposed several model repositories over the last decade. Different storage and indexing techniques have been conceived to facilitate searching capabilities to help users find reusable artifacts that might fit the situation at hand. In this respect, machine learning (ML) techniques have been proposed to categorize and group large sets of modeling artifacts automatically. This paper reports the results of a comparative study of different ML classification techniques employed to automatically label models stored in model repositories. We have built a framework to systematically compare different ML models (feed-forward neural networks, graph neural networks, k-nearest neighbors, support version machines, etc.) with varying model encodings (TF-IDF, word embeddings, graphs and paths). We apply this framework to two datasets of about 5,000 Ecore and 5,000 UML models. We show that specific ML models and encodings perform better than others depending on the characteristics of the available datasets (e.g., the presence of duplicates) and on the goals to be achieved.
José Antonio Hernández López, Riccardo Rubei, Jesús Sánchez Cuadrado, Davide Di Ruscio
MoDELS4
2022 Finding with NEMO: a recommender system to forecast the next modeling operations
abstract
Nowadays, while modeling environments provide users with facilities to specify different kinds of artifacts, e.g., metamodels, models, and transformations, the possibility of learning from previous modeling experiences and being assisted during modeling tasks remains largely unexplored. In this paper, we propose NEMO, a recommender system based on an Encoder-Decoder neural network to assist modelers in performing model editing operations. NEMO learns from past modeling activities and performs predictions employing a deep learning technique. Such an algorithm has been successfully applied in machine translation to convert a text from a language to another foreign language and vice versa. An empirical evaluation on a dataset of BPMN change-based persistent model demonstrates that the technique permits learning from existing operations and effectively predicting the next editing operations with considerably high prediction accuracy. In particular, NEMO gets 0.977 as precision/recall and 0.992 as success rate score by the best performance.
Juri Di Rocco, Claudio Di Sipio, Phuong T. Nguyen 0001, Davide Di Ruscio, Alfonso Pierantonio
MoDELS4
2022 Assessing the Quality of Low-Code and Model-Driven Engineering Platforms for Engineering IoT Systems
abstract
Over the last few years, industry and academia have proposed several Low-Code and Model-driven Engineering (MDE) platforms to ease the engineering process of the Internet of things (IoT) systems. However, deciding whether such engineering platforms meet the minimum required software quality standards is not straightforward. Software quality can be defined as the degree to which a software system achieves its intended goal. Various software quality standards have been established to aid in the software quality assessment process; however, due to the nature of engineering IoT platforms, such models may not entirely suit the IoT domain. This paper presents a model for assessing the software quality of Low-Code and MDE platforms for engineering IoT platforms. The proposed software quality model is based on and extends the ISO/IEC 25010:2011 software product quality model standard. It is intended to assist IoT practitioners in assessing and establishing quality requirements for engineering IoT platforms. To determine the effectiveness of the proposed model, we used it to evaluate the quality of 17 IoT engineering platforms, and the results obtained are promising.
Felicien Ihirwe, Davide Di Ruscio, Simone Gianfranceschi, Alfonso Pierantonio
QRS2
2022 Endowing third-party libraries recommender systems with explicit user feedback mechanisms
abstract
During their daily routine, developers often deal with a plethora of resources, attempting to search for relevant artifacts that can be added to the project under development. This kind of information overload may render developers overwhelmed, thus undermining their productivity and efficiency. Recommender systems are an effective means of easing such a burden, providing relevant items for the current programming contexts, e.g., third-party libraries (TPLs), API calls, or code snippets. By focusing on TPLs, there has been no work to allow for the integration of tailored feedback mechanisms with which users can conveniently accept or discard libraries. In this paper, we propose an approach to handle explicit user feedback, including positive, negative, and additive. Thus, further than accepting or discarding the recommended TPLs, users can also endorse libraries that, in their opinion, are relevant for the current context, even though they are not included in the provided recommendations. As a proof of concept, we demonstrate how user feedback generated by the proposed mechanism can change the outcome of a real TPLs recommender system. The results show that our proposed approach helps the considered system retrieve relevant items, under different configurations.
Riccardo Rubei, Claudio Di Sipio, Juri Di Rocco, Davide Di Ruscio, Phuong T. Nguyen 0001
SANER4
2022 Providing upgrade plans for third-party libraries: a recommender system using migration graphs
Riccardo Rubei, Davide Di Ruscio, Claudio Di Sipio, Juri Di Rocco, Phuong T. Nguyen 0001
Appl. Intell.2
2022 DeepLib: Machine translation techniques to recommend upgrades for third-party libraries
Phuong T. Nguyen 0001, Juri Di Rocco, Riccardo Rubei, Claudio Di Sipio, Davide Di Ruscio
Expert Syst. Appl.5
2022 An executable metamodel refactoring catalog
abstract
Abstract Like any software artifacts, metamodels are evolving entities that constantly change over time for different reasons. Changing metamodels by keeping them consistent with other existing artifacts is an error-prone and tedious activity without the availability of automated support. In this paper, we foster the adoption of metamodel refactorings collected in a curated catalog. The Edelta framework is proposed as an operative environment to provide modelers with constructs for specifying basic refactorings and evolution operators, to define a complete metamodel refactoring catalog. The proposed environment has been used to implement the metamodel refactorings available in the literature and make them executable. A detailed discussion on how modelers can use and contribute to the definition of the catalog is also given.
Lorenzo Bettini, Davide Di Ruscio, Ludovico Iovino, Alfonso Pierantonio
Softw. Syst. Model.2
2022 Editorial to theme section on modeling in low-code development platforms
Davide Di Ruscio, Esther Guerra, Massimo Tisi
Softw. Syst. Model.1
2022 Low-code development and model-driven engineering: Two sides of the same coin?
abstract
Abstract The last few years have witnessed a significant growth of so-called low-code development platforms (LCDPs) both in gaining traction on the market and attracting interest from academia. LCDPs are advertised as visual development platforms, typically running on the cloud, reducing the need for manual coding and also targeting non-professional programmers. Since LCDPs share many of the goals and features of model-driven engineering approaches, it is a common point of debate whether low-code is just a new buzzword for model-driven technologies, or whether the two terms refer to genuinely distinct approaches. To contribute to this discussion, in this expert-voice paper, we compare and contrast low-code and model-driven approaches, identifying their differences and commonalities, analysing their strong and weak points, and proposing directions for cross-pollination.
Davide Di Ruscio, Dimitrios S. Kolovos, Juan de Lara, Alfonso Pierantonio, Massimo Tisi, Manuel Wimmer
Softw. Syst. Model.1
2022 Correction to: Low-code development and model-driven engineering: Two sides of the same coin?
abstract
3 states that "Codebots [7] uses UML to specify domain models that are consumed to automatically generate target artefacts, including complete REST APIs, client libraries, Swagger API documentation, and a JSON Schema definition for each domain object."
Davide Di Ruscio, Dimitrios S. Kolovos, Juan de Lara, Alfonso Pierantonio, Massimo Tisi, Manuel Wimmer
Softw. Syst. Model.1
2022 Supporting safe metamodel evolution with edelta
abstract
Abstract Metamodels play a crucial role in any model-based application. They underpin the definition of models and tools, and the development of model management operations, including model transformations and analysis. Like any software artifacts, metamodels are subject to evolution to improve their quality or implement unforeseen requirements. Metamodels can be defined in terms of existing ones to increase the separation of concerns and foster reuse. However, the induced coupling can give additional evolution complexity, and dedicated support is needed to avoid breaking metamodels defined in terms of those being changed. This paper presents a tool-supported approach that can automatically analyze the available metamodels and alert modelers in case of change operations that can give place to invalid situations like dangling references. The approach has been implemented in the Edelta development environment and successfully applied to metamodels retrieved from a publicly available Ecore models dataset.
Lorenzo Bettini, Davide Di Ruscio, Ludovico Iovino, Alfonso Pierantonio
Int. J. Softw. Tools Technol. Transf.2
2022 Recommending API Function Calls and Code Snippets to Support Software Development
abstract
Software development activity has reached a high degree of complexity, guided by the heterogeneity of the components, data sources, and tasks. The proliferation of open-source software (OSS) repositories has stressed the need to reuse available software artifacts efficiently. To this aim, it is necessary to explore approaches to mine data from software repositories and leverage it to produce helpful recommendations. We designed and implemented FOCUS as a novel approach to provide developers with API calls and source code while they are programming. The system works on the basis of a context-aware collaborative filtering technique to extract API usages from OSS projects. In this work, we show the suitability of FOCUS for Android programming by evaluating it on a dataset of 2,600 mobile apps. The empirical evaluation results show that our approach outperforms two state-of-the-art API recommenders, UP-Miner and PAM, in terms of prediction accuracy. We also point out that there is no significant relationship between the categories for apps defined in Google Play and their API usages. Finally, we show that participants of a user study positively perceive the API and source code recommended by FOCUS as relevant to the current development context.
Phuong T. Nguyen 0001, Juri Di Rocco, Claudio Di Sipio, Davide Di Ruscio, Massimiliano Di Penta
IEEE Trans. Software Eng.4
2021 Adversarial Machine Learning: On the Resilience of Third-party Library Recommender Systems
abstract
In recent years, we have witnessed a dramatic increase in the application of Machine Learning algorithms in several domains, including the development of recommender systems for software engineering (RSSE). While researchers focused on the underpinning ML techniques to improve recommendation accuracy, little attention has been paid to make such systems robust and resilient to malicious data. By manipulating the algorithms’ training set, i.e., large open-source software (OSS) repositories, it would be possible to make recommender systems vulnerable to adversarial attacks. This paper presents an initial investigation of adversarial machine learning and its possible implications on RSSE. As a proof-of-concept, we show the extent to which the presence of manipulated data can have a negative impact on the outcomes of two state-of-the-art recommender systems which suggest third-party libraries to developers. Our work aims at raising awareness of adversarial techniques and their effects on the Software Engineering community. We also propose equipping recommender systems with the capability to learn to dodge adversarial activities.
Phuong T. Nguyen 0001, Davide Di Ruscio, Juri Di Rocco, Claudio Di Sipio, Massimiliano Di Penta
EASE2
2021 Automated quality assessment of interrelated modeling artifacts
abstract
Over the last decade, several repositories have been proposed by the Model-Driven Engineering (MDE) community to enable the reuse of modeling artifacts and foster empirical studies to analyze specifications and tools made available by MDE researchers and practitioners. In this respect, different approaches have been proposed to measure the quality of, e.g., models, metamodels, and transformations, with respect to characteristics defined by quality models. However, when a modeling ecosystem is available, measuring the constituting artifacts singularly might not be enough. This paper proposes a quality assessment approach, which considers the relationships among the artifacts under analysis as part of the quality measurement process. For instance, to assess the quality of model transformations, further than measuring their structural characteristics, users might be interested in quality aspects like coverage and information loss related to the depending metamodels and the way models are consumed by transformations, respectively. The proposed approach is based on weaving models, which permit to link quality definitions of different kinds of artifacts, and it can generate Epsilon Object Language (EOL) programs by means of a model-to-code transformation to perform the specified quality assessment process.
Francesco Basciani, Davide Di Ruscio, Ludovico Iovino, Alfonso Pierantonio
SEAA2
2021 Adversarial Attacks to API Recommender Systems: Time to Wake Up and Smell the Coffeeƒ
abstract
Recommender systems in software engineering provide developers with a wide range of valuable items to help them complete their tasks. Among others, API recommender systems have gained momentum in recent years as they became more successful at suggesting API calls or code snippets. While these systems have proven to be effective in terms of prediction accuracy, there has been less attention for what concerns such recommenders’ resilience against adversarial attempts. In fact, by crafting the recommenders’ learning material, e.g., data from large open-source software (OSS) repositories, hostile users may succeed in injecting malicious data, putting at risk the software clients adopting API recommender systems. In this paper, we present an empirical investigation of adversarial machine learning techniques and their possible influence on recommender systems. The evaluation performed on three state-of-the-art API recommender systems reveals a worrying outcome: all of them are not immune to malicious data. The obtained result triggers the need for effective countermeasures to protect recommender systems against hostile attacks disguised in training data.
Phuong T. Nguyen 0001, Claudio Di Sipio, Juri Di Rocco, Massimiliano Di Penta, Davide Di Ruscio
ASE5
2021 A GNN-based Recommender System to Assist the Specification of Metamodels and Models
abstract
Nowadays, while modeling environments provide users with facilities to specify different kinds of artifacts, e.g., metamodels, models, and transformations, the possibility of learning from previous modeling experiences and being assisted during modeling tasks remains largely unexplored. In this paper, we propose MORGAN, a recommender system based on a graph neural network (GNN) to assist modelers in performing the specification of metamodels and models. The (meta)model being specified, and the training data are encoded in a graph-based format by exploiting natural language processing (NLP) techniques. Afterward, a graph kernel function uses the extracted graphs to provide modelers with relevant recommendations to complete the partially specified (meta)models. We evaluated MORGAN on real-world datasets using various quality metrics, i.e., precision, recall, and F-measure. The experimental results are encouraging and demonstrate the feasibility of our tool to support modelers while specifying metamodels and models.
Juri Di Rocco, Claudio Di Sipio, Davide Di Ruscio, Phuong T. Nguyen 0001
MoDELS3
2021 A Low-Code Tool Supporting the Development of Recommender Systems
abstract
The design of recommender systems (RSs) to support software development encompasses the fulfillment of different steps, including data preprocessing, choice of the most appropriate algorithms, item delivery. Though RSs can alleviate the curse of information overload, existing approaches resemble black-box systems, in which the end-user is not expected to fine-tune or personalize the overall process.
Claudio Di Sipio, Juri Di Rocco, Davide Di Ruscio, Phuong T. Nguyen 0001
RecSys3
2021 Development of recommendation systems for software engineering: the CROSSMINER experience
abstract
Abstract To perform their daily tasks, developers intensively make use of existing resources by consulting open source software (OSS) repositories. Such platforms contain rich data sources, e.g., code snippets, documentations, and user discussions, that can be useful for supporting development activities. Over the last decades, several techniques and tools have been promoted to provide developers with innovative features, aiming to bring in improvements in terms of development effort, cost savings, and productivity. In the context of the EU H2020 CROSSMINER project, a set of recommendation systems has been conceived to assist software programmers in different phases of the development process. The systems provide developers with various artifacts, such as third-party libraries, documentation about how to use the APIs being adopted, or relevant API function calls. To develop such recommendations, various technical choices have been made to overcome issues related to several aspects including the lack of baselines, limited data availability, decisions about the performance measures, and evaluation approaches. This paper is an experience report to present the knowledge pertinent to the set of recommendation systems developed through the CROSSMINER project. We explain in detail the challenges we had to deal with, together with the related lessons learned when developing and evaluating these systems. Our aim is to provide the research community with concrete takeaway messages that are expected to be useful for those who want to develop or customize their own recommendation systems. The reported experiences can facilitate interesting discussions and research work, which in the end contribute to the advancement of recommendation systems applied to solve different issues in Software Engineering.
Juri Di Rocco, Davide Di Ruscio, Claudio Di Sipio, Phuong T. Nguyen 0001, Riccardo Rubei
Empir. Softw. Eng.2
2021 Convolutional neural networks for enhanced classification mechanisms of metamodels
Phuong T. Nguyen 0001, Davide Di Ruscio, Alfonso Pierantonio, Juri Di Rocco, Ludovico Iovino
J. Syst. Softw.2
2021 Evaluation of a machine learning classifier for metamodels
abstract
Abstract Modeling is a ubiquitous activity in the process of software development. In recent years, such an activity has reached a high degree of intricacy, guided by the heterogeneity of the components, data sources, and tasks. The democratized use of models has led to the necessity for suitable machinery for mining modeling repositories. Among others, the classification of metamodels into independent categories facilitates personalized searches by boosting the visibility of metamodels. Nevertheless, the manual classification of metamodels is not only a tedious but also an error-prone task. According to our observation, misclassification is the norm which leads to a reduction in reachability as well as reusability of metamodels. Handling such complexity requires suitable tooling to leverage raw data into practical knowledge that can help modelers with their daily tasks. In our previous work, we proposed AURORA as a machine learning classifier for metamodel repositories. In this paper, we present a thorough evaluation of the system by taking into consideration different settings as well as evaluation metrics. More importantly, we improve the original AURORA tool by changing its internal design. Experimental results demonstrate that the proposed amendment is beneficial to the classification of metamodels. We also compared our approach with two baseline algorithms, namely gradient boosted decision tree and support vector machines. Eventually, we see that AURORA outperforms the baselines with respect to various quality metrics.
Phuong T. Nguyen 0001, Juri Di Rocco, Ludovico Iovino, Davide Di Ruscio, Alfonso Pierantonio
Softw. Syst. Model.4
2021 Correction to: Evaluation of a machine learning classifier for metamodels
Phuong T. Nguyen 0001, Juri Di Rocco, Ludovico Iovino, Davide Di Ruscio, Alfonso Pierantonio
Softw. Syst. Model.4
2020 A Multinomial Naïve Bayesian (MNB) Network to Automatically Recommend Topics for GitHub Repositories
abstract
GitHub has become a precious service for storing and managing software source code. Over the last year, 10M new developers have joined the GitHub community, contributing to more than 44M repositories. In order to help developers increase the reachability of their repositories, in 2017 GitHub introduced the possibility to classify them by means of topics. However, assigning wrong topics to a given repository can compromise the possibility of helping other developers approach it, and thus preventing them from contributing to its development.
Claudio Di Sipio, Riccardo Rubei, Davide Di Ruscio, Phuong T. Nguyen 0001
EASE3
2020 TopFilter: An Approach to Recommend Relevant GitHub Topics
abstract
Background: In the context of software development, GitHub has been at the forefront of platforms to store, analyze and maintain a large number of software repositories. Topics have been introduced by GitHub as an effective method to annotate stored repositories. However, labeling GitHub repositories should be carefully conducted to avoid adverse effects on project popularity and reachability. Aims: We present TopFilter, a novel approach to assist open source software developers in selecting suitable topics for GitHub repositories being created. Method: We built a project-topic matrix and applied a syntactic-based similarity function to recommend missing topics by representing repositories and related topics in a graph. The ten-fold cross-validation methodology has been used to assess the performance of TopFilter by considering different metrics, i.e., success rate, precision, recall, and catalog coverage. Result: The results show that TopFilter recommends good topics depending on different factors, i.e., collaborative filtering settings, considered datasets, and pre-processing activities. Moreover, TopFilter can be combined with a state-of-the-art topic recommender system (i.e., MNB network) to improve the overall prediction performance. Conclusion: Our results confirm that collaborative filtering techniques can successfully be used to provide relevant topics for GitHub repositories. Moreover, TopFilter can gain a significant boost in prediction performances by employing the outcomes obtained by the MNB network as its initial set of topics.
Juri Di Rocco, Davide Di Ruscio, Claudio Di Sipio, Phuong T. Nguyen 0001, Riccardo Rubei
ESEM2
2020 Supporting the understanding and comparison of low-code development platforms
abstract
Low-code development platforms (LCDPs) are easy to use visual environments that are being increasingly introduced and promoted by major IT players to permit citizen developers to build their software systems even if they lack a programming background. Understanding and evaluating the LCDP to be employed for the particular problem at hand are difficult tasks mainly because decision-makers have to choose among hundreds of heterogeneous platforms, which are difficult to evaluate without dedicated support. Thus, a detailed classification is needed to elaborate on the existing low-code platforms and to help users find out the most appropriate platforms based on their requirements.In this paper, a technical survey of different LCDPs is presented by relying on a proposed conceptual comparative framework. In particular, by analyzing eight representative LCDPs, a corresponding set of features have been identified to distil the functionalities and the services that each considered platform can support. The final aim is facilitating the understanding and the comparison of the low-code platforms that can best accommodate given user requirements.
Apurvanand Sahay, Arsene Indamutsa, Davide Di Ruscio, Alfonso Pierantonio
SEAA3
2020 Detecting Java software similarities by using different clustering techniques
Andrea Capiluppi, Davide Di Ruscio, Juri Di Rocco, Phuong T. Nguyen 0001, Nemitari Ajienka
Inf. Softw. Technol.2
2020 PostFinder: Mining Stack Overflow posts to support software developers
Riccardo Rubei, Claudio Di Sipio, Phuong T. Nguyen 0001, Juri Di Rocco, Davide Di Ruscio
Inf. Softw. Technol.5
2020 CrossRec: Supporting software developers by recommending third-party libraries
Phuong T. Nguyen 0001, Juri Di Rocco, Davide Di Ruscio, Massimiliano Di Penta
J. Syst. Softw.3
2020 Understanding MDE projects: megamodels to the rescue for architecture recovery
Juri Di Rocco, Davide Di Ruscio, Johannes Härtel, Ludovico Iovino, Ralf Lämmel, Alfonso Pierantonio
Softw. Syst. Model.2
2020 An automated approach to assess the similarity of GitHub repositories
Phuong T. Nguyen 0001, Juri Di Rocco, Riccardo Rubei, Davide Di Ruscio
Softw. Qual. J.4
2020 Automated Selection of Optimal Model Transformation Chains via Shortest-Path Algorithms
abstract
Conventional wisdom on model transformations in Model-Driven Engineering (MDE) suggests that they are crucial components in modeling environments to achieve superior automation, whether it be refactoring, simulation, or code generation. While their relevance is well-accepted, model transformations are challenging to design, implement, and verify because of the inherent complexity that they must encode. Thus, defining transformations by chaining existing ones is key to success for enhancing their reusability. This paper proposes an approach, based on well-established algorithms, to support modellers when multiple transformation chains are available to bridge a source metamodel with a target one. The all-important goal of selecting the optimal chain has been based on the quality criteria of coverage and information loss. The feasibility of the approach has been demonstrated by means of experiments operated on chains obtained from transformations borrowed from a publicly available repository.
Francesco Basciani, Mattia D'Emidio, Davide Di Ruscio, Daniele Frigioni, Ludovico Iovino, Alfonso Pierantonio
IEEE Trans. Software Eng.3
2019 Enabling heterogeneous recommendations in OSS development: what's done and what's next in CROSSMINER
abstract
Open source software (OSS) forges contain rich data sources that are useful for supporting development activities. Research has been done to promote techniques and tools for providing open source developers with innovative features aiming at obtaining improvements in terms of development effort, cost savings, and developer productivity, just to mention a few. In the context of the EU H2020 CROSSMINER project we are conceiving a set of recommendations to assist software programmers in different phases of the development process. To this end, we defined a graph-based representation to encode in a homogeneous manner different aspects of OSS ecosystems as well as to incorporate various well-founded recommendation techniques. Following the proposed paradigm, we have implemented recommender systems for providing various artifacts, such as third-party libraries and API usage. The preliminary results we achieved so far are promising: our proposed systems are able to suggest highly relevant items with respect to the current development context. In this paper, we describe what has been achieved so far as well as our planned medium and longer-term objectives. As a proof of concept, we present a use case where we built a context-aware recommender system to recommend API function calls and usage patterns.
Phuong T. Nguyen 0001, Juri Di Rocco, Davide Di Ruscio
EASE3
2019 Domain-specific languages for the design, deployment and manipulation of heterogeneous databases
abstract
The need for levels of availability and scalability beyond those supported by relational databases has led to the emergence of a new generation of purpose-specific databases grouped under the term NoSQL. In general, NoSQL databases are designed with horizontal scalability as a primary concern and deliver increased availability and fault tolerance at a cost of temporary inconsistency and reduced durability of data. To balance the requirements for data consistency and availability, organisations increasingly migrate towards hybrid data persistence architectures comprising both relational and NoSQL databases. The consensus is that this trend will only become stronger in the future; critical data will continue to be stored in ACID (largely relational) databases while non-critical data will be progressively migrated to high-availability NoSQL databases. Designing and deploying a hybrid data persistence architecture that involves a combination of relational and NoSQL databases is a complex, technically challenging and error-prone task. In this paper we outline a model-based methodology developed in the context of the EC-funded H2020 TYPHON project for designing, developing, querying and evolving such scalable architectures for persistence, analytics and monitoring of large volumes of hybrid (relational, graph-based, document-based, natural language, etc.) data, in a systematic and disciplined manner.
Dimitrios S. Kolovos, Fady Medhat, Richard F. Paige, Davide Di Ruscio, Tijs van der Storm, Sebastian Scholze, Athanasios Zolotas
MiSE@ICSE4
2019 FOCUS: a recommender system for mining API function calls and usage patterns
abstract
Software developers interact with APIs on a daily basis and, therefore, often face the need to learn how to use new APIs suitable for their purposes. Previous work has shown that recommending usage patterns to developers facilitates the learning process. Current approaches to usage pattern recommendation, however, still suffer from high redundancy and poor run-time performance. In this paper, we reformulate the problem of usage pattern recommendation in terms of a collaborative-filtering recommender system. We present a new tool, FOCUS, which mines open-source project repositories to recommend API method invocations and usage patterns by analyzing how APIs are used in projects similar to the current project. We evaluate FOCUS on a large number of Java projects extracted from GitHub and Maven Central and find that it outperforms the state-of-the-art approach PAM with regards to success rate, accuracy, and execution time. Results indicate the suitability of context-aware collaborative-filtering recommender systems to provide API usage patterns.
Phuong T. Nguyen 0001, Juri Di Rocco, Davide Di Ruscio, Lina Ochoa, Thomas Degueule, Massimiliano Di Penta
ICSE3
2019 Automated Classification of Metamodel Repositories: A Machine Learning Approach
abstract
Manual classification methods of metamodel repositories require highly trained personnel and the results are usually influenced by the subjectivity of human perception. Therefore, automated metamodel classification is very desirable and stringent. In this work, Machine Learning techniques have been employed for metamodel automated classification. In particular, a tool implementing a feed-forward neural network is introduced to classify metamodels. An experimental evaluation over a dataset of 555 metamodels demonstrates that the technique permits to learn from manually classified data and effectively categorize incoming unlabeled data with a considerably high prediction rate: the best performance comprehends 95.40% as success rate, 0.945 as precision, 0.938 as recall, and 0.942 as F1 score.
Phuong T. Nguyen 0001, Juri Di Rocco, Davide Di Ruscio, Alfonso Pierantonio, Ludovico Iovino
MoDELS3
2019 Safety for mobile robotic systems: A systematic mapping study from a software engineering perspective
Darko Bozhinoski, Davide Di Ruscio, Ivano Malavolta, Patrizio Pelliccione, Ivica Crnkovic
J. Syst. Softw.2
2019 Automated Reuse of Model Transformations through Typing Requirements Models
abstract
Model transformations are key elements of model-driven engineering, where they are used to automate the manipulation of models. However, they are typed with respect to concrete source and target meta-models, making their reuse for other (even similar) meta-models challenging. To improve this situation, we propose capturing the typing requirements for reusing a transformation with other meta-models by the notion of a typing requirements model (TRM). A TRM describes the prerequisites that a model transformation imposes on the source and target meta-models to obtain a correct typing. The key observation is that any meta-model pair that satisfies the TRM is a valid reuse context for the transformation at hand. A TRM is made of two domain requirement models (DRMs) describing the requirements for the source and target meta-models, and a compatibility model expressing dependencies between them. We define a notion of refinement between DRMs and see meta-models as a special case of DRM. We provide a catalogue of valid refinements and describe how to automatically extract a TRM from an ATL transformation. The approach is supported by our tool TOTEM. We report on two experiments—based on transformations developed by third parties and meta-model mutation techniques—validating the correctness and completeness of our TRM extraction procedure and confirming the power of TRMs to encode variability and support flexible reuse.
Juan de Lara, Esther Guerra, Davide Di Ruscio, Juri Di Rocco, Jesús Sánchez Cuadrado, Ludovico Iovino, Alfonso Pierantonio
ACM Trans. Softw. Eng. Methodol.3
2018 CrossSim: Exploiting Mutual Relationships to Detect Similar OSS Projects
abstract
Software development is a knowledge-intensive activity, which requires mastering several languages, frameworks, technology trends (among other aspects) under the pressure of ever-increasing arrays of external libraries and resources. Recommender systems are gaining high relevance in software engineering since they aim at providing developers with real-time recommendations, which can reduce the time spent on discovering and understanding reusable artifacts from software repositories, and thus inducing productivity and quality gains. In this paper, we focus on the problem of mining open source software repositories to identify similar projects, which can be evaluated and eventually reused by developers. To this end, CrossSim is proposed as a novel approach to model open source software projects and related artifacts and to compute similarities among them. An evaluation on a dataset containing 580 GitHub projects shows that CrossSim outperforms an existing technique, which has been proven to have a good performance in detecting similar GitHub repositories.
Phuong T. Nguyen 0001, Juri Di Rocco, Riccardo Rubei, Davide Di Ruscio
SEAA4
2018 Collaborative model-driven software engineering: a classification framework and a research map
abstract
This proposal is about a study we recently published in the IEEE Transaction of Software Engineering journal [4].
Davide Di Ruscio, Mirco Franzago, Henry Muccini, Ivano Malavolta
ICSE1
2018 Collaborative Model-Driven Software Engineering: A Classification Framework and a Research Map
abstract
Context: Collaborative Model-Driven Software Engineering (MDSE) consists of methods and techniques where multiple stakeholders manage, collaborate, and are aware of each others' work on shared models. Objective: Collaborative MDSE is attracting research efforts from different areas, resulting in a variegated scientific body of knowledge. This study aims at identifying, classifying, and understanding existing collaborative MDSE approaches. Method: We designed and conducted a systematic mapping study. Starting from over 3,000 potentially relevant studies, we applied a rigorous selection procedure resulting in 106 selected papers, further clustered into 48 primary studies along a time span of 19 years. We rigorously defined and applied a classification framework and extracted key information from each selected study for subsequent analysis. Results: Our analysis revealed the following main fidings: (i) there is a growing scientific interest on collaborative MDSE in the last years; (ii) multi-view modeling, validation support, reuse, and branching are more rarely covered with respect to other aspects about collaborative MDSE; (iii) different primary studies focus differently on individual dimensions of collaborative MDSE (i.e., model management, collaboration, and communication); (iv) most approaches are language-specific, with a prominence of UML-based approaches; (v) few approaches support the interplay between synchronous and asynchronous collaboration. Conclusion: This study gives a solid foundation for classifying existing and future approaches for collaborative MDSE. Researchers and practitioners can use our results for identifying existing research/technical gaps to attack, better scoping their own contributions, or understanding existing ones.
Mirco Franzago, Davide Di Ruscio, Ivano Malavolta, Henry Muccini
IEEE Trans. Software Eng.2
2017 The MegaM@Rt2 ECSEL Project: MegaModelling at Runtime - Scalable Model-Based Framework for Continuous Development and Runtime Validation of Complex Systems
abstract
A major challenge for the European electronic industry is to enhance productivity while reducing costs and ensuring quality in development, integration and maintenance. Model-Driven Engineering (MDE) principles and techniques have already shown promising capabilities but still need to scale to support real-world scenarios implied by the full deployment and use of complex electronic components and systems. Moreover, maintaining efficient traceability, integration and communication between two fundamental system life-time phases (design time and runtime) is another challenge facing scalability of MDE. This paper presents an overview of the ECSEL project entitled "MegaModelling at runtime -- Scalable model-based framework for continuous development and runtime validation of complex systems" (MegaM@Rt2), whose aim is to address the above mentioned challenges facing MDE. Driven by both large and small industrial enterprises, with the support of research partners and technology providers, MegaM@Rt2 aims to deliver a framework of tools and methods for: 1) system engineering/design & continuous development, 2) related runtime analysis and 3) global model & traceability management, respectively. The diverse industrial use cases (covering domains such as aeronautics, railway, construction and telecommunications) will integrate and apply such a framework that shall demonstrate the validation of the MegaM@Rt2 solution.
Wasif Afzal, Hugo Bruneliere, Davide Di Ruscio, Andrey Sadovykh, Silvia Mazzini, Eric Cariou, Dragos Truscan, Jordi Cabot, Daniel Field, Luigi Pomante, Pavel Smrz
DSD3
2017 A Feature-Based Approach for Variability Exploration and Resolution in Model Transformation Migration
Davide Di Ruscio, Juergen Etzlstorfer, Ludovico Iovino, Alfonso Pierantonio, Wieland Schwinger
ECMFA1
2017 Reusing Model Transformations Through Typing Requirements Models
Juan de Lara, Juri Di Rocco, Davide Di Ruscio, Esther Guerra, Ludovico Iovino, Alfonso Pierantonio, Jesús Sánchez Cuadrado
FASE3
2017 9th Workshop on Modelling in Software Engineering (MiSE 2017)
abstract
Summary form only given. MiSE 2017 Workshop Summary. The MISE workshop aims at promoting the use of models in the engineering of software systems. In particular, we are interested in the exchange of innovative technical ideas and experiences related to modeling. Engineers have used models to effectively manage complexity for centuries, and there is a growing body of work on the use of models to manage inherent problem and solution complexity in software development. The use of software models will become more prevalent as methodologies and tools that manipulate models at various levels of abstraction become available. Workshop activities will focus on analyzing successful applications of software-modeling techniques to gain insights into challenging modeling problems, including: (1) identifying, describing, and using appropriate abstractions, (2) supporting incremental, iterative development through the use of appropriate model composition, transformation and other model manipulation operators, and (3) automated analysis of possibly large, possibly incomplete models to determine the presence or absence of desired and undesired properties.
Davide Di Ruscio, Marsha Chechik, Bernhard Rumpe
MiSE@ICSE1
2017 Special issue on Flexible Model Driven Engineering
Davide Di Ruscio, Juan de Lara, Alfonso Pierantonio
Comput. Lang. Syst. Struct.1
2016 Automated Clustering of Metamodel Repositories
Francesco Basciani, Juri Di Rocco, Davide Di Ruscio, Ludovico Iovino, Alfonso Pierantonio
CAiSE3
2016 Supporting Variability Exploration and Resolution During Model Migration
Davide Di Ruscio, Juergen Etzlstorfer, Ludovico Iovino, Alfonso Pierantonio, Wieland Schwinger
ECMFA1
2016 Automatic generation of detailed flight plans from high-level mission descriptions
Davide Di Ruscio, Ivano Malavolta, Patrizio Pelliccione, Massimo Tivoli
MoDELS1
2016 A Tool-Supported Methodology for Validation and Refinement of Early-Stage Domain Models
abstract
Model-driven engineering (MDE) promotes automated model transformations along the entire development process. Guaranteeing the quality of early models is essential for a successful application of MDE techniques and related tool-supported model refinements. Do these models properly reflect the requirements elicited from the owners of the problem domain? Ultimately, this question needs to be asked to the domain experts. The problem is that a gap exists between the respective backgrounds of modeling experts and domain experts. MDE developers cannot show a model to the domain experts and simply ask them whether it is correct with respect to the requirements they had in mind. To facilitate their interaction and make such validation more systematic, we propose a methodology and a tool that derive a set of customizable questionnaires expressed in natural language from each model to be validated. Unexpected answers by domain experts help to identify those portions of the models requiring deeper attention. We illustrate the methodology and the current status of the developed tool MOTHIA, which can handle UML Use Case, Class, and Activity diagrams. We assess MOTHIA effectiveness in reducing the gap between domain and modeling experts, and in detecting modeling faults on the European Project CHOReOS.
Marco Autili, Antonia Bertolino, Guglielmo De Angelis, Davide Di Ruscio, Alessio Di Sandro
IEEE Trans. Software Eng.4
2015 Mining Correlations of ATL Model Transformation and Metamodel Metrics
abstract
Model transformations are considered to be the "heart" and "soul" of Model Driven Engineering, and as a such, advanced techniques and tools are needed for supporting the development, quality assurance, maintenance, and evolution of model transformations. Even though model transformation developers are gaining the availability of powerful languages and tools for developing, and testing model transformations, very few techniques are available to support the understanding of transformation characteristics. In this paper, we propose a process to analyze model transformations with the aim of identifying to what extent their characteristics depend on the corresponding input and target met models. The process relies on a number of transformation and metamodel metrics that are calculated and properly correlated. The paper discusses the application of the approach on a corpus consisting of more than 90 ATL transformations and 70 corresponding metamodels.
Juri Di Rocco, Davide Di Ruscio, Ludovico Iovino, Alfonso Pierantonio
MiSE@ICSE2
2015 FLYAQ: Enabling Non-expert Users to Specify and Generate Missions of Autonomous Multicopters
abstract
Multicopters are increasingly popular since they promise to simplify a myriad of everyday tasks. Currently, vendors provide low-level APIs and basic primitives to program multicopters, making mission development a task-specific and error-prone activity. As a consequence, current approaches are affordable only for users that have a strong technical expertise. Then, software engineering techniques are needed to support the definition, development, and realization of missions at the right level of abstraction and involving teams of autonomous multicopters that guarantee the safety today's users expect. In this paper we describe a tool that enables end-users with no technical expertise, e.g., firefighters and rescue workers, to specify missions for a team of multicopters. The detailed flight plan that each multicopter must perform to accomplish the specified mission is automatically generated by preventing collisions between multicopters and obstacles, and ensuring the preservation of no-fly zones.
Darko Bozhinoski, Davide Di Ruscio, Ivano Malavolta, Patrizio Pelliccione, Massimo Tivoli
ASE2
2015 Supporting users to manage breaking and unresolvable changes in coupled evolution
abstract
In Model-Driven Engineering (MDE) metamodels play a key role since they underpin the specification of different kinds of modeling artifacts, and the development of a wide range of model management tools. Consequently, when a metamodel is changed modelers and developers have to deal with the induced coupled evolutions i.e., adapting all those artifacts that might have been affected by the operated metamodel changes. Over the last years, several approaches have been proposed to deal with the coupled evolution problem, even though the treatment of changes is still a time consuming and error-prone activity. In this paper we propose an approach supporting users during the adaptation steps that cannot be fully automated.~The approach has been implemented by extending the EMFMigrate language and by exploiting the user input facility of the Epsilon Object Language. The approach has been applied to cope with the coupled evolution of metamodels and model-to-text transformations
Juri Di Rocco, Davide Di Ruscio, Alfonso Pierantonio, Ludovico Iovino
DSM@SPLASH2
2015 OSSMETER: a software measurement platform for automatically analysing open source software projects
abstract
Deciding whether an open source software (OSS) project meets the required standards for adoption in terms of quality, maturity, activity of development and user support is not a straightforward process as it involves exploring various sources of information. Such sources include OSS source code repositories, communication channels such as newsgroups, forums, and mailing lists, as well as issue tracking systems. OSSMETER is an extensible and scalable platform that can monitor and incrementally analyse a large number of OSS projects. The results of this analysis can be used to assess various aspects of OSS projects, and to directly compare different OSS projects with each other.
Davide Di Ruscio, Dimitrios S. Kolovos, Ioannis Korkontzelos, Nicholas Drivalos Matragkas, Jurgen J. Vinju
ESEC/SIGSOFT FSE1
2015 Guest editors' introduction to the fifth issue of Experimental Software and Toolkits (EST): A special issue on Academics Modelling with Eclipse (ACME2012)
Mark van den Brand, Davide Di Ruscio, Dimitrios S. Kolovos, Louis M. Rose
Sci. Comput. Program.2
2015 A model-driven approach to detect faults in FOSS systems
abstract
Abstract Free and Open‐Source Software (FOSS) Linux distributions are among the most complex modern software systems. They are made of thousands of components (software packages) evolving rapidly without centralized coordination. The upgrade of FOSS systems is managed by meta‐installers, which solve package dependencies and conflicts and lead the system to a new system configuration by installing or removing packages. Current tools are able to predict a very limited set of upgrade faults before deployment, and this leaves a wide range of faults unpredicted. In this paper, we focus on faults that remain unpredicted, for example, missing packages, packages that are not properly installed, and missing services, with the aim of providing a solution for them. Specifically, in this paper, we propose a model‐driven approach and supporting tools to prevent specific classes of system configuration faults before performing the real upgrade. Once the system configuration is represented as a model, the configuration model is evaluated by means of queries, each devoted to discover a specific class of faults. The approach is intrinsically extensible so that user communities can add new queries when new classes of faults are identified. The approach has been validated by executing the fault detector on configuration models in which faults have been intentionally injected and by analyzing produced results. Copyright © 2015 John Wiley & Sons, Ltd.
Davide Di Ruscio, Patrizio Pelliccione
J. Softw. Evol. Process.1
2014 Mining metrics for understanding metamodel characteristics
abstract
Metamodels are a key concept in Model-Driven Engineering. Any artifact in a modeling ecosystem has to be defined in accordance to a metamodel prescribing its main qualities. Hence, understanding common characteristics of metamodels, how they evolve over time, and what is the impact of metamodel changes throughout the modeling ecosystem is of great relevance. Similarly to software, metrics can be used to obtain objective, transparent, and reproducible measurements on metamodels too. In this paper, we present an approach to understand structural characteristics of metamodels. A number of metrics are used to quantify and measure metamodels and cross-link different aspects in order to provide additional information about how metamodel characteristics are related. The approach is applied on repositories consisting of more than 450 metamodels.
Juri Di Rocco, Davide Di Ruscio, Ludovico Iovino, Alfonso Pierantonio
MiSE2
2014 Automated Chaining of Model Transformations with Incompatible Metamodels
Francesco Basciani, Davide Di Ruscio, Ludovico Iovino, Alfonso Pierantonio
MoDELS2
2014 Models of OSS project meta-information: a dataset of three forges
abstract
The process of selecting open-source software (OSS) for adoption is not straightforward as it involves exploring various sources of information to determine the quality, maturity, activity, and user support of each project. In the context of the OSSMETER project, we have developed a forge-agnostic metamodel that captures the meta-information common to all OSS projects. We specialise this metamodel for popular OSS forges in order to capture forge-specific meta-information. In this paper we present a dataset conforming to these metamodels for over 500,000 OSS projects hosted on three popular OSS forges: Eclipse, SourceForge, and GitHub. The dataset enables different kinds of automatic analysis and supports objective comparisons of cross-forge OSS alternatives with respect to a user's needs and quality requirements.
James R. Williams, Davide Di Ruscio, Nicholas Drivalos Matragkas, Juri Di Rocco, Dimitrios S. Kolovos
MSR2
2014 CHOReOSynt: enforcing choreography realizability in the future internet
abstract
Choreographies are an emergent Service Engineering (SE) approach to compose together and coordinate services in a distributed way. A choreography formalizes the way business participants coordinate their interactions. The focus is not on orchestrations of the work performed within them, but rather on the exchange of messages between these participants. The problems usually addressed when considering a choreography-based specification of the system to be realized are realizability check, and conformance check. In this paper we describe the CHOReOSynt tool, which has been conceived to deal with an additional problem, namely, automated choreography enforcement. That is, when the goal is to actually realize a service choreography by reusing third-party services, their uncontrolled (or wrongly coordinated) composite behavior may show undesired interactions that preclude the choreography realization. CHOReOSynt solves this problem by automatically synthesizing additional software entities that, when interposed among the services, allow for preventing undesired interactions. Screencast: http://choreos.disim.univaq.it/downloads/
Marco Autili, Davide Di Ruscio, Amleto Di Salle, Alexander Perucci
SIGSOFT FSE2
2014 Simulating upgrades of complex systems: The case of Free and Open Source Software
Davide Di Ruscio, Patrizio Pelliccione
Inf. Softw. Technol.1
2014 Guest editorial to the special issue on Success Stories in Model Driven Engineering
Davide Di Ruscio, Richard F. Paige, Alfonso Pierantonio
Sci. Comput. Program.1
2013 A Model-Based Synthesis Process for Choreography Realizability Enforcement
Marco Autili, Davide Di Ruscio, Amleto Di Salle, Paola Inverardi, Massimo Tivoli
FASE2
2013 Producing software by integration: challenges and research directions (keynote)
abstract
Software is increasingly produced according to a certain goal and by integrating existing software produced by third-parties, typically black-box, and often provided without a machine readable documentation. This implies that development processes of the next future have to explicitly deal with an inherent incompleteness of information about existing software, notably on its behaviour. Therefore, on one side a software producer will less and less know the precise behaviour of a third party software service, on the other side she will need to use it to build her own application. In this paper we present an innovative development process to automatically produce dependable software systems by integrating existing services under uncertainty and according to the specied goal. Moreover, we (i) discuss important challenges that must be faced while producing the kind of systems we are targeting, (ii) give an overview of the state of art related to the identied challenges, and finally (iii) provide research directions to address these challenges.
Paola Inverardi, Marco Autili, Davide Di Ruscio, Patrizio Pelliccione, Massimo Tivoli
ESEC/SIGSOFT FSE3
2013 Managing the evolution of data-intensive Web applications by model-driven techniques
Antonio Cicchetti, Davide Di Ruscio, Ludovico Iovino, Alfonso Pierantonio
Softw. Syst. Model.2
2012 Model-Driven Techniques to Enhance Architectural Languages Interoperability
Davide Di Ruscio, Ivano Malavolta, Henry Muccini, Patrizio Pelliccione, Alfonso Pierantonio
FASE1
2012 Evolutionary Togetherness: How to Manage Coupled Evolution in Metamodeling Ecosystems
Davide Di Ruscio, Ludovico Iovino, Alfonso Pierantonio
ICGT1
2012 EVOSS: A tool for managing the evolution of free and open source software systems
abstract
Software systems increasingly require to deal with continuous evolution. In this paper we present the EVOSS tool that has been defined to support the upgrade of free and open source software systems. EVOSS is composed of a simulator and of a fault detector component. The simulator is able to predict failures before they can affect the real system. The fault detector component has been defined to discover inconsistencies in the system configuration model. EVOSS improves the state of the art of current tools, which are able to predict a very limited set of upgrade faults, while they leave a wide range of faults unpredicted.
Davide Di Ruscio, Patrizio Pelliccione, Alfonso Pierantonio
ICSE1
2011 EAGLE: engineering software in the ubiquitous globe by leveraging uncErtainty
abstract
In the next future we will be surrounded by a virtually infinite number of software applications that provide computational software resources in the open Globe. This will radically change the way software will be produced and used. Users will be keen on producing their own piece of software, by also reusing existing software, to better satisfy their needs, therefore with a goal oriented, opportunistic use in mind. The produced software will need to be able to evolve, react and adapt to a continuously changing environment, while guaranteeing dependability. The strongest adversary to this view is the lack of knowledge on the software's structure, behavior, and execution context. Despite the possibility to extract observational models from existing software, a producer will always operate with software artifacts that exhibit a degree of uncertainty in terms of their functional and non functional characteristics. We believe that uncertainty can only be controlled by making it explicit and by using it to drive the production process itself. In this paper, we introduce a novel paradigm of software production process that explores available software and assesses its degree of uncertainty in relation to the opportunistic goal G, assists the producer in creating the appropriate integration means towards G, and validates the quality of the integrated system with respect to G and the current context.
Marco Autili, Vittorio Cortellessa, Davide Di Ruscio, Paola Inverardi, Patrizio Pelliccione, Massimo Tivoli
SIGSOFT FSE3
2011 Supporting software evolution in component-based FOSS systems
Roberto Di Cosmo, Davide Di Ruscio, Patrizio Pelliccione, Alfonso Pierantonio, Stefano Zacchiroli
Sci. Comput. Program.2
2010 ByADL: An MDE Framework for Building Extensible Architecture Description Languages
Davide Di Ruscio, Ivano Malavolta, Henry Muccini, Patrizio Pelliccione, Alfonso Pierantonio
ECSA1
2010 Developing next generation ADLs through MDE techniques
abstract
Despite the flourishing of languages to describe software architectures, existing Architecture Description Languages (ADLs) are still far away from what it is actually needed. In fact, while they support a traditional perception of a Software Architecture (SA) as a set of constituting elements (such as components, connectors and interfaces), they mostly fail to capture multiple stakeholders concerns and their design decisions that represent a broader view of SA being accepted today. Next generation ADLs must cope with various and ever evolving stakeholder concerns by employing semantic extension mechanisms.
Davide Di Ruscio, Ivano Malavolta, Henry Muccini, Patrizio Pelliccione, Alfonso Pierantonio
ICSE (1)1
2010 JTL: A Bidirectional and Change Propagating Transformation Language
Antonio Cicchetti, Davide Di Ruscio, Romina Eramo, Alfonso Pierantonio
SLE2
2010 Automated Co-evolution of GMF Editor Models
Davide Di Ruscio, Ralf Lämmel, Alfonso Pierantonio
SLE1
2009 Towards a Model Driven Approach to Upgrade Complex Software Systems
Antonio Cicchetti, Davide Di Ruscio, Patrizio Pelliccione, Alfonso Pierantonio, Stefano Zacchiroli
ENASE2
2009 beContent: A Model-Driven Platform for Designing and Maintaining Web Applications
Antonio Cicchetti, Davide Di Ruscio, Romina Eramo, Francesco Maccarrone, Alfonso Pierantonio
ICWE2
2008 Automating Co-evolution in Model-Driven Engineering
abstract
Software development is witnessing the increasing need of version management techniques for supporting the evolution of model-based artefacts. In this respect, metamodels can be considered one of the basic concepts of model-driven engineering and are expected to evolve during their life-cycle. As a consequence, models conforming to changed metamodels have to be updated for preserving their well-formedness. This paper deals with the co-adaptation problems by proposing higher-order model transformations which take a difference model recording the metamodel evolution and produce a model transformation able to co-evolve the involved models.
Antonio Cicchetti, Davide Di Ruscio, Romina Eramo, Alfonso Pierantonio
EDOC2
2008 Managing Model Conflicts in Distributed Development
Antonio Cicchetti, Davide Di Ruscio, Alfonso Pierantonio
MoDELS2
2008 Decoupling web application concerns through weaving operations
Antonio Cicchetti, Davide Di Ruscio
Sci. Comput. Program.2
2007 A Development Process for Self-adapting Service Oriented Applications
Marco Autili, Luca Berardinelli, Vittorio Cortellessa, Antinisca Di Marco, Davide Di Ruscio, Paola Inverardi, Massimo Tivoli
ICSOC5
2006 Supporting Web Applications development with a PLA
Luca Balzerani, Guglielmo De Angelis, Davide Di Ruscio, Alfonso Pierantonio
J. Web Eng.3
2005 Model Transformations in the Development of Data-Intensive Web Applications
Davide Di Ruscio, Alfonso Pierantonio
CAiSE1