EJFlow: taming exceptional control flows in aspect-oriented programming
|
||||||||||||||||
ABSTRACTMany of the problems that stem from the use of exception handling are caused by the local way in which exceptions are handled. It demands that developers understand the source of an exception, the place where it is handled, and everything in between. As a consequence, exceptions easily get "out of control" and, as system development progresses, exceptional control flows become less well-understood, with potentially negative consequences for the program maintainability and reliability. This paper presents an innovative aspect-oriented model for exception handling implementation. In contrast to other exception handling mechanisms, our model provides abstractions to explicitly describe global views of exceptional control flows. As a result, this new model makes it possible to understand exception flows from an end-to-end perspective by looking at a single part of the program. Also, it leverages existing pointcut languages to make the association of handlers with normal code more flexible. The implementation of our proposed model, called EJFlow, extends the AspectJ programming language with the aim of promoting enhanced robustness and program modularization. We evaluate qualitatively and quantitatively the proposed exception handling model through a case study targeting a real mobile application.
AUTHORS
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of Nelio Cacho | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||
| View colleagues of Fernando Castor Filho | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| View colleagues of Alessandro Garcia | |||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||
| View colleagues of Eduardo Figueiredo | ||||||||||||||||||||||||||||||||||||||||
REFERENCESNote: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
|
1
|
||
|
2
|
Buhr, P. A. and Krischer, R. Bound Exceptions in Object Programming. In Proceedings of the ECOOP 2003 Workshop on Exception Handling in Object Oriented Systems, pp. 20--26, Darmstadt, Germany, July 2003.
|
|
|
3
|
||
|
4
|
||
| |
5
|
Nelio Cacho , Claudio Sant'Anna , Eduardo Figueiredo , Alessandro Garcia , Thais Batista , Carlos Lucena, Composing design patterns: a scalability study of aspect-oriented programming, Proceedings of the 5th international conference on Aspect-oriented software development, March 20-24, 2006, Bonn, Germany [doi>10.1145/1119655.1119672]
|
|
6
|
Cargill, T. Exception Handling: A False Sense of Security. C++ Report, vol. 6, no. 9, pp. 21--24, Nov.-Dec. 1994.
|
|
|
7
|
Castor Filho, F., Garcia, A., Rubira, C. Extracting Error Handling to Aspects: A Cookbook. In Proc. of the 23rd ICSM, Paris, France, 2007.
|
|
| |
8
|
Fernando Castor Filho , Nelio Cacho , Eduardo Figueiredo , Raquel Maranhão , Alessandro Garcia , Cecília Mary F. Rubira, Exceptions and aspects: the devil is in the details, Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering, November 05-11, 2006, Portland, Oregon, USA [doi>10.1145/1181775.1181794]
|
|
9
|
||
| |
10
|
|
|
11
|
Chidamber, S., and Kemerer, C. A Metrics Suite for Object Oriented Design. IEEE Trans. on Software Engineering, 1994, 476--493.
|
|
|
12
|
Cui, Q. and Gannon, J. D. Data-Oriented Exception Handling. IEEE Transactions on Software Engineering 18(5), pages 393--401, 1992.
|
|
|
13
|
Cusumano, M. A. 'Systematic' vs. 'Accidental' Reuse in Japanese Software Factories. MIT Sloan School of Management Working Paper #3328-BPS-91, September 1991.
|
|
| |
14
|
|
|
15
|
||
|
16
|
||
|
17
|
Figueiredo, E., Garcia, A. and Lucena, C. AJATO: An AspectJ Assessment Tool. Proc. of ECOOP'06 (demo), 2006.
|
|
| |
18
|
Eduardo Figueiredo , Nelio Cacho , Claudio Sant'Anna , Mario Monteiro , Uira Kulesza , Alessandro Garcia , Sérgio Soares , Fabiano Ferrari , Safoora Khan , Fernando Castor Filho , Francisco Dantas, Evolving software product lines with aspects: an empirical study on design stability, Proceedings of the 30th international conference on Software engineering, May 10-18, 2008, Leipzig, Germany [doi>10.1145/1368088.1368124]
|
|
19
|
||
|
20
|
||
|
21
|
Garcia, A, Beder, D. and Rubira, C. An exception handling software architecture for developing fault-tolerant software, Proceedings of the 5th IEEE High Assurance Systems Engineering Symposium, USA, 2000, 311--320.
|
|
|
22
|
||
|
23
|
||
|
24
|
Goodenough, J. B. Exception handling: Issues and a proposed notation. Comm. of the ACM, 18(12):683--696, 1975.
|
|
|
25
|
||
|
26
|
Kiczales, G. et al. Aspect-oriented programming. In Proceedings of ECOOP'97, pages 220--242, 1997.
|
|
|
27
|
Lacourte, S. Exceptions in guide, an object-oriented language for distributed applications. In Proceedings of the 5th ECOOP'91, LNCS 512, pages 268--287, 1991.
|
|
| |
28
|
|
|
29
|
Litke, J. D. A systematic approach for implementing fault tolerant software designs in Ada. In Proceedings of the Conference on TRI-ADA '90 (Baltimore, Maryland, United States, December 03--06, 1990).
|
|
|
30
|
||
|
31
|
Miller, M. and Tripathi, A. Issues with Exception Handling in Object-Oriented Systems. In Proceedings of ECOOP, pp.85--103, LNCS-1241, Finland, 1997.
|
|
|
32
|
Ambra Molesini , Alessandro Fabricio Garcia , Christina von Flach Garcia Chavez , Thais Vasconcelos Batista, On the Quantitative Analysis of Architecture Stability in Aspectual Decompositions, Proceedings of the Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008), p.29-38, February 18-21, 2008 [doi>10.1109/WICSA.2008.26]
|
|
| |
33
|
|
| |
34
|
|
|
35
|
Parnas, D. L. and Würges, H. Response to Undesired Events in Software Systems. In Proceedings of the 2nd International Conference on Software Engineering, pages 437--446, San Francisco, USA, 1976.
|
|
|
36
|
Randell, B. and Xu, J. The Evolution of the Recovery Block Concept. In Software Fault Tolerance (M. Lyu, Ed.), Trends in Software, pages 1--22, J. Wiley, 1994.
|
|
|
37
|
Reimer, D., Srinivasan, H. Analyzing exception usage in large Java applications. In: Proceedings of ECOOP'2003 Workshop on Exception Handling in Object-Oriented Systems.
|
|
| |
38
|
Martin P. Robillard , Gail C. Murphy, Designing robust Java programs with exceptions, Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications, p.2-10, November 06-10, 2000, San Diego, California, USA [doi>10.1145/355045.355046]
|
| |
39
|
|
|
40
|
Schaefer, C. F. and Bundy, G. N. Static analysis of exception handling in Ada. Software: Practice and Experience, 23(10):1157--1174, October 1993.
|
|
| |
41
|
Sergio Soares , Eduardo Laureano , Paulo Borba, Implementing distribution and persistence aspects with aspectJ, Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, November 04-08, 2002, Seattle, Washington, USA [doi>10.1145/582419.582437]
|
|
42
|
CITED BY26 Citations
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
INDEX TERMSThe ACM Computing Classification System (CCS rev.2012)
PUBLICATION| Title | AOSD '08 Proceedings of the 7th international conference on Aspect-oriented software development table of contents | ||||||||||||||||||||||||||||||||||||||||||||||
| Conference Chair | Theo D'Hondt Vrije Universiteit Brussel, Belgium | ||||||||||||||||||||||||||||||||||||||||||||||
| Pages | 72-83 | ||||||||||||||||||||||||||||||||||||||||||||||
| Publication Date | 2008-03-31 (yyyy-mm-dd) | ||||||||||||||||||||||||||||||||||||||||||||||
| Funding Sources |
Fundação de Amparo à Pesquisa do Estado de São Paulo Sixth Framework Programme |
||||||||||||||||||||||||||||||||||||||||||||||
| Sponsors | AOSA Aspect-Oriented Software Association | ||||||||||||||||||||||||||||||||||||||||||||||
| In-Cooperations | SIGPLAN ACM Special Interest Group on Programming Languages | ||||||||||||||||||||||||||||||||||||||||||||||
| SIGSOFT ACM Special Interest Group on Software Engineering | |||||||||||||||||||||||||||||||||||||||||||||||
| Publisher | ACM New York, NY, USA ©2008 | ||||||||||||||||||||||||||||||||||||||||||||||
| ISBN: 978-1-60558-044-9 doi>10.1145/1353482.1353492 | |||||||||||||||||||||||||||||||||||||||||||||||
| Conference |
MODULARITYModularity (formerly known as Aspect-oriented Software Development - AOSD)
|
||||||||||||||||||||||||||||||||||||||||||||||
| Paper Acceptance Rate 17 of 79 submissions, 22% | |||||||||||||||||||||||||||||||||||||||||||||||
| Overall Acceptance Rate 178 of 718 submissions, 25% | |||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||
REVIEWS
COMMENTSBe the first to comment To Post a comment please sign in or create a free Web account
Table of Contents| SESSION: Aspects and generative programming | ||
| AspectT: aspect-oriented test case instantiation | ||
| Sebastian Benz | ||
| Pages: 1-12 | ||
| doi>10.1145/1353482.1353484 | ||
Full text: PDF
|
||
|
Test case instantiation is the transformation of abstract test cases into executable test scripts. Abstract test cases are either created during model based test case generation or are manually defined in a suitable modeling notation. The transformation ...
expand
|
||
| "Program, enhance thyself!": demand-driven pattern-oriented program enhancement | ||
| Eli Tilevich, Godmar Back | ||
| Pages: 13-24 | ||
| doi>10.1145/1353482.1353485 | ||
Full text: PDF
|
||
|
Program enhancement refers to adding new functionality to an existing program. We argue that repetitive program enhancement tasks can be expressed as patterns, and that the application of such enhancement patterns can be automated. This paper presents ...
expand
|
||
| Modularity first: a case for mixing AOP and attribute grammars | ||
| Pavel Avgustinov, Torbjörn Ekman, Julian Tibble | ||
| Pages: 25-35 | ||
| doi>10.1145/1353482.1353486 | ||
Full text: PDF
|
||
|
We have reimplemented the frontend of the extensible AspectBench Compiler for AspectJ, using the aspect-oriented meta-compiler JastAdd. The original frontend was purely object-oriented. Each frontend extends Java with AspectJ and an additional set of ...
expand
|
||
| SESSION: Reasoning about aspects | ||
| AJANA: a general framework for source-code-level interprocedural dataflow analysis of AspectJ software | ||
| Guoqing Xu, Atanas Rountev | ||
| Pages: 36-47 | ||
| doi>10.1145/1353482.1353488 | ||
Full text: PDF
|
||
|
Aspect-oriented software presents new challenges for the designers of static analyses. Our work aims to establish systematic foundations for dataflow analysis of AspectJ software. We propose a control- and data-flow program representation for AspectJ ...
expand
|
||
| Reasoning about aspects with common sense | ||
| Klaus Ostermann | ||
| Pages: 48-59 | ||
| doi>10.1145/1353482.1353489 | ||
Full text: PDF
|
||
|
There has been a lot of debate about the modularity of aspect-oriented programs, and in particular the ability to reason about such programs in a modular way, although it has never been defined precisely what modular reasoning means. This work analyzes ...
expand
|
||
| SESSION: Programming language design and implementation I | ||
| StrongAspectJ: flexible and safe pointcut/advice bindings | ||
| Bruno De Fraine, Mario Südholt, Viviane Jonckers | ||
| Pages: 60-71 | ||
| doi>10.1145/1353482.1353491 | ||
Full text: PDF
|
||
|
AspectJ was designed as a seamless aspect-oriented extension of the Java programming language. However, unlike Java, AspectJ does not have a safe type system: an accepted binding between a pointcut and an advice can give rise to type errors at runtime. ...
expand
|
||
| EJFlow: taming exceptional control flows in aspect-oriented programming | ||
| Nelio Cacho, Fernando Castor Filho, Alessandro Garcia, Eduardo Figueiredo | ||
| Pages: 72-83 | ||
| doi>10.1145/1353482.1353492 | ||
Full text: PDF
|
||
|
Many of the problems that stem from the use of exception handling are caused by the local way in which exceptions are handled. It demands that developers understand the source of an exception, the place where it is handled, and everything in between. ...
expand
|
||
| Relational aspects as tracematches | ||
| Eric Bodden, Reehan Shaikh, Laurie Hendren | ||
| Pages: 84-95 | ||
| doi>10.1145/1353482.1353493 | ||
Full text: PDF
|
||
|
The relationships between objects in an object-oriented program are an essential property of the program's design and implementation. Two previous approaches to implement relationships with aspects were association aspects, an AspectJ-based language ...
expand
|
||
| Test-based pointcuts for robust and fine-grained join point specification | ||
| Kouhei Sakurai, Hidehiko Masuhara | ||
| Pages: 96-107 | ||
| doi>10.1145/1353482.1353494 | ||
Full text: PDF
|
||
|
We propose test-based pointcuts, a novel pointcut mechanism for AspectJ-like aspect-oriented programming languages. The idea behind the test-based pointcuts is to specify join points through unit test cases associated with the target program. ...
expand
|
||
| SESSION: Aspects for adaptation and variability support | ||
| Edicts: implementing features with flexible binding times | ||
| Venkat Chakravarthy, John Regehr, Eric Eide | ||
| Pages: 108-119 | ||
| doi>10.1145/1353482.1353496 | ||
Full text: PDF
|
||
|
In a software product line, the binding time of a feature is the time at which one decides to include or exclude a feature from a product. Typical binding site implementations are intended to support a single binding time only, e.g., compile time ...
expand
|
||
| Support for distributed adaptations in aspect-oriented middleware | ||
| Eddy Truyen, Nico Janssens, Frans Sanen, Wouter Joosen | ||
| Pages: 120-131 | ||
| doi>10.1145/1353482.1353497 | ||
Full text: PDF
|
||
|
Many aspect-oriented middleware platforms support run-time aspect weaving, but do not support coordinating distributed changes to a set of aspects at run-time. A distributed change entails weaving or unweaving multiple inter-dependent aspects that are ...
expand
|
||
| SESSION: Tool support | ||
| Tool-supported refactoring of aspect-oriented programs | ||
| Jan Wloka, Robert Hirschfeld, Joachim Hänsel | ||
| Pages: 132-143 | ||
| doi>10.1145/1353482.1353499 | ||
Full text: PDF
|
||
|
Aspect-oriented programming languages provide new composition mechanisms for improving the modularity of crosscutting concerns. Implementations of such language support use advanced program representations, like abstract syntax trees or stack traces, ...
expand
|
||
| Tool support for understanding and diagnosing pointcut expressions | ||
| Lingdong Ye, Kris De Volder | ||
| Pages: 144-155 | ||
| doi>10.1145/1353482.1353500 | ||
Full text: PDF
|
||
|
In this paper, we present algorithms that compute two kinds of information that can help AspectJ developers diagnose and fix potential problems with their pointcuts. First, we present an algorithm to compute almost matched joinpoints. Second, we present ...
expand
|
||
| View-based maintenance of graphical user interfaces | ||
| Peng Li, Eric Wohlstadter | ||
| Pages: 156-167 | ||
| doi>10.1145/1353482.1353501 | ||
Full text: PDF
|
||
|
One difficulty in software maintenance is that the relationship between observed program behavior and source code is not always clear. In this paper we are concerned specifically with the maintenance of graphical user interfaces (GUIs). User interface ...
expand
|
||
| SESSION: Programming language design and implementation II | ||
| Expressive scoping of dynamically-deployed aspects | ||
| Éric Tanter | ||
| Pages: 168-179 | ||
| doi>10.1145/1353482.1353503 | ||
Full text: PDF
|
||
|
Several aspect languages and frameworks have recognized the need for dynamic deployment of aspects. However, they do not provide sufficiently expressive means to precisely specify the scope of deployed aspects. As a result, programmers have to resort ...
expand
|
||
| Lightweight virtual machine support for AspectJ | ||
| Ryan M. Golbeck, Samuel Davis, Immad Naseer, Igor Ostrovsky, Gregor Kiczales | ||
| Pages: 180-190 | ||
| doi>10.1145/1353482.1353504 | ||
Full text: PDF
|
||
|
Advice weaving can be efficiently supported with only lightweight enhancements to existing Virtual Machines. Performing weaving at the Java bytecode (JBC) level while preserving appropriate metadata enables the VM to understand the AspectJ-specific semantics ...
expand
|
||
| Nu: a dynamic aspect-oriented intermediate language model and virtual machine for flexible runtime adaptation | ||
| Robert Dyer, Hridesh Rajan | ||
| Pages: 191-202 | ||
| doi>10.1145/1353482.1353505 | ||
Full text: PDF
|
||
|
A variety of dynamic aspect-oriented language constructs are proposed in recent literature with corresponding, compelling use cases. Such constructs demonstrate the need to dynamically adapt the set of join points intercepted at a fine-grained level. ...
expand
|
||