Ricardo Terra

dblp:23/5199 · also Ricardo Terra Nunes Bueno Villela · DBLP profile ↗
← Back
12ranked-venue papers
5as first author
1since 2021 · last 2021
0000-0002-5824-7087ORCID · verified

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

Software engineering, systems software and programming languages · 12 · 5 first-author · 1 since 2021Artificial intelligence and machine learning · 2 · 1 first-authorDatabases, data management, data science and information retrieval · 2Applied, interdisciplinary, general and emerging computing · 1

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

Software engineering, system software, and programming languages
1 paper
Software maintenance and evolution · 100%

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

TopicWeightPapersLastEvidence papers
Software maintenance and evolution › refactoring
refactoring detection
0.512021
RefDiff 2.0: A Multi-Language Refactoring Detection Tool · IEEE Trans. Software Eng. 2021

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

plugin architecture · 0.5code structure tree · 0.5
YearPublicationVenuePosition
2021 RefDiff 2.0: A Multi-Language Refactoring Detection Tool
abstract
Identifying refactoring operations in source code changes is valuable to understand software evolution. Therefore, several tools have been proposed to automatically detect refactorings applied in a system by comparing source code between revisions. The availability of such infrastructure has enabled researchers to study refactoring practice in large scale, leading to important advances on refactoring knowledge. However, although a plethora of programming languages are used in practice, the vast majority of existing studies are restricted to the Java language due to limitations of the underlying tools. This fact poses an important threat to external validity. Thus, to overcome such limitation, in this paper we propose RefDiff 2.0, a multi-language refactoring detection tool. Our approach leverages techniques proposed in our previous work and introduces a novel refactoring detection algorithm that relies on the Code Structure Tree (CST), a simple yet powerful representation of the source code that abstracts away the specificities of particular programming languages. Despite its language-agnostic design, our evaluation shows that RefDiff's precision (96 percent) and recall (80 percent) are on par with state-of-the-art refactoring detection approaches specialized in the Java language. Our modular architecture also enables one to seamlessly extend RefDiff to support other languages via a plugin system. As a proof of this, we implemented plugins to support two other popular programming languages: JavaScript and C. Our evaluation in these languages reveals that precision and recall ranges from 88 to 91 percent. With these results, we envision RefDiff as a viable alternative for breaking the single-language barrier in refactoring research and in practical applications of refactoring detection.
Danilo Silva 0002, João Paulo da Silva, Gustavo Jansen de Souza Santos, Ricardo Terra, Marco Túlio Valente
IEEE Trans. Software Eng.4
2018 A Correlation Analysis between Halstead Complexity Measures and other Software Measures
abstract
Halstead Complexity Measures, proposed in 1977, analyze a software system independently of its underlying programming language (technology) based on the measures number of operators and operands. From these two measures, it calculates other measures namely vocabulary, length, volume, difficulty, programming effort, errors, and testing time. The problem, nevertheless, is that since then the Academy and Industry have been coming up with hundreds of new metrics that differ in their assertions and calculations. Therefore, the objective of this paper is to present a correlation analysis between the eleven Halstead measures and other 27 popular measures proposed over the decades (e.g., LOC, cyclomatic complexity, and efferent coupling) through the inspection of 97 open-source Java systems in order to (i) identify redundancy in measures and (ii) minimize the costs of monitoring and diagnosing software projects, facilitating the task of making measurements. As a result, we identified strong correlations between Halstead measures and other measures, mainly related to size such as quantity of methods, packages, attributes, etc. We also identified direct correlation of Halstead measurements with coupling measures named Afferent and Efferent Coupling, with values ranging from 0.802 to 0.931, which are quite close to the maximum value 1 for a correlation. These results demonstrate that-although there is no perfect correlation-there is enough correlation to hypothesize that there is an overlap of measures with different denominations whose measured results are equivalent.
Rodrigo Tavares Coimbra, Antônio Resende, Ricardo Terra
CLEI3
2018 How do developers use dynamic features? The case of Ruby
Elder Rodrigues Jr., Ricardo Terra
Comput. Lang. Syst. Struct.2
2018 JMove: A novel heuristic and tool to detect move method refactoring opportunities
Ricardo Terra, Marco Túlio Valente, Sergio Miranda, Vitor Sales
J. Syst. Softw.1
2017 Supporting the Specification and Serialization of Planned Architectures in Architecture-Driven Modernization Context
abstract
Architecture-Driven Modernization (ADM) intends to standardize software reengineering by relying on a family of standard metamodels. Knowledge-Discovery Metamodel (KDM) is the main ADM ISO metamodel aiming at representing all aspects of existing legacy systems. One of the internal KDM metamodels is called Structure, responsible for representing architectural abstractions (Layers, Components and Subsystems) and their relationships. Planned Architecture (PA) is an artifact that involves not only the architectural abstractions of the system but also the access rules that must exist between them and be maintained over time. Although PAs are frequently used in Architecture-Conformance Checking processes, up to this moment, there is no contribution showing how to specify and serialize PAs in ADM-based modernization projects. Therefore, in this paper we present an approach that i) involves a DSL (Domain-Specific Language) for the specification of PAs using the Structure metamodel concepts, and ii) proposes a strategy for the serialization of PAs as a Structure metamodel instance without modifying it. We have conducted a comparison between DCL-KDM and other techniques for specifying and generating PAs. The results showed that DCL-KDM is an efficient alternative to to generate instances of the Structure metamodel as a PA and to serialize it.
Andre de S. Landi, Fernando Chagas, Bruno Marinho Santos, Renato S. Costa, Rafael S. Durelli, Ricardo Terra, Valter Vieira de Camargo
COMPSAC (1)6
2016 Mining architectural violations from version history
Cristiano Amaral Maffort, Marco Túlio Valente, Ricardo Terra, Mariza Andrade da Silva Bigonha, Nicolas Anquetil, Andre Hora 0001
Empir. Softw. Eng.3
2015 A recommendation system for repairing violations detected by static architecture conformance checking
abstract
Summary This paper describes a recommendation system that provides refactoring guidelines for maintainers when tackling architectural erosion. The paper formalizes 32 refactoring recommendations to repair violations raised by static architecture conformance checking approaches; it describes a tool—called ArchFix—that triggers the proposed recommendations; and it evaluates the application of this tool in two industrial‐strength systems. For the first system—a 21 KLOC open‐source strategic management system—our approach has indicated correct refactoring recommendations for 31 out of 41 violations detected as the result of an architecture conformance process. For the second system—a 728 KLOC customer care system used by a major telecommunication company—our approach has triggered correct recommendations for 624 out of 787 violations, as asserted by the system's architect. Moreover, the architects have scored 82% of these recommendations as havingmoderateormajorcomplexity. Copyright © 2013 John Wiley & Sons, Ltd.
Ricardo Terra, Marco Túlio Valente, Krzysztof Czarnecki 0001, Roberto da Silva Bigonha
Softw. Pract. Exp.1
2014 Recommending automated extract method refactorings
abstract
Extract Method is a key refactoring for improving program comprehension. However, recent empirical research shows that refactoring tools designed to automate Extract Methods are often underused. To tackle this issue, we propose a novel approach to identify and rank Extract Method refactoring opportunities that are directly automated by IDE-based refactoring tools. Our approach aims to recommend new methods that hide structural dependencies that are rarely used by the remaining statements in the original method. We conducted an exploratory study to experiment and define the best strategies to compute the dependencies and the similarity measures used by the proposed approach. We also evaluated our approach in a sample of 81 extract method opportunities generated for JUnit and JHotDraw, achieving a precision of 48% (JUnit) and 38% (JHotDraw).
Danilo Silva 0002, Ricardo Terra, Marco Túlio Valente
ICPC2
2014 Do developers discuss design?
abstract
Design is often raised in the literature as important to attaining various properties and characteristics in a software system. At least for open-source projects, it can be hard to find evidence of ongoing design work in the technical artifacts produced as part of the development. Although developers usually do not produce specific design documents, they do communicate about design in different ways. In this paper, we provide quantitative evidence that developers address design through discussions in commits, issues, and pull requests. To achieve this, we built a discussions' classifier and automatically labeled 102,122 discussions from 77 projects. Based on this data, we make four observations about the projects: i) on average, 25% of the discussions in a project are about design; ii) on average, 26% of developers contribute to at least one design discussion; iii) only 1% of the developers contribute to more than 15% of the discussions in a project; and iv) these few developers who contribute to a broad range of design discussions are also the top committers in a project.
João Brunet, Gail C. Murphy, Ricardo Terra, Jorge C. A. de Figueiredo, Dalton Serey Guerrero
MSR3
2013 Measuring the Structural Similarity between Source Code Entities (S)
Ricardo Terra, João Brunet, Luis Fernando Miranda, Marco Túlio Valente, Dalton Serey Guerrero, Douglas Castilho 0001, Roberto da Silva Bigonha
SEKE1
2009 A dependency constraint language to manage object-oriented software architectures
abstract
Abstract This paper presents a domain‐specific dependency constraint language that allows software architects to restrict the spectrum of structural dependencies, which can be established in object‐oriented systems. The ultimate goal is to provide architects with means to define acceptable and unacceptable dependencies according to the planned architecture of their systems. Once defined, such restrictions are statically enforced by a tool, thus avoiding silent erosions in the architecture. The paper also presents results from applying the proposed approach to different versions of a real‐world human resource management system. Copyright © 2009 John Wiley & Sons, Ltd.
Ricardo Terra, Marco Túlio Valente
Softw. Pract. Exp.1
2008 Towards a Dependency Constraint Language to Manage Software Architectures
Ricardo Terra, Marco Túlio Valente
ECSA1