Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Roberto da Silva Bigonha is active.

Publication


Featured researches published by Roberto da Silva Bigonha.


Journal of Systems and Software | 2012

Identifying thresholds for object-oriented software metrics

Kecia Aline Marques Ferreira; Mariza Andrade da Silva Bigonha; Roberto da Silva Bigonha; Luiz F. O. Mendes; Heitor C. Almeida

Abstract: Despite the importance of software metrics and the large number of proposed metrics, they have not been widely applied in industry yet. One reason might be that, for most metrics, the range of expected values, i.e., reference values are not known. This paper presents results of a study on the structure of a large collection of open-source programs developed in Java, of varying sizes and from different application domains. The aim of this work is the definition of thresholds for a set of object-oriented software metrics, namely: LCOM, DIT, coupling factor, afferent couplings, number of public methods, and number of public fields. We carried out an experiment to evaluate the practical use of the proposed thresholds. The results of this evaluation indicate that the proposed thresholds can support the identification of classes which violate design principles, as well as the identification of well-designed classes. The method used in this study to derive software metrics thresholds can be applied to other software metrics in order to find their reference values.


conference on software maintenance and reengineering | 2012

Recommending Refactorings to Reverse Software Architecture Erosion

Ricardo Terra; Marco Tulio Valente; Krzysztof Czarnecki; Roberto da Silva Bigonha

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 maintainers during the task of reversing an architectural erosion process. The paper formally describes first recommendations proposed in our current research and results of their application in a web-based application.


ACM Sigsoft Software Engineering Notes | 2013

Qualitas.class corpus: a compiled version of the qualitas corpus

Ricardo Terra; Luis Fernando Miranda; Marco Tulio Valente; Roberto da Silva Bigonha

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 assist researchers by removing the compilation effort when conducting empirical studies.


Journal of Systems and Software | 2014

Predicting software defects with causality tests

Cesar Couto; Pedro Pires; Marco Tulio Valente; Roberto da Silva Bigonha; Nicolas Anquetil

Abstract In this paper, we propose a defect prediction approach centered on more robust evidences towards causality between source code metrics (as predictors) and the occurrence of defects. More specifically, we rely on the Granger causality test to evaluate whether past variations in source code metrics values can be used to forecast changes in time series of defects. Our approach triggers alarms when changes made to the source code of a target system have a high chance of producing defects. We evaluated our approach in several life stages of four Java-based systems. We reached an average precision greater than 50% in three out of the four systems we evaluated. Moreover, by comparing our approach with baselines that are not based on causality tests, it achieved a better precision.


conference on software maintenance and reengineering | 2012

Uncovering Causal Relationships between Software Metrics and Bugs

Cesar Couto; Christofer Silva; Marco Tulio Valente; Roberto da Silva Bigonha; Nicolas Anquetil

Bug prediction is an important challenge for software engineering research. It consist in looking for possible early indicators of the presence of bugs in a software. However, despite the relevance of the issue, most experiments designed to evaluate bug prediction only investigate whether there is a linear relation between the predictor and the presence of bugs. However, it is well known that standard regression models cannot filter out spurious relations. Therefore, in this paper we describe an experiment to discover more robust evidences towards causality between software metrics (as predictors) and the occurrence of bugs. For this purpose, we have relied on Granger Causality Test to evaluate whether past changes in a given time series are useful to forecast changes in another series. As its name suggests, Granger Test is a better indication of causality between two variables. We present and discuss the results of experiments on four real world systems evaluated over a time frame of almost four years. Particularly, we have been able to discover in the history of metrics the causes - in the terms of the Granger Test - for 64% to 93% of the defects reported for the systems considered in our experiment.


Software - Practice and Experience | 2015

A recommendation system for repairing violations detected by static architecture conformance checking

Ricardo Terra; Marco Tulio Valente; Krzysztof Czarnecki; Roberto da Silva Bigonha

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 systems architect. Moreover, the architects have scored 82% of these recommendations as having moderate or major complexity. Copyright


Journal of Software Engineering Research and Development | 2014

BugMaps-Granger: a tool for visualizing and predicting bugs using Granger causality tests

Cesar Couto; Marco Tulio Valente; Pedro Pires; André C. Hora; Nicolas Anquetil; Roberto da Silva Bigonha

BackgroundDespite the increasing number of bug analysis tools for exploring bugs in software systems, there are no tools supporting the investigation of causality relationships between internal quality metrics and bugs. In this paper, we propose an extension of the BugMaps tool called BugMaps-Granger that allows the analysis of source code properties that are more likely to cause bugs. For this purpose, we relied on the Granger Causality Test to evaluate whether past changes to a given time series of source code metrics can be used to forecast changes in a time series of defects. Our tool extracts source code versions from version control platforms, calculates source code metrics and defects time series, computes Granger Test results, and provides interactive visualizations for causal analysis of bugs.ResultsWe provide an example of use of BugMaps-Granger involving data from the Equinox Framework and Eclipse JDT Core systems collected during three years. For these systems, the tool was able to identify the modules with more bugs, the average lifetime and complexity of the bugs, and the source code properties that are more likely to cause bugs.ConclusionsWith the results provided by the tool in hand, a maintainer can perform at least two main software quality assurance activities: (a) refactoring the source code properties that Granger-caused bugs and (b) improving unit tests coverage in classes with more bugs.


Computer Languages, Systems & Structures | 2015

An on-the-fly grammar modification mechanism for composing and defining extensible languages

Leonardo Vieira dos Santos Reis; Vladimir Oliveira Di Iorio; Roberto da Silva Bigonha

Adaptable Parsing Expression Grammar (APEG) is a formal method for defining the syntax of programming languages. It provides an on-the-fly mechanism to perform modifications of the syntax of the language during parsing time. The primary goal of this dynamic mechanism is the formal specification and the automatic parser generation for extensible languages. In this paper, we show how APEG can be used for the definition of the extensible languages SugarJ and Fortress, clarifying many aspects of the syntax of these languages. We also show that the mechanism for on-the-fly modification of syntax rules can be useful for defining grammars in a modular way, implementing almost all types of language composition in the context of specification of extensible languages. HighlightsWe evaluate an adaptable model based on Parsing Expressions Grammars, called APEG.we define the syntax of SugarJ and Fortress using APEG.We analyze the flexible mechanism of APEG to change the grammar on-the-fly.The flexibility to modify grammars allows APEG to reuse other grammars definitions.The mechanism of on-the-fly modification of grammars allows composing languages.


Science of Computer Programming | 2014

Efficient static checker for tainted variable attacks

Andrei Rimsa; Marcelo d'Amorim; Fernando Magno Quintão Pereira; Roberto da Silva Bigonha

Tainted flow attacks originate from program inputs maliciously crafted to exploit software vulnerabilities. These attacks are common in server-side scripting languages, such as PHP. In 1997, Orbaek and Palsberg formalized the problem of detecting these exploits as an instance of type-checking, and gave an O(V^3) algorithm to solve it, where V is the number of program variables. A similar algorithm was, ten years later, implemented on the Pixy tool. In this paper we give an O(V^2) solution to the same problem. Our solution uses Bodik et al.s extended Static Single Assignment (e-SSA) program representation. The e-SSA form can be efficiently computed and it enables us to solve the problem via a sparse dataflow analysis. Using the same infrastructure, we compared a state-of-the-art dataflow solution with our technique. Both approaches have detected 36 vulnerabilities in well known PHP programs. Our results show that our approach tends to outperform the dataflow algorithm for larger inputs. We have reported the new bugs that we found, and an implementation of our algorithm is publicly available at https://github.com/rimsa/tainted-phc.git.


Computer Languages, Systems & Structures | 2009

A transformational language for mutant description

Adenilso da Silva Simão; José Carlos Maldonado; Roberto da Silva Bigonha

Mutation testing has been used to assess the quality of test case suites by analyzing the ability in distinguishing the artifact under testing from a set of alternative artifacts, the so-called mutants. The mutants are generated from the artifact under testing by applying a set of mutant operators, which produce artifacts with simple syntactical differences. The mutant operators are usually based on typical errors that occur during the software development and can be related to a fault model. In this paper, we propose a language-named MuDeL (MUtant DEfinition Language)-for the definition of mutant operators, aiming not only at automating the mutant generation, but also at providing precision and formality to the operator definition. The proposed language is based on concepts from transformational and logical programming paradigms, as well as from context-free grammar theory. Denotational semantics formal framework is employed to define the semantics of the MuDeL language. We also describe a system-named mudelgen-developed to support the use of this language. An executable representation of the denotational semantics of the language is used to check the correctness of the implementation of mudelgen. At the very end, a mutant generator module is produced, which can be incorporated into a specific mutant tool/environment.

Collaboration


Dive into the Roberto da Silva Bigonha's collaboration.

Top Co-Authors

Avatar

Mariza Andrade da Silva Bigonha

Universidade Federal de Minas Gerais

View shared research outputs
Top Co-Authors

Avatar

Marco Tulio Valente

Universidade Federal de Minas Gerais

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Kecia Aline Marques Ferreira

Centro Federal de Educação Tecnológica de Minas Gerais

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Cesar Couto

Centro Federal de Educação Tecnológica de Minas Gerais

View shared research outputs
Top Co-Authors

Avatar

Fernando Magno Quintão Pereira

Universidade Federal de Minas Gerais

View shared research outputs
Top Co-Authors

Avatar

Ricardo Terra

Universidade Federal de Lavras

View shared research outputs
Top Co-Authors

Avatar

André C. Hora

Universidade Federal de Minas Gerais

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge