Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Henrique Rebêlo

dblp:27/5017 · DBLP profile ↗
← Back
12ranked-venue papers
7as first author
1since 2021 · last 2021
—ORCID · none

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

Software engineering, systems software and programming languages · 10 · 7 first-author · 1 since 2021Artificial intelligence and machine learning · 4 · 3 first-authorTheory of computation · 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
Program analysis · 33% Program verification · 33% Debugging and program repair · 33%

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

TopicWeightPapersLastEvidence papers
Debugging and program repair
fault localization
0.112012
SYMDIFF: A Language-Agnostic Semantic Diff Tool for Imperative Programs · CAV 2012
Program verification › equivalence checking
program equivalence checking
0.112012
SYMDIFF: A Language-Agnostic Semantic Diff Tool for Imperative Programs · CAV 2012
Program analysis › differential program analysis
semantic difference detection
0.112012
SYMDIFF: A Language-Agnostic Semantic Diff Tool for Imperative Programs · CAV 2012

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

semantic diffing · 0.1SMT solving · 0.1
YearPublicationVenuePosition
2021 Demystifying the Challenges of Formally Specifying API Properties for Runtime Verification
abstract
Runtime Verification (RV) is a technique to monitor formally-specified properties of the software during its execution. RV has shown to be very effective for bug finding. Unfortunately, RV typically relies on formal specification languages and learning those languages be costly for developers. This paper reports on a study to assess the challenges to specify API properties for the purpose of RV. To that end, we wrote SIESTA, a minimalist specification language, extending Java with two features (the ability to catch calls to specified methods and the ability to access the event history of a given object), and asked inexperienced developers (students) to write specifications in that language for certain parts of the Java API. Among our findings, we observed that 40% of the specifications written by the students matched the ground truth perfectly. The main messages of this work are that 1) it is feasible to use a simple imperative language for specifying properties without significant loss of generality; and that 2) developers are capable of writing specifications in the (programming) language they feel comfortable.
Leopoldo Teixeira, Breno Miranda, Henrique Rebêlo, Marcelo d'Amorim
ICST3
2016 Assessing Idioms for a Flexible Feature Binding Time
abstract
In software product lines development, it is sometimes important to provide a flexible binding time for features such that developers can choose between static or dynamic feature activation. For example, software products designed for devices with constrained resources may use a static binding time to avoid the performance overhead introduced by dynamic binding time activation. However, other devices can exploit binding time flexibility to support products with a dynamic binding time for some of their features. To implement this kind of flexibility in a modular way, we can define AspectJ-based idioms. Researchers have proposed Edicts, an idiom based on AspectJ and design patterns. In this article, we argue that this idiom leads to an increase in code duplication, scattering, tangling and size, which can hamper code reuse, maintenance and understanding. To mitigate such issues, this paper proposes three idioms based on aspect-oriented programming to implement flexible feature binding. We apply our three idioms, along with Edicts, to implement a flexible binding time for features in four different applications. By doing so, we were able to assess the resulting implementations by using software metrics that judge code-quality factors. Our evaluation suggests that our idioms reduce the above-mentioned problems when implementing flexible feature binding for the selected features.
Rodrigo Andrade, Márcio Ribeiro 0001, Henrique Rebêlo, Paulo Borba, Vaidas Gasiunas, Lucas Satabin
Comput. J.3
2013 Towards Modularly Comparing Programs Using Automated Theorem Provers
Chris Hawblitzel, Ming Kawaguchi, Shuvendu K. Lahiri, Henrique Rebêlo
CADE4
2013 Quantifying the effects of Aspectual Decompositions on Design by Contract Modularization: a Maintenance Study
abstract
Although it is assumed that the implementation of design by contract is better modularized by means of aspect-oriented (AO) programming, there is no empirical evidence on the effectiveness of AO for modularizing non-trivial design by contract code in realistic development scenarios. This paper reports a quantitative and qualitative case study that evolves a real-life application to assess various facets of the adequacy of aspects for modularizing the design by contract concern. Our evaluation focused upon a number of system changes that are typically performed during software maintenance tasks. The study was driven by an analysis of fundamental modularity attributes, such as separation of concerns, coupling, conciseness, and change propagation. We have found that AO techniques improved separation of concerns and the design stability between the design by contract code and base application code throughout the development scenarios. However, contradicting the general intuition, the AO versions of the system did not present significant gains regarding four classical size metrics we employed.
Henrique Rebêlo, Ricardo Massa Ferreira Lima, Uirá Kulesza, Márcio Ribeiro 0001, Yuanfang Cai, Roberta Coelho, Cláudio Sant'Anna, Alexandre Mota 0001
Int. J. Softw. Eng. Knowl. Eng.1
2013 Optimizing generated aspect-oriented assertion checking code for JML using program transformations: An empirical study
Henrique Rebêlo, Ricardo Massa Ferreira Lima, Gary T. Leavens, Márcio Cornélio, Alexandre Mota 0001, César A. L. de Oliveira
Sci. Comput. Program.1
2012 SYMDIFF: A Language-Agnostic Semantic Diff Tool for Imperative Programs
Shuvendu K. Lahiri, Chris Hawblitzel, Ming Kawaguchi, Henrique Rebêlo
CAV4
2012 Enforcing Contracts for Aspect-oriented programs with Annotations, Pointcuts and Advice
Henrique Rebêlo, Ricardo Massa Ferreira Lima, Alexandre Mota 0001, César A. L. de Oliveira, Márcio Ribeiro 0001
SEKE1
2012 Checking Contracts for AOP using XPIDRs
Henrique Rebêlo, Ricardo Massa Ferreira Lima, Alexandre Mota 0001, César A. L. de Oliveira, Márcio Ribeiro 0001
SEKE1
2011 On the interplay of exception handling and design by contract: an aspect-oriented recovery approach
abstract
Design by Contract (DbC) is a technique for developing and improving functional software correctness through definition of "contracts" between client classes and their suppliers. Such contracts are enforced during runtime and if any of them is violated a runtime error should occur. Runtime assertions checkers (RACs) are a well-known technique that enforces such contracts. Although they are largely used to implement the DbC technique in contemporary languages, like Java, studies have shown that characteristics of contemporary exception handling mechanisms can discard contract violations detected by RACs. As a result, a contract violation may not be reflected in a runtime error, breaking the supporting hypothesis of DbC. This paper presents an error recovery technique for RACs that tackles such limitations. This technique relies on aspect-oriented programming in order to extend the functionalities of existing RACs stopping contract violations from being discarded. We applied the recovery technique on top of five Java-based contemporary RACs (i.e., JML/jml, JML/ajml, JContractor, CEAP, and Jose). Preliminary results have shown that the proposed technique could actually prevent the contract violations from being discarded regardless of the characteristics of the exception handling code of the target application.
Henrique Rebêlo, Roberta Coelho, Ricardo Massa Ferreira Lima, Gary T. Leavens, Marieke Huisman, Alexandre Mota 0001, Fernando Castor Filho
FTfJP@ECOOP1
2011 Assessing the Impact of Aspects on Design By Contract Effort: A Quantitative Study
Henrique Rebêlo, Ricardo Massa Ferreira Lima, Uirá Kulesza, Cláudio Sant'Anna, Roberta Coelho, Alexandre Mota 0001, Márcio Ribeiro 0001, César A. L. de Oliveira
SEKE1
2010 An Aspect-based Approach for Concurrent Programming using CSP Features
José Elias Araújo, Henrique Rebêlo, Ricardo Massa Ferreira Lima, Alexandre Mota 0001, Fernando Castor Filho, Tiago Lima, Juliana Lucena, Filipe Lima
ICSOFT (2)2
2008 A JML Compiler Based on AspectJ
abstract
The Java Modeling Language (JML) is a behavioral interface specification language (BISL) designed for Java. It was developed with the aim of improving the functional software correctness of Java applications. The JML compiler(jmlc) generates bytecodes that use the Java reflection mechanism and data structures not supported by Java ME applications. In order to overcome this limitation, we proposethe use of AspectJ to implement a new JML compiler, which generates an instrumented byte code compliant with both Java SE and Java ME applications. The paper also includes a comparative study to demonstrate the quality of the final code generated by our compiler. Results indicate that the overhead in code size produced by our compiler is very small, which is essential for Java ME applications.
Henrique Rebêlo, Ricardo Massa Ferreira Lima, Márcio Cornélio, Sérgio Soares
ICST1