Paulo Roberto Miranda Meirelles

Paulo Roberto Miranda Meirelles
University of São Paulo | USP · Institute of Mathematics and Statistics (IME) (São Paulo)

PhD

About

80
Publications
28,341
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
1,001
Citations
Introduction
Research Interests: Software Engineering, Static source code analysis, Free Software, Agile methods, DevOps, and Mining software repositories.

Publications

Publications (80)
Conference Paper
Software development has evolved over decades, transitioning from traditional models such as the waterfall approach and the unified process to more flexible methodologies like agile methods and collaborative development strategies of Free/Libre/Open Source Software (FLOSS) projects. Alongside this trend, the global distribution of software developm...
Conference Paper
A central challenge for ensuring the success of software projects is to assure the convergence of developers’ and users’ views. While the availability of large amounts of user data from social media, app store reviews, and support channels bears many benefits, it still remains unclear how software development teams can effectively use this data. We...
Conference Paper
Code smells are inadequate code structures that can harm quality and maintainability. To remove these deficient structures, developers use refactoring techniques. Refactoring helps code be easier to understand and modify by eliminating potential problems and improving internal quality attributes. Most refactoring activities are usually performed ma...
Preprint
Full-text available
A central challenge for ensuring the success of software projects is to assure the convergence of developers' and users' views. While the availability of large amounts of user data from social media, app store reviews, and support channels bears many benefits, it still remains unclear how software development teams can effectively use this data. We...
Article
Full-text available
Context Code annotations have gained widespread popularity in programming languages, offering developers the ability to attach metadata to code elements to define custom behaviors. Many modern frameworks and APIs use annotations to keep integration less verbose and located nearer to the corresponding code element. Despite these advantages, practiti...
Book
https://www.casadocodigo.com.br/products/livro-como-se-faz-devops Vimos o DevOps surgir como um movimento para melhorar a vida dos profissionais da indústria de software, promovendo a colaboração entre pessoas de desenvolvimento e de infraestrutura. Mas, afinal, do ponto de vista da organização dos profissionais, existe uma receita para se fazer D...
Article
Machine learning (ML) has grown in popularity in the software industry due to its ability to solve complex problems. Developing ML systems involves more uncertainty and risk because it requires identifying a business opportunity and managing source code, data, and trained models. Our research aims to identify the existing practices used in the indu...
Conference Paper
Neste estudo, realizou-se a comparação entre as heurísticas de usabilidade de Nielsen e de Mapas Interativos na Web, por meio da avaliação de uma plataforma de visualização de dados geográficos. O objetivo era analisar o desempenho de cada conjunto de heurísticas. A avaliação heurística foi aplicada na plataforma CulturaEduca, resultando em 21 prob...
Conference Paper
DevOps and continuous delivery have significantly impacted the organizational structures of development and infrastructure groups in software-producing organizations. Our research revealed the different options adopted by the software industry to organize such groups, unveiling why different organizations adopt distinct structures and how organizat...
Preprint
Full-text available
p>Machine Learning (ML) has grown in popularity in the software industry due to its ability to solve complex problems. Developing ML Systems involves more uncertainty and risk because it requires identifying a business opportunity and managing the source code, data, and trained model. Our research aims to identify the existing practices used in the...
Preprint
Full-text available
p>DevOps and continuous delivery have impacted the organizational structures of development and infrastructure groups in software-producing organizations. Our research aims at revealing the different options adopted by the software industry to organize such groups, understanding why different organizations adopt distinct structures, and discovering...
Preprint
Frameworks are essential for software development, providing code design and reuse for its users. Well-known Java frameworks and APIs such as Spring, JUnit, and JPA rely on metadata usage, commonly defined by code annotations. Those frameworks use the Java Reflection API for consuming and processing these annotations. Code elements usually have som...
Article
Full-text available
DevOps and continuous delivery have impacted the organizational structures of development and infrastructure groups in software-producing organizations. Our research aims at revealing the different options adopted by the software industry to organize such groups, understanding why different organizations adopt distinct structures, and discovering h...
Article
Full-text available
The Annotation Visualizer (AVisualizer) is a software visualization tool for displaying code annotations distribution in a given target Java-based software system. Implemented as a web application, it can extract annotations usage from the target source code and display it using a hierarchical circle packing approach. Using a dedicated suite of sof...
Preprint
Full-text available
p>Machine Learning (ML) has grown in popularity in the software industry due to its ability to solve complex problems. Developing ML Systems involves more uncertainty and risk because it requires identifying a business opportunity and managing the source code, data, and trained model. Our research aims to identify the existing practices used in the...
Preprint
Full-text available
p>Machine Learning (ML) has grown in popularity in the software industry due to its ability to solve complex problems. Developing ML Systems involves more uncertainty and risk because it requires identifying a business opportunity and managing the source code, data, and trained model. Our research aims to identify the existing practices used in the...
Preprint
Full-text available
p>Machine Learning (ML) has grown in popularity in the software industry due to its ability to solve complex problems. Developing ML Systems involves more uncertainty and risk because it requires identifying a business opportunity and managing the source code, data, and trained model. Our research aims to identify the existing practices used in the...
Article
Full-text available
Code annotations are used mainly in modern Java software, and their primary purpose is to configure metadata into programmable elements such as methods and classes. The Annotation Sniffer is a stable tool that analyses Java source code and generates a JSON report with code annotations metrics values. In other words, it measures metadata configurati...
Preprint
Full-text available
Context: Code annotation is a feature to define custom metadata about programming elements. Many modern frameworks and APIs use annotations to keep integration less verbose and closer to the corresponding code element. However, contrary to the initial intent, practitioners often complain about the negative impacts of annotations on code readability...
Article
Full-text available
Context: Code annotations is a widely used feature in Java systems to configure custom metadata on programming elements. Their increasing presence creates the need for approaches to assess and comprehend their usage and distribution. In this context, software visualization has been studied and researched to improve program comprehension in differen...
Preprint
Full-text available
p>DevOps and continuous delivery have impacted the organizational structures of development and infrastructure groups in software-producing organizations. Our research aims at revealing the different options adopted by the software industry to organize such groups, understanding why different organizations adopt distinct structures, and discovering...
Preprint
Full-text available
Context: DevOps responds to the growing need of companies to streamline the software development process and, thus, have experienced a widespread adoption in the past few years. However, successful adoption of DevOps requires companies to address important cultural and organizational changes. Understanding the organizational structure and character...
Preprint
Full-text available
DevOps and continuous delivery have impacted the organizational structures of development and infrastructure groups in software-producing organizations. Our research aims at revealing the different options adopted by the software industry to organize such groups, understanding why different organizations adopt distinct structures, and discovering h...
Preprint
Full-text available
p>DevOps and continuous delivery have impacted the organizational structures of development and infrastructure groups in software-producing organizations. Our research aims at revealing the different options adopted by the software industry to organize such groups, understanding why different organizations adopt distinct structures, and discovering...
Preprint
Full-text available
DevOps and continuous delivery have impacted the organizational structures of development and infrastructure groups in software-producing organizations. Our research aims at revealing the different options adopted by the software industry to organize such groups, understanding why different organizations adopt distinct structures, and discovering h...
Preprint
Full-text available
Code annotations is a widely used feature in Java systems to configure custom metadata on programming elements. Their increasing presence creates the need for approaches to assess and comprehend their usage and distribution. In this context, software visualization has been studied and researched to improve program comprehension in different aspects...
Article
Full-text available
With the evolution of technology, maps have changed how they are produced and consumed. In the 1990s, along with the internet uprise, printed and digital maps began to be shared and viewed on the web, which provided more significant user interaction with the map and geographic data. However, the ease of creating interactive maps using computational...
Conference Paper
Full-text available
Digital games are also a software product. However, games have a fun requirement and tightly coupled UI, which makes them hard to test. Nevertheless, they are made of code and might also benefit from the advantages that automated tests bring to enterprise software systems. In this paper, we discuss two categories of automated tests for games, focus...
Article
Context: To accelerate time-to-market and improve customer satisfaction, software-producing organizations have adopted continuous delivery practices, impacting the relations between development and infrastructure professionals. Yet, no substantial literature has substantially tackled how the software industry structures the organization of developm...
Conference Paper
Full-text available
Although Open Source Software (OSS) maintainers devote a significant proportion of their work to coding tasks, great maintainers must excel in many other activities beyond coding. Maintainers should care about fostering a community, helping new members to find their place, while also saying “no” to patches that although are well-coded and well-test...
Conference Paper
In this research, we aim to understand the organizational structures adopted by software-producing organizations for managing IT technical teams in a continuous delivery context. Following Grounded Theory guidelines, we interviewed 46 IT professionals to investigate how organizations pursuing continuous delivery organize their development and opera...
Conference Paper
Full-text available
Java developers make extensive use of code annotations since their introduction in version 5 of the language. They are inserted directly on the source code for custom metadata configuration , similar to C# attributes. The software engineering community has few works investigating their usage and impact on source code. Being able to visualize charac...
Article
Manufacturers are creating powerful CPUs by exponentially increasing the number of cores over time, as producing faster sequential chips has become more expensive. Developers must now employ parallel strategies and design parallel algorithms if they want to use every resource available in the machine. Still, many successful open-source projects are...
Preprint
Full-text available
Context: Continuous delivery practices accelerate time to market and improve customer satisfaction. Although recent related work suggests that organizations employing continuous delivery should promote a collaborative culture among different IT teams, there is no substantial literature tackling how organizations should organize their teams to excel...
Conference Paper
Over the last decades, the Free/Libre/Open Source Software (FLOSS) phenomenon has been a topic of study and a source of real-life artifacts for software engineering research. A FLOSS project usually has a community around its project, organically producing informative resources to describe how, when, and why a particular change occurred in the sour...
Preprint
Full-text available
Based on Grounded Theory guidelines, we interviewed 27 IT professionals to investigate how organizations pursuing continuous delivery should organize their development and operations teams. In this paper, we present the discovered organizational structures: (1) siloed departments, (2) classical DevOps, (3) cross-functional teams, and (4) platform t...
Article
Full-text available
Since the introduction of code annotations in the Java language,this feature has been widely adopted by software developers across the globe. Main enterprise frameworks make extensive use of code annotations as a replacement for XML based solutions. Code annotations are inserted directlyon code elements, providing a simple way to introduce custom m...
Preprint
In this work, we employed Grounded Theory to investigate how organizations pursuing continuous delivery should organize their development and operations teams. We collected data from 27 IT professionals. After a careful analysis, we started the elaboration of a taxonomy with four patterns of organizational structures: (1) siloed departments, (2) cl...
Preprint
BACKGROUND Health Informatics Systems (HIS) draw more attention as their benefits are further explored and becoming more evident. The improvement of patient care and the quality of health services are examples of such advantages. Nevertheless, proprietary systems are not always viable due to their high costs. OBJECTIVE We investigated the benefits...
Article
Full-text available
Government and academia share concerns for efficiently and effectively servicing societal demands, which includes the development of e-government software. Government-academia partnerships can be a valuable approach for improving productivity in achieving these goals. However, governmental and academic institutions tend to have very different agend...
Article
Full-text available
DevOpsis a collaborative and multidisciplinary organizational effort to automate continuous delivery of new software updates while guaranteeing their correctness and reliability. The present survey investigates and discusses DevOps challenges from the perspective of engineers, managers, and researchers. We review the literature and develop a DevOps...
Conference Paper
Full-text available
The C# attributes have been available since the release of this language as a means to configure custom metadata on code elements. Being very similar to Java annotations, they are both introduced directly in the source code. Several C# frameworks such as NUnit, Unity Game Engine, and JSON.net use attributes to allow applications to configure custom...
Preprint
Full-text available
DevOps is a collaborative and multidisciplinary organizational effort to automate continuous delivery of new software updates while guaranteeing their correctness and reliability. The present survey investigates and discusses DevOps challenges from the perspective of engineers, managers, and researchers. We review the literature and develop a DevOp...
Conference Paper
Full-text available
While there is a wide variety of both open source and proprietary source code static analyzers available in the market, each of them usually performs better in a small set of problems, making it hard to choose one single tool to rely on when examining a program looking for bugs in the source code. Combining the analysis of different tools may reduc...
Chapter
Full-text available
One of the software industries with the most significant growth nowadays is the mobile application industry. In this paper, we study the differences between two mobile development approaches: (i) native (the development that’s specific for each platform) and (ii) cross-platform (when a standard code is shared among different platforms). Inexperienc...
Chapter
The Open Source Software (OSS) ecosystem and community has evolved enormously from the first edition of the OSS conference that took place in Genoa (Italy) in 2005. Such evolution happened in every aspect of OSS including research, technology, and business pushing its adoption to an unpredictable scale. Nowadays, it is almost impossible for people...
Conference Paper
Full-text available
Software Engineering courses often emphasize teaching methodologies and concepts in small and controlled environments over teaching, say, maintenance aspects of full-fledged real software systems. This decision is partly justified due to the difficulty of bringing to the context of a classroom a real software project. The widespread presence of ope...
Book
This book constitutes revised selected papers from the 10th Brazilian Workshop on Agile Methods, WBMA 2019, held in Belo Horizonte, Brazil, in September 2019. The 6 full and 4 short papers presented in this volume were carefully reviewed and selected from 21 submissions. Accepted papers focus on agile methods; experimental studies with agile; softw...
Conference Paper
Code annotations are extensively used by Java developers, especially in enterprise frameworks and APIs such as Spring and Java EE. Different code elements that frequently share some similarities, sometimes, repeat the annotations. The goal of this paper is to evaluate whether a real-world system could use code conventions as a means to avoid replic...
Conference Paper
Full-text available
From 1991 to 2015, 60 papers published in the ASE and SCAM conferences introduced static analysis prototypes or tools as academic software developed to support research. In this study, we characterize such academic software concerning sustainability. We performed an exploratory study regarding publicization (whether the software is available from a...
Conference Paper
Full-text available
Traditional Software Engineering courses commonly prioritize the teaching of methodologies and concepts in small and controlled environments. This decision is partly justified by the difficulty of bringing real software projects to the classroom. The ubiquity of Open Source Software (OSS) projects contributes to mitigating this problem. Several ins...
Conference Paper
Full-text available
Since the introduction of code annotations in the Java language, this feature has been widely adopted by software developers across the globe. Main enterprise frameworks make extensive use of code annotations as a replacement for XML based solutions. Code annotations are inserted directly on code elements, providing a simple way to introduce custom...
Chapter
Full-text available
Government and academia can collaborate on bringing innovation and filling design-reality gaps in e-government projects. However, differences in project management methods employed by the organizations is often a challenge for collaborative works. Bearing that in mind, we investigated a 30-month government-academia partnership to find appropriate w...
Chapter
Full-text available
Performing source code static analysis during the software development cycle is a difficult task. There are different static analyzers available, and each of them usually works better in a small subset of problems, making it hard to choose a single tool. Combining the analysis of different tools solves this problem, but brings about other problems,...
Chapter
Full-text available
Software release planning is crucial to software projects that adopt incremental development. Open source projects depend on their globally distributed maintainers’ communities who share project information, usually described in the software project repository as issues, to plan the contents and timing of the next releases. This paper introduces an...
Article
Full-text available
Due to the constant evolution of technology, each day brings new programming languages, development paradigms, and ways of evaluating processes. This is no different with source code metrics, where there is always new metric classes. To use a software metric to support decisions, it is necessary to understand how to perform the metric collection, c...
Article
Full-text available
For many software development teams, the first aspects that come to mind regarding Continuous Delivery (CD) are the operational challenges and the competitive benefits. In our experience, CD was much more: it was a survival technique. This article presents how and why we applied CD in a large governmental project for the development of a Collaborat...
Article
Full-text available
Code annotation is a language feature that enables the introduction of custom metadata on programming elements. In Java, this feature was introduced on version 5, and today it is widely used by main enterprise application frameworks and APIs. Although this language feature potentially simplifies metadata configuration, its abuse and misuse can redu...
Conference Paper
Full-text available
Code annotation allows the introduction of custom metadata on programming elements directly on the source code. In Java, it is used extensively by enterprise applications and frameworks. Although it has become popular, there are few studies dedicated to the analysis and assessment of its usage. For instance, it is unknown the impact that annotation...
Conference Paper
Full-text available
The Brazilian Public Software (SPB) is a program promoted by the Brazilian Federal Government to foster sharing and collaboration on Free/Libre/Open Source Software (FLOSS) solutions for the public administration. In this context, a public software is considered a public good and the Federal Government assumes some responsibilities related to its u...
Conference Paper
Full-text available
The federation of social networks aims at integrating users by means of a decentralized structure, enabling the interoperability among multiple social networks in a transparent way. Despite a few isolated initiatives in federating open social networks, there is no adoption of any standard, which hinders the emergence of new, effective federated sys...
Conference Paper
Full-text available
Free/Libre/Open Source Software (FLOSS) communities have produced a large amount of valuable software that is directly or indirectly used daily by any person with access to a computer. The field of Software Engineering studies processes, mechanisms, tools, and frameworks for the development of software artifacts. Historically, however, most of Soft...