Analyzing Exception Flows of Aspect-Oriented Programs *

The goal of exception handling mechanisms is to make programs more reliable and robust. However, the integration of exception handling mechanisms with aspect-oriented languages raises unique issues. This paper presents a PhD work whose goal was to investigate such issues. The main contributions of this work were the following: (i) to perform the first exploratory study aiming at assessing the error proneness of AOP mechanisms on exception flows of programs; (ii) the development of SAFE (Static Analysis for the Flow of Exceptions), an exception-flow analysis tool for AspectJ programs; (iii) the identification of a set of bug patterns on the exception handling code of AO systems; and (iii) the definition of an approach that enables the developer to find faults on the exception handling code statically.

[1]  Roger T. Alexander,et al.  A Candidate Fault Model for AspectJ Pointcuts , 2006, 2006 17th International Symposium on Software Reliability Engineering.

[2]  Auri Marcelo Rizzo Vincenzi,et al.  Control and data flow structural testing criteria for aspect-oriented programs , 2007, J. Syst. Softw..

[3]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[4]  Cláudio Sant'Anna,et al.  Evolving software product lines with aspects , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[5]  Cláudio Sant'Anna,et al.  On the Impact of Aspectual Decompositions on Design Stability: An Empirical Study , 2007, ECOOP.

[6]  Jianjun Zhao,et al.  On Identifying Bug Patterns in Aspect-Oriented Programs , 2007, 31st Annual International Computer Software and Applications Conference (COMPSAC 2007).

[7]  Carlos José Pereira de Lucena,et al.  JAT: A Test Automation Framework for Multi-Agent Systems , 2007, 2007 IEEE International Conference on Software Maintenance.

[8]  Uirá Kulesza,et al.  Improving architecture testability with patterns , 2005, OOPSLA '05.

[9]  Tao Xie,et al.  Automated Generation of Pointcut Mutants for Testing Pointcuts in AspectJ Programs , 2008, 2008 19th International Symposium on Software Reliability Engineering (ISSRE).

[10]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[11]  Roberta Coelho,et al.  Using interfaces to support the testing of crosscutting features , 2006, OOPSLA '06.

[12]  Carlos José Pereira de Lucena,et al.  Modularizing design patterns with aspects: a quantitative study , 2005, AOSD '05.

[13]  Carlos José Pereira de Lucena,et al.  Assessing the Impact of Aspects on Exception Flows: An Exploratory Study , 2008, ECOOP.

[14]  David Notkin,et al.  Detecting Redundant Unit Tests for AspectJ Programs , 2006, 2006 17th International Symposium on Software Reliability Engineering.

[15]  Martin P. Robillard,et al.  Static analysis to support the evolution of exception structure in object-oriented systems , 2003, TSEM.

[16]  Thomas R. Gulledge,et al.  Software Engineering Economics and Declining Budgets , 1994 .

[17]  Arie van Deursen,et al.  Discovering faults in idiom-based exception handling , 2006, ICSE '06.

[18]  Sérgio Soares,et al.  Distribution and persistence as aspects , 2006, Softw. Pract. Exp..

[19]  Gregor Kiczales,et al.  Design pattern implementation in Java and aspectJ , 2002, OOPSLA '02.

[20]  Carlos José Pereira de Lucena,et al.  Unveiling and taming liabilities of aspects in the presence of exceptions: A static analysis based approach , 2011, Inf. Sci..

[21]  Cecília M. F. Rubira,et al.  Extracting Error Handling to Aspects: A Cookbook , 2007, 2007 IEEE International Conference on Software Maintenance.

[22]  Jørgen Lindskov Knudsen,et al.  Advances in Exception Handling Techniques , 2001, Lecture Notes in Computer Science.

[23]  Chen Fu,et al.  Exception-Chain Analysis: Revealing Exception Handling Architecture in Java Server Applications , 2007, 29th International Conference on Software Engineering (ICSE'07).

[24]  Ruzanna Chitchyan,et al.  Persistence as an aspect , 2003, AOSD '03.

[25]  David A. Thomas The Deplorable State of Class Libraries , 2002, J. Object Technol..

[26]  Tao Xie,et al.  A framework and tool supports for generating test inputs of AspectJ programs , 2006, AOSD.

[27]  Paulo Marques,et al.  Exception Handling: A Field Study in Java and .NET , 2007, ECOOP.

[28]  Anand R. Tripathi,et al.  Issues with Exception Handling in Object-Oriented Systems , 1997, ECOOP.

[29]  Uirá Kulesza,et al.  A catalogue of bug patterns for exception handling in aspect-oriented programs , 2008 .