Ricardo Terra

Learn More
In this paper, we compare and illustrate the use of three static architecture conformance techniques , namely dependency structure matrices, source code query languages, and reflexion models. To highlight the similarities and differences between the three techniques, we describe how some of their available supporting tools can be applied to specify and(More)
This paper presents a domain-specific dependency constraint language that allows software architects to restrict the spectrum of structural dependencies that 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(More)
—Architectural erosion is a recurrent problem faced by software architects. Despite this fact, the process is usually tackled in ad hoc way, without adequate tool support at the architecture level. To address this issue, we describe the preliminary design of a recommendation system whose main purpose is to provide refactoring guidelines for developers and(More)
OBJECTIVE Endobronchial ultrasound-guided transbronchial needle aspiration (EBUS-TBNA) is a minimally invasive, safe and accurate method for collecting samples from mediastinal and hilar lymph nodes. This study focused on the initial results obtained with EBUS-TBNA for lung cancer and lymph node staging at three teaching hospitals in Brazil. METHODS This(More)
This paper documents a compiled version of the Qualitas Corpus named Qualitas.class Corpus. We provide compiled Java projects for the 111 systems included in the corpus. We also gathered a large amount of metrics data (such as measurements from complexity, coupling, and CK metrics) about the systems. By making Qualitas.class Corpus public, our goal is to(More)
This paper presents a dependency constraint language that allows software architects to restrict the spectrum of dependencies that can be presented in a given software system. The ultimate goal is to provide designers with means to define acceptable and unacceptable dependencies according to the planned system architecture. Once defined, such restrictions(More)
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(More)
This paper describes a recommendation system that provides refactoring guidelines for maintain-ers 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(More)
—Similarity coefficients are widely used in software engineering for several purposes, such as identification of refac-toring opportunities and system remodularizations. Although the literature provides several similarity coefficients that vary on the computing strategy, there is a tendency among researchers to make habitual use of certain coefficients that(More)