Network


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

Hotspot


Dive into the research topics where Roberta Coelho is active.

Publication


Featured researches published by Roberta Coelho.


international conference on software maintenance | 2006

Quantifying the Effects of Aspect-Oriented Programming: A Maintenance Study

Uirá Kulesza; Cláudio Sant'Anna; Alessandro Garcia; Roberta Coelho; Arndt von Staa; Carlos José Pereira de Lucena

One of the main promises of aspect-oriented programming (AOP) is to promote improved modularization of crosscutting concerns, thereby enhancing the software stability in the presence of changes. This paper presents a quantitative study that assesses the positive and negative effects of AOP on typical maintenance activities of a Web information system. The study consists of a systematic comparison between the object-oriented and the aspect-oriented versions of the same application in order to assess to what extent each solution provides maintainable software decompositions. Our analysis was driven by fundamental modularity attributes, such as coupling, cohesion, conciseness, and separation of concerns. We have found that the aspect-oriented design has exhibited superior stability and reusability through the changes, as it has resulted in fewer lines of code, improved separation of concerns, weaker coupling, and lower intra-component complexity


Proceedings of the 2006 international workshop on Software engineering for large-scale multi-agent systems | 2006

Unit testing in multi-agent systems using mock agents and aspects

Roberta Coelho; Uirá Kulesza; Arndt von Staa; Carlos José Pereira de Lucena

In this paper, we present a unit testing approach for MASs based on the use of Mock Agents. Each Mock Agent is responsible for testing a single role of an agent under successful and exceptional scenarios. Aspect-oriented techniques are used, in our testing approach, to monitor and control the execution of asynchronous test cases. We present an implementation of our approach on top of JADE platform, and show how we extended JUnit test framework in order to execute JADE test cases.


IEEE Computer | 2010

Aspect-Oriented Software Development in Practice: Tales from AOSD-Europe

Awais Rashid; Thomas Cottenier; Philip Greenwood; Ruzanna Chitchyan; Regine Meunier; Roberta Coelho; Mario Südholt; Wouter Joosen

Aspect-oriented software development techniques provide a means to modularize crosscutting concerns in software systems. A survey of industrial projects reveals the benefits and potential pitfalls of aspectoriented technologies.The past decade has seen the increased use of aspect-oriented software development (AOSD) technique as a means to modularize crosscutting concerns in software systems, thereby improving a development organizations working practices and return on investment (ROI). Numerous industrial-strength aspect-oriented (AO) programming frameworks exist, including AspectJ, JBoss, and Spring, as do various aspect-oriented analysis and design techniques.The software systems using AOSD that we have studied are medium to large-scale and span a wide range of domains including enterprise systems, e-health, e-transport, telecommunications, Web based information systems, multimedia applications, and workflow systems. Our analysis highlights typical usage patterns of AO techniques-for instance, they are mainly used for modularizing well-known crosscutting problems and incrementally introduced, addressing developmental concerns and other noncore product features first.


international conference on software maintenance | 2007

JAT: A Test Automation Framework for Multi-Agent Systems

Roberta Coelho; Elder Cirilo; Uirá Kulesza; A. von Staa; Awais Rashid; Carlos José Pereira de Lucena

Automated tests have been widely used as a supporting mechanism during software development and maintenance activities. It improves the confidence on software releases as it seeks to uncover regression bugs, and serves as a live documentation which is very useful when evolving systems. Concerning multi agent systems (MASs), some characteristics such as agent autonomy and asynchronous message-based interaction bring a degree of non-determinism which presents new testing challenges. This paper proposes JAT, a framework for building and running MASs test scenarios, which relies on the use of aspect-oriented techniques to monitor the autonomous agents during tests and control the test input of asynchronous test cases. The tool has been developed on top of JADE, a widely used agent platform implemented in Java. We have used JAT on testing 3 different MASs. Our experience shows that JAT can be used to build test scenarios which can achieve high fault-detection effectiveness.


Information Sciences | 2011

Unveiling and taming liabilities of aspects in the presence of exceptions: A static analysis based approach

Roberta Coelho; Arndt von Staa; Uirá Kulesza; Awais Rashid; Carlos José Pereira de Lucena

As aspects extend or replace existing functionality at specific join points in the code, their behavior may raise new exceptions, which can flow through the program execution in unexpected ways. Assuring the reliability of exception handling code in aspect-oriented (AO) systems is a challenging task. Testing the exception handling code is inherently difficult, since it is tricky to provoke all exceptions during tests, and the large number of different exceptions that can happen in a system may lead to the test-case explosion problem. Moreover, we have observed that some properties of AO programming (e.g., quantification, obliviousness) may conflict with characteristics of exception handling mechanisms, exacerbating existing problems (e.g., uncaught exceptions). The lack of verification approaches for exception handling code in AO systems stimulated the present work. This work presents a verification approach based on a static analysis tool, called SAFE, to check the reliability of exception handling code in AspectJ programs. We evaluated the effectiveness and feasibility of our approach in two complementary ways (i) by investigating if the SAFE tool is precise enough to uncover exception flow information and (ii) by applying the approach to three medium-sized ApectJ systems from different application domains.


international conference on software reuse | 2008

Integrating Component and Product Lines Technologies

Elder Cirilo; Uirá Kulesza; Roberta Coelho; Carlos José Pereira de Lucena; Arndt von Staa

In this paper, we explore the integration of product line and component technologies in the context of the product derivation process. In particular, we propose new extensions to our existing model-based product derivation tool, called GenArch, in order to address the new abstractions and mechanisms provided by the Spring and OSGi component models. The GenArch extensions enable the automatic instantiation of product lines and applications - implemented using these component technologies. Moreover, it also enables different levels of customization, from fine-grained configuration of component properties to the automatic selection of components that will compose the final product.


Proceedings of the 15th Conference on Pattern Languages of Programs | 2008

A catalogue of bug patterns for exception handling in aspect-oriented programs

Roberta Coelho; Awais Rashid; Arndt von Staa; James Noble; Uirá Kulesza; Carlos José Pereira de Lucena

Aspects allow a developer to externally add new functionality to a program. This additional functionality may also throw new exceptions that will flow through the program execution until they are handled. Moreover, aspects can also be used to handle exceptions thrown by base code or even other aspects. Unfortunately, exceptions thrown by aspects --- or exceptions that should be handled by them --- may flow through the program execution in unexpected ways leading to failures such as uncaught exceptions or exceptions being caught by the wrong handlers. In a previous empirical study we investigated the causes of such failures in Aspect-Oriented programs. In this paper we present causes of such failures as a catalogue of bug patterns for exception handling in Aspect-Oriented programs.


IEEE Transactions on Software Engineering | 2017

A Framework for Evaluating the Results of the SZZ Approach for Identifying Bug-Introducing Changes

Daniel Alencar da Costa; Shane McIntosh; Weiyi Shang; Uirá Kulesza; Roberta Coelho; Ahmed E. Hassan

The approach proposed by Śliwerski, Zimmermann, and Zeller (SZZ) for identifying bug-introducing changes is at the foundation of several research areas within the software engineering discipline. Despite the foundational role of SZZ, little effort has been made to evaluate its results. Such an evaluation is a challenging task because the ground truth is not readily available. By acknowledging such challenges, we propose a framework to evaluate the results of alternative SZZ implementations. The framework evaluates the following criteria: (1) the earliest bug appearance, (2) the future impact of changes, and (3) the realism of bug introduction. We use the proposed framework to evaluate five SZZ implementations using data from ten open source projects. We find that previously proposed improvements to SZZ tend to inflate the number of incorrectly identified bug-introducing changes. We also find that a single bug-introducing change may be blamed for introducing hundreds of future bugs. Furthermore, we find that SZZ implementations report that at least 46 percent of the bugs are caused by bug-introducing changes that are years apart from one another. Such results suggest that current SZZ implementations still lack mechanisms to accurately identify bug-introducing changes. Our proposed framework provides a systematic mean for evaluating the data that is generated by a given SZZ implementation.


mining software repositories | 2016

Understanding the exception handling strategies of Java libraries: an empirical study

Demóstenes Sena; Roberta Coelho; Uirá Kulesza; Rodrigo Bonifácio

This paper presents an empirical study whose goal was to investigate the exception handling strategies adopted by Java libraries and their potential impact on the client applications. In this study, exception flow analysis was used in combination with manual inspections in order: (i) to characterize the exception handling strategies of existing Java libraries from the perspective of their users; and (ii) to identify exception handling anti-patterns. We extended an existing static analysis tool to reason about exception flows and handler actions of 656 Java libraries selected from 145 categories in the Maven Central Repository. The study findings suggest a current trend of a high number of undocumented API runtime exceptions (i.e., @throws in Javadoc) and Unintended Handler problem. Moreover, we could also identify a considerable number of occurrences of exception handling anti-patterns (e.g. Catch and Ignore). Finally, we have also analyzed 647 bug issues of the 7 most popular libraries and identified that 20.71% of the reports are defects related to the problems of the exception strategies and anti-patterns identified in our study. The results of this study point to the need of tools to better understand and document the exception handling behavior of libraries.


brazilian symposium on software engineering | 2011

Agile Testing of Exceptional Behavior

Rafael Di Bernardo; Ricardo Sales; Fernando Castor; Roberta Coelho; Nélio Cacho; Sérgio Soares

The lack of testing and a priori design of the exceptional behavior are causing many of the problems found in the use of exception handling. As a consequence, exceptions flow in unforeseen ways during the execution of a software system, having a negative impact on reliability. This paper presents an agile approach to test the exceptional behavior of a system. It supports developers in checking whether exceptions, at runtime, travel through the expected paths. It is agile because tests are written without the need for extra documentation and are, themselves, considered live documentation. We have evaluated our approach by applying it to different versions of two production quality Java open source applications (i.e., aTunes and JEdit). Using the proposed approach, we could find twelve bugs --- eight of them previously unknown by the open source projects. In addition, from the viewpoint of automated tests as documentation artifacts, the proposed approach pointed out several differences between versions of the two target systems. We have implemented the proposed approach as an extension of the JUnit framework.

Collaboration


Dive into the Roberta Coelho's collaboration.

Top Co-Authors

Avatar

Uirá Kulesza

Federal University of Rio Grande do Norte

View shared research outputs
Top Co-Authors

Avatar

Arndt von Staa

Pontifical Catholic University of Rio de Janeiro

View shared research outputs
Top Co-Authors

Avatar

Carlos José Pereira de Lucena

Pontifical Catholic University of Rio de Janeiro

View shared research outputs
Top Co-Authors

Avatar

Cláudio Sant'Anna

Federal University of Bahia

View shared research outputs
Top Co-Authors

Avatar

Nélio Cacho

Federal University of Rio Grande do Norte

View shared research outputs
Top Co-Authors

Avatar

Alessandro Garcia

Pontifical Catholic University of Rio de Janeiro

View shared research outputs
Top Co-Authors

Avatar

Demóstenes Sena

Federal University of Rio Grande do Norte

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Sérgio Soares

Federal University of Pernambuco

View shared research outputs
Researchain Logo
Decentralizing Knowledge