On the modularization and reuse of exception handling with aspects

This paper presents an in-depth study of the adequacy of the AspectJ language for modularizing and reusing exception-handling code. The study consisted of refactoring existing applications so that the code responsible for implementing error-handling strategies was moved to newly created exception handler aspects. We have performed quantitative assessments of five systems—four object-oriented and one aspect-oriented—based on four key quality attributes, namely separation of concerns, coupling, cohesion, and conciseness. Our investigation also included a multi-perspective analysis of the refactored systems, including (i) the extent to which error-handling aspects can be reused, (ii) the beneficial and harmful aspectization scenarios for exception handling, and (iii) the scalability of AOP to support the modularization of exception handling in the presence of other aspects. Copyright © 2009 John Wiley & Sons, Ltd.

[1]  Ian T. Foster,et al.  Globus: a Metacomputing Infrastructure Toolkit , 1997, Int. J. High Perform. Comput. Appl..

[2]  Ian T. Foster,et al.  The Anatomy of the Grid: Enabling Scalable Virtual Organizations , 2001, Int. J. High Perform. Comput. Appl..

[3]  Rajkumar Buyya,et al.  A Market-Oriented Grid Directory Service for Publication and Discovery of Grid Service Providers and their Services , 2006, The Journal of Supercomputing.

[4]  Jörg Kienzle,et al.  AO challenge - implementing the ACID properties for transactional objects , 2006, AOSD.

[5]  R. Buyya,et al.  Semantic-based Grid Resource Discovery and its Integration with the Grid Service Broker , 2006, 2006 International Conference on Advanced Computing and Communications.

[6]  Stefan Decker,et al.  Ontology-Based Resource Matching in the Grid - The Grid Meets the Semantic Web , 2003, SEMWEB.

[7]  João M. Fernandes,et al.  Towards a catalog of aspect-oriented refactorings , 2005, AOSD '05.

[8]  Carlos José Pereira de Lucena,et al.  Composing design patterns: a scalability study of aspect-oriented programming , 2006, AOSD.

[9]  John B. Goodenough,et al.  Exception handling: issues and a proposed notation , 1975, CACM.

[10]  Steven Tuecke,et al.  The Physiology of the Grid An Open Grid Services Architecture for Distributed Systems Integration , 2002 .

[11]  Emir Imamagic,et al.  An approach to grid scheduling by using condor-G matchmaking mechanism , 2006, 28th International Conference on Information Technology Interfaces, 2006..

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

[13]  Semantic grid resource monitoring and discovery with rule processing based on the time-series statistical data , 2008, 2008 9th IEEE/ACM International Conference on Grid Computing.

[14]  Carole A. Goble,et al.  Automating experiments using semantic data in a bioinformatics grid , 2004, IEEE Intelligent Systems.

[15]  Mark Harman,et al.  Tool-Supported Refactoring of Existing Object-Oriented Code into Aspects , 2006, IEEE Transactions on Software Engineering.

[16]  Flaviu Cristian A Recovery Mechanism for Modular Software , 1979, ICSE.

[17]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[18]  Andreas Harth,et al.  A semantic matchmaker service on the grid , 2004, WWW Alt. '04.

[19]  Mario A. R. Dantas,et al.  Using ontology for description of grid resources , 2005, 19th International Symposium on High Performance Computing Systems and Applications (HPCS'05).

[20]  S. Thamarai Selvi,et al.  Semantic Discovery of Grid Services Using Functionality Based Matchmaking Algorithm , 2006, 2006 IEEE/WIC/ACM International Conference on Web Intelligence (WI 2006 Main Conference Proceedings)(WI'06).

[21]  John Davies,et al.  Next generation knowledge management , 2005 .

[22]  Steffen Staab,et al.  The Karlsruhe view on ontologies , 2003 .

[23]  S. Ramakrishnan,et al.  e-Infrastructures in IT: A case study on Indian national grid computing initiative – GARUDA , 2009, Computer Science - Research and Development.

[24]  Michael Dick,et al.  Towards the Semantic Grid: A State of the Art Survey of Semantic Web Services and their Applicability to Collaborative Design, Engineering, and Procurement , 2008 .

[25]  Rajkumar Buyya,et al.  A Grid service broker for scheduling e‐Science applications on global data Grids , 2006, Concurr. Comput. Pract. Exp..

[26]  Eduardo Huedo,et al.  The GridWay Framework for Adaptive Scheduling and Execution on Grids , 2001, Scalable Comput. Pract. Exp..

[27]  Ian Foster,et al.  The Grid 2 - Blueprint for a New Computing Infrastructure, Second Edition , 1998, The Grid 2, 2nd Edition.

[28]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[29]  Patrick Th. Eugster,et al.  Towards reusable components with aspects , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

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

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

[32]  Simon J. Cox,et al.  Towards a Knowledge-Based Approach to Semantic Service Composition , 2003, SEMWEB.

[33]  Goutam Kumar Saha Web ontology language (OWL) and semantic web , 2007, UBIQ.

[34]  Daniel P. Friedman,et al.  Aspect-Oriented Programming is Quantification and Obliviousness , 2000 .

[35]  Dietmar W. Erwin,et al.  UNICORE—a Grid computing environment , 2002, Concurr. Comput. Pract. Exp..

[36]  Stefan Hanenberg,et al.  Refactoring of Aspect-Oriented Software , 2003 .

[37]  Alexandre Sztajnberg,et al.  A contract-based approach to describe and deploy non-functional adaptations in software architectures , 2010, Journal of the Brazilian Computer Society.

[38]  Jianwei Yin,et al.  Weaving a semantic grid for multidisciplinary collaborative design , 2009 .

[39]  Ondrej Lhoták,et al.  abc: an extensible AspectJ compiler , 2005, AOSD '05.

[40]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[41]  Mira Mezini,et al.  Conquering aspects with Caesar , 2003, AOSD '03.

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

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

[44]  Hridesh Rajan,et al.  Eos: instance-level aspects for integrated system design , 2003, ESEC/FSE-11.

[45]  Amey Karkare,et al.  Heap reference analysis using access graphs , 2006, ACM Trans. Program. Lang. Syst..

[46]  Cristina V. Lopes,et al.  A study on exception detection and handling using aspect-oriented programming , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[47]  William B. Frakes,et al.  Software reuse research: status and future , 2005, IEEE Transactions on Software Engineering.

[48]  Yan Wang,et al.  Towards building a semantic grid for E-government applications , 2008 .

[49]  Hans-Arno Jacobsen,et al.  Horizontal decomposition of Prevayler , 2005, CASCON.

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

[51]  A. J. Gilbert Silvius,et al.  The Impact of National Cultures on Business & IT Alignment , 2008, Communications of the IIMA.

[52]  Nicholas R. Jennings,et al.  The Semantic Grid: A Future e‐Science Infrastructure , 2003 .

[53]  Tom Cargill Exception handling: a false sense of security , 1996 .

[54]  James A. Hendler,et al.  The Semantic Web" in Scientific American , 2001 .

[55]  Muga Nishizawa,et al.  Region pointcut for AspectJ , 2009, ACP4IS '09.

[56]  Stephen Gilmore,et al.  Evaluating the performance of pipeline-structured parallel programs with skeletons and process algebra , 2005, Scalable Comput. Pract. Exp..

[57]  Eric Steegmans,et al.  Combining the robustness of checked exceptions with the flexibility of unchecked exceptions using anchored exception declarations , 2005, OOPSLA '05.

[58]  Erhard Rahm,et al.  A Platform for Collaborative Management of Semantic Grid Metadata , 2008, IDC.

[59]  Ian T. Foster,et al.  Grid information services for distributed resource sharing , 2001, Proceedings 10th IEEE International Symposium on High Performance Distributed Computing.

[60]  Said Mirza Pahlevi,et al.  S-MDS: Semantic Monitoring and Discovery System for the Grid , 2009, Journal of Grid Computing.

[61]  G.C. Murphy,et al.  Identifying, Assigning, and Quantifying Crosscutting Concerns , 2007, First International Workshop on Assessment of Contemporary Modularization Techniques (ACoM '07).

[62]  Carole A. Goble,et al.  An overview of S-OGSA: A Reference Semantic Grid Architecture , 2006, J. Web Semant..

[63]  Cecília M. F. Rubira,et al.  A comparative study of exception handling mechanisms for building dependable object-oriented software , 2001, J. Syst. Softw..

[64]  Jörg Kienzle,et al.  AOP: Does It Make Sense? The Case of Concurrency and Failures , 2002, ECOOP.

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

[66]  Hermann Kopetz,et al.  Fault tolerance, principles and practice , 1990 .

[67]  Francine Berman,et al.  Grid Computing: Making the Global Infrastructure a Reality , 2003 .

[68]  John R. Gurd,et al.  A join point for loops in AspectJ , 2006, AOSD '06.

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

[70]  Christof Fetzer,et al.  Automatic detection and masking of nonatomic exception handling , 2003, IEEE Transactions on Software Engineering.

[71]  George C. Necula,et al.  Exceptional situations and program reliability , 2008, TOPL.

[72]  Cecília M. F. Rubira,et al.  Exceptions and aspects: the devil is in the details , 2006, SIGSOFT '06/FSE-14.

[73]  Sérgio Soares,et al.  Implementing distribution and persistence aspects with aspectJ , 2002, OOPSLA '02.

[74]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[75]  Eduardo Figueiredo,et al.  EJFlow: taming exceptional control flows in aspect-oriented programming , 2008, AOSD.

[76]  Ming Cai,et al.  Weaving an agent-based Semantic Grid for distributed collaborative manufacturing , 2010 .

[77]  Cecília M. F. Rubira,et al.  A systematic approach for structuring exception handling in robust component-based software , 2010, Journal of the Brazilian Computer Society.