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

  • Authors:
  • Roberta Coelho;Arndt von Staa;Uirá Kulesza;Awais Rashid;Carlos Lucena

  • Affiliations:
  • Informatics and Applied Mathematics Department (DIMAp), Federal University of Rio Grande do Norte, Brazil;Computer Science Department, Pontifical Catholic University of Rio de Janeiro, Brazil;Informatics and Applied Mathematics Department (DIMAp), Federal University of Rio Grande do Norte, Brazil;Computing Department, Lancaster University, Lancaster, UK and ícole des Mines de Nantes, France;Computer Science Department, Pontifical Catholic University of Rio de Janeiro, Brazil

  • Venue:
  • Information Sciences: an International Journal
  • Year:
  • 2011

Quantified Score

Hi-index 0.07

Visualization

Abstract

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.