|
ABSTRACT
Aspect-Oriented Programming (AOP) is intended to ease situations that involve many kinds of code tangling. This paper reports on a study to investigate AOP's ability to ease tangling related to exception detection and handling. We took an existing framework written in Java™, the JWAM framework, and partially reengineered its exception detection and handling aspects using AspectJ™, an aspect-oriented programming extension to Java.We found that AspectJ supported implementations that drastically reduced the portion of the code related to exception detection and handling. In one scenario, we were able to reduce that code by a factor of 4. We also found that, with respect to the original implementation in plain Java, AspectJ provided better support for different configurations of exceptional behaviors, more tolerance for changes in the specifications of exceptional behaviors, better support for incremental development, better reuse, automatic enforcement of contracts in applications that use the framework, and cleaner program texts. We also found some weaknesses of AspectJ that should be addressed in the future.
REFERENCES
Note: 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
|
ANSI: American National Standard Programming Language PL/I, ANSI X3.53-1976. American Natioal Standards Institute, New York, 1976.
|
| |
2
|
AspectJ Web Site, <http://www.aspectj.org/>.
|
 |
3
|
Dirk Bäumer , Guido Gryczan , Rolf Knoll , Carola Lilienthal , Dirk Riehle , Heinz Züllighoven, Framework development for large systems, Communications of the ACM, v.40 n.10, p.52-59, Oct. 1997
[doi> 10.1145/262793.262804]
|
| |
4
|
A. P. Black: Exception Handling: The Case Against, Technical Report 82-01-02, Department of Computer Science, University of Washington, 1982. Reprinted in May 1983.
|
 |
5
|
|
 |
6
|
|
| |
7
|
J. Bruno, U. H~lzle, M. Karaorman: jContractor: A Reflective Java Library to Support Design By Contract, Technical Report TRCS98-31, Department of Computer Science, University of California, Santa Barbara, December 1998.
|
| |
8
|
F. Cristian: Exception Handling and Software Fault Tolerance, in IEEE Transactions on Computers, Vol. c-31, No. 6, pp. 531540, June 1982.
|
 |
9
|
|
| |
10
|
M. F. Dunn, J. C. Knight: Software Resuse In An Industrial Setting: A Case Study, IEEE, 1991.
|
| |
11
|
|
 |
12
|
|
 |
13
|
|
| |
14
|
JWAM framework Web Site, <http://www.jwam.de/>.
|
| |
15
|
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, J. Irwin: Aspect-Oriented Programming, in Proceedings of the 11 th European Conference on Object-Oriented Programming (ECOOP '97), Finland, Springer-Verlag, 1997, pp. 220-242.
|
| |
16
|
|
 |
17
|
|
| |
18
|
R. E. Johnson, B. Foote: Designing Reusable Classes, in The Journal of Object-Oriented Programming, Vol. 1, No. 2, 1988, pp. 22-35.
|
| |
19
|
|
 |
20
|
|
| |
21
|
|
| |
22
|
|
| |
23
|
|
| |
24
|
|
| |
25
|
|
 |
26
|
Robert J. Walker , Elisa L. A. Baniassad , Gail C. Murphy, An initial assessment of aspect-oriented programming, Proceedings of the 21st international conference on Software engineering, p.120-130, May 16-22, 1999, Los Angeles, California, United States
[doi> 10.1145/302405.302458]
|
CITED BY 33
|
|
|
|
|
|
Alessandro Garcia , Phil Greenwood , George Heineman , Robert Walker , Yuanfang Cai , Hong Yul Yang , Elisa Baniassad , Cristina Videira Lopes , Christa Schwanninger , Jianjun Zhao, Assessment of Contemporary Modularization Techniques - ACoM'07: workshop report, ACM SIGSOFT Software Engineering Notes, v.32 n.5, September 2007
|
|
Gail C. Murphy , Robert J. Walker , Elisa L. A. Baniassad , Martin P. Robillard , Albert Lai , Mik A. Kersten, Does aspect-oriented programming work?, Communications of the ACM, v.44 n.10, p.75-77, Oct. 2001
|
|
|
|
|
|
|
|
|
|
Bram Adams , Kris De Schutter, An aspect for idiom-based exception handling: (using local continuation join points, join point properties, annotations and type parameters), Proceedings of the 5th workshop on Engineering properties of languages and aspect technologies, p.1-es, March 12-16, 2007, Vancouver, British Columbia, Canada
|
|
|
|
|
|
|
|
Gail C. Murphy , Albert Lai , Robert J. Walker , Martin P. Robillard, Separating features in source code: an exploratory study, Proceedings of the 23rd International Conference on Software Engineering, p.275-284, May 12-19, 2001, Toronto, Ontario, Canada
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fernando Castor Filho , Alessandro Garcia , Cecília Mary F. Rubira, Error handling as an aspect, Proceedings of the 2nd workshop on Best practices in applying aspect-oriented software development, p.1-es, March 12-16, 2007, Vancouver, British Columbia, Canada
|
|
|
|
|
|
|
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
|
|
|
|
|
|
Magiel Bruntink , Arie van Deursen , Maja D'Hondt , Tom Tourwé, Simple crosscutting concerns are not so simple: analysing variability in large-scale idioms-based implementations, Proceedings of the 6th international conference on Aspect-oriented software development, March 12-16, 2007, Vancouver, British Columbia, Canada
|
|
|
|
Karla Damasceno , Nelio Cacho , Alessandro Garcia , Alexander Romanovsky , Carlos Lucena, Context-aware exception handling in mobile agent systems: the MoCA case, Proceedings of the 2006 international workshop on Software engineering for large-scale multi-agent systems, May 22-23, 2006, Shanghai, China
|
|
|
|
|
|
|
|
|
|
|
|
|
|
INDEX TERMS
Primary Classification:
D.
Software
D.1
PROGRAMMING TECHNIQUES
Additional Classification:
D.
Software
D.2
SOFTWARE ENGINEERING
D.2.7
Distribution, Maintenance, and Enhancement
Subjects:
Restructuring, reverse engineering, and reengineering
K.
Computing Milieux
K.6
MANAGEMENT OF COMPUTING AND INFORMATION SYSTEMS
K.6.3
Software Management
Subjects:
Software development
General Terms:
Design,
Management,
Measurement,
Performance,
Theory
Keywords:
aspect-oriented programming,
contracts,
exceptions
|