ACM Home Page
Please provide us with feedback. Feedback
Bridging Java and AspectJ through explicit join points
Full text PdfPdf (547 KB)
Source ACM International Conference Proceeding Series; Vol. 272 archive
Proceedings of the 5th international symposium on Principles and practice of programming in Java table of contents
Lisboa, Portugal
SESSION: Language design and generative programming table of contents
Pages: 63 - 72  
Year of Publication: 2007
ISBN:978-1-59593-672-1
Authors
Kevin Hoffman  Purdue University
Patrick Eugster  Purdue University
Sponsors
ACM: Association for Computing Machinery
: Câmara Municipal de Palmela
: Almada Camara Municipal
: RidgeSoft
: ParaRede Business Upgrade
: AMD 64 Opteron
: FUNDAÇÃO Luso-Americana
: Sun Microsystems
IBM : IBM
: YDreams
: GFI
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 10,   Downloads (12 Months): 75,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
Save this Article to a Binder    Display Formats: BibTex  EndNote ACM Ref   
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1294325.1294335
What is a DOI?

ABSTRACT

Through AspectJ, aspect-oriented programming (AOP) is becoming of increasing interest and availability to Java programmers as it matures as a methodology for improved software modularity via the separation of cross-cutting concerns. AOP proponents often advocate a development strategy where Java programmers write the main application, ignoring cross-cutting concerns, and then AspectJ programmers, domain experts in their specific concerns, weave in the logic for these more specialized cross-cutting concerns. However, several authors have recently debated the merits of this strategy by empirically showing certain drawbacks. The proposed solutions paint a different development strategy where base code and aspect programmers are aware of each other (to varying degrees) and interactions between cross-cutting concerns are planned for early on.

Herein we explore new possibilities in the language design space that open up when the base code is aware of cross-cutting aspects. Using our insights from this exploration we concretize these new possibilities by extending AspectJ with concise yet powerful constructs, while maintaining full backwards compatibility. These new constructs allow base code and aspects to cooperate in ways that were previously not possible: arbitrary blocks of code can be advised, advice can be explicitly parameterized, base code can guide aspects in where to apply advice, and aspects can statically enforce new constraints upon the base code that they advise. These new techniques allow aspect modularity and program safety to increase. We illustrate the value of our extensions through an example based on transactions.


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
J. Aldrich. Open Modules: Modular reasoning about advice. In ECOOP'05, pages 144--168, 2005.
 
2
P. Avgustinov, A. S. Christensen, L. Hendren, S. Kuzins, J. Lhoták, O. Lhoták, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. abc: An extensible AspectJ compiler. Transactions on Aspect-Oriented Software Development, 1:293--334, October 2005.
 
3
 
4
L. Bussard. Towards a pragmatic composition model of CORBA services based on AspectJ. In Workshop on Aspects and Dimensions of Concerns of ECOOP'02, 2000.
 
5
M. Butler, T. Hoare, and C. Ferreira. Communicating Sequential Processes, volume 3525/2005 of Lecture Notes in Computer Science, chapter A Trace Semantics for Long-Running Transactions, pages 133--150. Springer, 2005.
6
 
7
C. Clifton and G. Leavens. Obliviousness, modular reasoning, and the behavioral subtyping analogy. In SPLAT'03, 2003.
 
8
A. Colyer. Towards widespread adoption of AOSD. In AOSD'03, 2003.
 
9
10
 
11
R. Filman and D. Friedman. Aspect-Oriented Programming Is Quantification and Obliviousness, pages 21--35. Addison-Wesley, 2005.
 
12
A. Garcia, C. Sant'Anna, C. Chavez, V. T. da Silva, C. de Lucena, and A. von Staa. Software Engineering for Multi-Agent Systems II, chapter Separation of Concerns in Multi-agent Systems: An Empirical Study, pages 49--72. Springer, 2004.
13
 
14
 
15
 
16
 
17
S. Gudmundson and G. Kiczales. Addressing practical software development issues in AspectJ with a pointcut interface. In Workshop on Advanced Separation of Concerns of ECOOP'01, 2001.
 
18
 
19
K. Hoffman and P. Eugster. Aspects and exception handling: The case of explicit join points. Technical Report ejp-200703-1, Purdue University, 2007.
 
20
 
21
G. Kiczales, J. Lamping, A. Menhdhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In ECOOP'97, pages 220--242, 1997.
22
 
23
 
24
25
26
 
27
28
 
29
 
30
31


Collaborative Colleagues:
Kevin Hoffman: colleagues
Patrick Eugster: colleagues