Paulo Anselmo da Mota Silveira Neto’s research while affiliated with Federal Rural University of Pernambuco and other places

What is this page?


This page lists works of an author who doesn't have a ResearchGate profile or hasn't added the works to their profile yet. It is automatically generated from public (personal) data to further our legitimate goal of comprehensive and accurate scientific recordkeeping. If you are this author and want this page removed, please let us know.

Publications (30)


Software Product Line Engineering via Software Transplantation
  • Article

September 2024

·

29 Reads

ACM Transactions on Software Engineering and Methodology

·

Eduardo Santana de Almeida

·

Paulo Anselmo da Mota Silveira Neto

·

[...]

·

Software Product Lines (SPLs) improve time-to-market, enhance software quality, and reduce maintenance costs. Current SPL re-engineering practices are largely manual and require domain knowledge. Thus, adopting and, to a lesser extent, maintaining SPLs are expensive tasks, preventing many companies from enjoying their benefits. To address these challenges, we introduce Foundry , an approach utilizing software transplantation to reduce the manual effort of SPL adoption and maintenance. Foundry enables integrating features across different codebases, even codebases that are unaware that they are contributing features to a software product line. Each product produced by Foundry is pure code, without variability annotation, unlike feature flags, which eases variability management and reduces code bloat. We realise Foundry in prodScalpel , a tool that transplants multiple organs ( i.e. , a set of interesting features) from donor systems into an emergent product line for codebases written in C. Given tests and lightweight annotations identifying features and implantation points, prodScalpel automates feature extraction and integration. To evaluate its effectiveness, our evaluation compares feature transplantation using prodScalpel to the current state of practice: on our dataset, prodScalpel’s use speeds up feature migration by an average of 4.8 times when compared to current practice.


Please do not go: understanding turnover of software engineers from different perspectives

June 2024

·

23 Reads

Turnover consists of moving into and out of professional employees in the company in a given period. Such a phenomenon significantly impacts the software industry since it generates knowledge loss, delays in the schedule, and increased costs in the final project. Despite the efforts made by researchers and professionals to minimize the turnover, more studies are needed to understand the motivation that drives Software Engineers to leave their jobs and the main strategies CEOs adopt to retain these professionals in software development companies. In this paper, we contribute a mixed methods study involving semi-structured interviews with Software Engineers and CEOs to obtain a wider opinion of these professionals about turnover and a subsequent validation survey with additional software engineers to check and review the insights from interviews. In studying such aspects, we identified 19 different reasons for software engineers' turnover and 18 more efficient strategies used in the software development industry to reduce it. Our findings provide several implications for industry and academia, which can drive future research.


Bug Analysis in Jupyter Notebook Projects: An Empirical Study

January 2024

·

46 Reads

·

4 Citations

ACM Transactions on Software Engineering and Methodology

Computational notebooks, such as Jupyter, have been widely adopted by data scientists to write code for analyzing and visualizing data. Despite their growing adoption and popularity, few studies were found to understand Jupyter development challenges from the practitioners’ point of view. This paper presents a systematic study of bugs and challenges that Jupyter practitioners face through a large-scale empirical investigation. We mined 14,740 commits from 105 GitHub open-source projects with Jupyter notebook code. Next, we analyzed 30,416 Stack Overflow posts, which gave us insights into bugs that practitioners face when developing Jupyter notebook projects. Next, we conducted nineteen interviews with data scientists to uncover more details about Jupyter bugs and to gain insight into Jupyter developers’ challenges. Finally, to validate the study results and proposed taxonomy, we conducted a survey with 91 data scientists. We also highlight bug categories, their root causes, and the challenges that Jupyter practitioners face.


Bug Analysis in Jupyter Notebook Projects: An Empirical Study

October 2022

·

20 Reads

Computational notebooks, such as Jupyter, have been widely adopted by data scientists to write code for analyzing and visualizing data. Despite their growing adoption and popularity, there has been no thorough study to understand Jupyter development challenges from the practitioners' point of view. This paper presents a systematic study of bugs and challenges that Jupyter practitioners face through a large-scale empirical investigation. We mined 14,740 commits from 105 GitHub open-source projects with Jupyter notebook code. Next, we analyzed 30,416 Stack Overflow posts which gave us insights into bugs that practitioners face when developing Jupyter notebook projects. Finally, we conducted nineteen interviews with data scientists to uncover more details about Jupyter bugs and to gain insights into Jupyter developers' challenges. We propose a bug taxonomy for Jupyter projects based on our results. We also highlight bug categories, their root causes, and the challenges that Jupyter practitioners face.


Different, Really! A comparison of Highly-Configurable Systems and Single Systems

August 2022

·

17 Reads

·

3 Citations

Information and Software Technology

Context The development of systems that handle configuration options according to a specific environment is considered a hard activity. These kind of systems, Highly-Configurable Systems (HCS) are perceived by researchers and developers as complex and difficult to maintain due to the necessity of handling variation points. Although this perception is reported in the literature, no prior study investigated the differences between HCS and Single Systems (SS). Objective This study investigated similarities and differences between HCS and SS using well known metrics from the literature according to three different perspectives: product perspective (bug-proneness, complexity, and change size); process perspective (number of contributors, number of core developers, and accidental contributors); and people perspective (contributor retention and number of paid contributors). Method To perform this comparison, we collected data from two surveys and from a mining study (within 15,769 releases of 124 GitHub projects written in C). Results In general, we identified that for the majority of the metrics, the perception of practitioners and researchers about HCS and SS is different from our mining results. Conclusion The identification of similarities and differences of HCS and SS will help to initiate a discussion and further research in this direction.


A Deep Dive on the Impact of COVID-19 in Software Development

August 2020

·

1,120 Reads

Context: COVID-19 pandemic has impacted different business sectors around the world. Objective. This study investigates the impact of COVID-19 on software projects and software development professionals. Method: We conducted a mining software repository study based on 100 GitHub projects developed in Java using ten different metrics. Next, we surveyed 279 software development professionals for better understanding the impact of COVID-19 on daily activities and wellbeing. Results: We identified 12 observations related to productivity, code quality, and wellbeing. Conclusions: Our findings highlight that the impact of COVID-19 is not binary (reduce productivity vs. increase productivity) but rather a spectrum. For many of our observations, substantial proportions of respondents have differing opinions from each other. We believe that more research is needed to uncover specific conditions that cause certain outcomes to be more prevalent.


Software Product Lines Adoption in Small Organizations

May 2017

·

55 Reads

·

23 Citations

Journal of Systems and Software

Context An increasing number of studies has demonstrated improvements in product quality, and time-to-market reductions when Software Product Line (SPL) engineering is introduced. However, despite the amount of successful stories about the use of SPL engineering, there is a lack of guidelines to support its adoption, especially to small-sized software organizations. Objective The aim of this study is to investigate SPL adoption in small organizations and to improve the generalization of evidence through the use of a multi-method approach. Method This paper reports on a multi-method study, where results from a mapping study, industrial case study and also expert opinion survey were considered to identify a set of findings. Results The study provides a better understanding of SPL adoption in the context of small to medium-sized organizations, by documenting evidence observed during the transition from single-system development to an SPL approach. This evidence is strengthened by the use of different research methods, which results in 22 findings regarding to the SPL adoption. Conclusion This research has synthesized the available evidence in SPL adoption and identifies gaps between required strategies, organizational structures, maturity level and existing adoption barriers. These findings are an important step to establish guidelines for SPL adoption.


RiSE events: a testbed for software product lines experimentation

May 2016

·

33 Reads

·

6 Citations

Software Product Lines (SPL) demand mature software engineering, planning and reuse, adequate practices of management and development, and also the ability to deal with organizational issues and architectural complexity. Thus, it is important the development of new techniques, tools and methods to deal with SPL complexity required by the variability management. To address this issue, an SPL has been proposed, where the existing variability was implemented by applying conditional compilation. Moreover, no framework was used to develop it, allowing any researcher to use the SPL without losing time learning some framework. In this work, we implemented an SPL test bed containing 34 functional features has 26.457 lines of code, 1493 methods and 496 classes.


Twenty-Eight Years of Component-Based Software Engineering

September 2015

·

1,522 Reads

·

138 Citations

Journal of Systems and Software

The idea of developing software components was envisioned more than forty years ago. In the past two decades, Component-Based Software Engineering (CBSE) has emerged as a distinguishable approach in software engineering, and it has attracted the attention of many researchers, which has led to many results being published in the research literature. There is a huge amount of knowledge encapsulated in conferences and journals targeting this area, but a systematic analysis of that knowledge is missing. For this reason, we aim to investigate the state-of-the-art of the CBSE area through a detailed literature review. To do this, 1,231 studies dating from 1984 to 2012 were analyzed. Using the available evidence, this paper addresses five dimensions of CBSE: main objectives, research topics, application domains, research intensity and applied research methods. The main objectives found were to increase productivity, save costs and improve quality. The most addressed application domains are homogeneously divided between commercial-off-the-shelf (COTS), distributed and embedded systems. Intensity of research showed a considerable increase in the last fourteen years. In addition to the analysis, this paper also synthesizes the available evidence, identifies open issues and points out areas that call for further research.


Using a multi-method approach to understand Agile software product lines

January 2015

·

63 Reads

·

16 Citations

Information and Software Technology

Context: Software product lines (SPLs) and Agile are approaches that share similar objectives. The main difference is the way in which these objectives are met. Typically evidence on what activities of Agile and SPL can be combined and how they can be integrated stems from different research methods performed separately. The generalizability of this evidence is low, as the research topic is still relatively new and previous studies have been conducted using only one research method. Objective: This study aims to increase understanding of Agile SPL and improve the generalizability of the identified evidence through the use of a multi-method approach. Method: Our multi-method research combines three complementary methods (Mapping Study, Case Study and Expert Opinion) to consolidate the evidence. Results: This combination results in 23 findings that provide evidence on how Agile and SPL could be combined. Conclusion: Although multi-method research is time consuming and requires a high degree of effort to plan, design, and perform, it helps to increase the understanding on Agile SPL and leads to more generalizable evidence. The findings confirm a synergy between Agile and SPL and serve to improve the body of evidence in Agile SPL. When researchers and practitioners develop new Agile SPL approaches, it will be important to consider these synergies.


Citations (25)


... Poor naming of methods/functions, variables, etc. 31 11.40% ...

Reference:

Exploring Code Comprehension in Scientific Programming: Preliminary Insights from Research Scientists
Bug Analysis in Jupyter Notebook Projects: An Empirical Study
  • Citing Article
  • January 2024

ACM Transactions on Software Engineering and Methodology

... This work presents evidence on RM practices in SPLE. We gathered data from two case studies, carried out in academic [4] and industry settings [5] for SPL. According to Yin [6], data analysis can be used to investigate evidence in a specific context, and to identify initial propositions based on previous studies. ...

On the investigation of Risk Management Practices in Software Product Lines
  • Citing Conference Paper
  • Full-text available
  • July 2012

... In this paper we report our development of a new and significantly more general framework, VarCORE + , that is both scalable to highly configurable systems [6] and appropriate for a wide range of application domains. VarCORE + is a tool-supported framework that uses a variability model to automate checks for missing and inconsistent features and constraints. ...

Different, Really! A comparison of Highly-Configurable Systems and Single Systems
  • Citing Article
  • August 2022

Information and Software Technology

... Surprisingly, this fact indicates that Ravichandran and Rothenberger's (2003) prediction from almost 20 years back that "black-box reuse with component markets could be the silver bullet solution that makes software reuse a reality" has still not come to fruition. At the same time, the organizational adoption of software development utilizing external software components is also still low in business practice (Clements & Gacek, 2001;Stefi et al., 2016;Bastos et al., 2017) 2 . ...

Software Product Lines Adoption in Small Organizations
  • Citing Article
  • May 2017

Journal of Systems and Software

... Thanks are due to authors of papers [80,152,122,110,25,108,145,118,114,151,109,199,49,191,133,121,153,40,44,73,96,181,92,85,139,150,179,56] who promptly helped us to better classify their work. This work is cosupported by the Spanish Ministry of Education, and the European Social Fund under contract TIN2014-58131-R. ...

An Experimental Study to Evaluate a SPL Architecture Regression Testing Approach
  • Citing Article
  • January 2012

... The identified secondary study [25] has taken into account just 4 accounting models and analysed them with respect to taxonomy of accounting and billing process presented by [15] and some other features. Other studies and their contribution have not been considered. ...

Accounting Models for Cloud Computing: A Mapping Study

... In this context, this study describes the evaluation of a regression testing approach [9] aimed to reduce the testing effort, by reusing test cases, execution results, as well as to select and prioritize a more effective set of test cases, in terms of performance improvements for fault detection. Taking advantage of SPL architectures similarities, this approach can be applied among product architectures and between the reference and product architectures. ...

A Regression Testing Approach for Software Product Lines Architectures
  • Citing Article
  • January 2012

... We applied the VarXplorer on the RiSE Event SPL project [8], a SPL for papers/reports submission. The SPL was built based on the main features found on largely used conference management systems, such as: EasyChair 3 , JEMS 4 , and CyberChair 5 . ...

RiSE events: a testbed for software product lines experimentation
  • Citing Conference Paper
  • May 2016

... The evolution of software is a crucial topic to component-based development software [9][10][11]. It may provide several benefits, such as decreased software maintenance costs, increased software efficiency and quality, improved software lifecycle, increased software reusability, enhanced adaptive ability, reduced software complexity, and so on. ...

Twenty-Eight Years of Component-Based Software Engineering
  • Citing Article
  • September 2015

Journal of Systems and Software

... Some attempts for adapting processes to the agile context can be found in the state of the art. Some authors attempt to replicate, use, and adapt the Agile Manifesto principles and values in several processes like development of embedded systems [2], software product lines (SPL) [3], and translation of traditional methods into agile methods [4]. However, the adaptation among different processes is difficult, since comparison among agile and traditional processes is still underdeveloped. ...

Using a multi-method approach to understand Agile software product lines
  • Citing Article
  • January 2015

Information and Software Technology