|
ABSTRACT
We present a new classification system for aspect-oriented programs. This system characterizes the interactions between aspects and methods and identifies classes of interactions that enable modular reasoning about the crosscut program. We argue that this system can help developers structure their understanding of aspect-oriented programs and promotes their ability to reason productively about the consequences of crosscutting a program with a given aspect. We have designed and implemented a program analysis system that automatically classifies interactions between aspects and methods and have applied this analysis to a set of benchmark programs. We found that our analysis is able to 1) identify interactions with desirable properties (such as lack of interference), 2) identify potentially problematic interactions (such as interference caused by the aspect and the method both writing the same field), and 3) direct the developer's attention to the causes of such interactions.
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
|
C. S. Ananian. MIT FLEX compiler infrastructure for Java. Available from http://www.flex-compiler.lcs.mit.edu.
|
 |
2
|
|
 |
3
|
|
 |
4
|
Bruno Blanchet, Escape analysis for object-oriented languages: application to Java, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.20-34, November 01-05, 1999, Denver, Colorado, United States
|
 |
5
|
Jeff Bogda , Urs Hölzle, Removing unnecessary synchronization in Java, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.35-46, November 01-05, 1999, Denver, Colorado, United States
|
 |
6
|
|
 |
7
|
Jong-Deok Choi , Manish Gupta , Mauricio Serrano , Vugranam C. Sreedhar , Sam Midkiff, Escape analysis for Java, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.1-19, November 01-05, 1999, Denver, Colorado, United States
|
| |
8
|
C. Clifton and G. Leavens. Observers and assistants: A proposal for modular aspect-oriented reasoning. Technical Report TR 02-04, Department of Computer Science, Iowa State University, Mar. 2002.
|
 |
9
|
|
 |
10
|
|
| |
11
|
G. Kiczales et al. AspectJ compiler. Available from http://eclipse.org/aspectj.
|
 |
12
|
Mik Kersten , Gail C. Murphy, Atlas: a case study in building a web-based learning environment using aspect-oriented programming, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.340-352, November 01-05, 1999, Denver, Colorado, United States
|
 |
13
|
Gregor Kiczales , Erik Hilsdale , Jim Hugunin , Mik Kersten , Jeffrey Palm , William Griswold, Getting started with ASPECTJ, Communications of the ACM, v.44 n.10, p.59-65, Oct. 2001
[doi> 10.1145/383845.383858]
|
| |
14
|
Gregor Kiczales , Erik Hilsdale , Jim Hugunin , Mik Kersten , Jeffrey Palm , William G. Griswold, An Overview of AspectJ, Proceedings of the 15th European Conference on Object-Oriented Programming, p.327-353, June 18-22, 2001
|
| |
15
|
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J. Loingtier, and J. Irwin. Aspect-oriented programming. In Proceedings of the 1997 European Conference on Object-Oriented Programming, Jyvaskyla, Finland, June 1997.
|
| |
16
|
|
| |
17
|
R. Laddad. ApectJ in Action. Manning Publications Company, Greenwich, CT, 2003.
|
| |
18
|
H. Li, S. Krishnamurthi, and K. Fisler. Verifying Cross-Cutting Features as Open Systems. Manning Publications Company, Greenwich, CT, 2003.
|
| |
19
|
K. Lieberherr, D. Lorenz, and M. Mezini. Programming with aspectual components. Technical Report NU-CCS-99-01, College of Computer Science, Northeastern University, Mar. 1999.
|
 |
20
|
|
| |
21
|
H. Ossher and P. Tarr. Multi-dimensional separation of concerns in hyperspace. Technical Report RC 21452(96717)16APR99, IBM T.J. Watson Research Center, 1999.
|
 |
22
|
|
| |
23
|
Sable compiler group at McGill. Soot: a Java optimization framework. Available from http://www.sable.mcgill.ca/soot.
|
| |
24
|
A. Salcianu. Pointer analysis and its applications to Java programs. Master's thesis, MIT Laboratory for Computer Science, 2001.
|
| |
25
|
A. Salcianu and M. Rinard. A combined pointer and purity analysis for Java programs. Technical Report MIT-CSAIL-TR-949, MIT CSAIL, 2004.
|
| |
26
|
|
| |
27
|
M. Stoerzer and J. Krinke. Interference analysis for AspectJ. In Workshop on Foundations of Aspect-Oriented Languages, 2003.
|
 |
28
|
Peri Tarr , Harold Ossher , William Harrison , Stanley M. Sutton, Jr., N degrees of separation: multi-dimensional separation of concerns, Proceedings of the 21st international conference on Software engineering, p.107-119, May 16-22, 1999, Los Angeles, California, United States
[doi> 10.1145/302405.302457]
|
 |
29
|
John Whaley , Martin Rinard, Compositional pointer and escape analysis for Java programs, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.187-206, November 01-05, 1999, Denver, Colorado, United States
|
CITED BY 28
|
|
|
|
|
|
|
|
Pavel Avgustinov , Aske Simon Christensen , Laurie Hendren , Sascha Kuzins , Jennifer Lhoták , Ondřej Lhoták , Oege de Moor , Damien Sereni , Ganesh Sittampalam , Julian Tibble, Optimising aspectJ, ACM SIGPLAN Notices, v.40 n.6, June 2005
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Otávio Augusto Lazzarini Lemos , Fabiano Cutigi Ferrari , Paulo Cesar Masiero , Cristina Videira Lopes, Testing aspect-oriented programming Pointcut Descriptors, Proceedings of the 2nd workshop on Testing aspect-oriented programs, p.33-38, July 20-20, 2006, Portland, Maine
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Wilke Havinga , Istvan Nagy , Lodewijk Bergmans , Mehmet Aksit, A graph-based approach to modeling and detecting composition conflicts related to introductions, Proceedings of the 6th international conference on Aspect-oriented software development, March 12-16, 2007, Vancouver, British Columbia, Canada
|
|
|
|
|
|
Marc E. Fiuczynski , Robert Grimm , Yvonne Coady , David Walker, patch (1) considered harmful, Proceedings of the 10th conference on Hot Topics in Operating Systems, p.16-16, June 12-15, 2005, Santa Fe, NM
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Mark Harman , Fayezin Islam , Tao Xie , Stefan Wappler, Automated test data generation for aspect-oriented programs, Proceedings of the 8th ACM international conference on Aspect-oriented software development, March 02-06, 2009, Charlottesville, Virginia, USA
|
|
|
|
|