Skip to main content

Expressive Pointcuts for Increased Modularity

  • Conference paper
ECOOP 2005 - Object-Oriented Programming (ECOOP 2005)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 3586))

Included in the following conference series:

Abstract

In aspect-oriented programming, pointcuts are used to describe crosscutting structure. Pointcuts that abstract over irrelevant implementation details are clearly desired to better support maintainability and modular reasoning.

We present an analysis which shows that current pointcut languages support localization of crosscutting concerns but are problematic with respect to information hiding. To cope with the problem, we present a pointcut language that exploits information from different models of program semantics, such as the execution trace, the syntax tree, the heap, static type system, etc., and supports abstraction mechanisms analogous to functional abstraction. We show how this raises the abstraction level and modularity of pointcuts and present first steps toward an efficient implementation by means of a static analysis technique.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Aldrich, J.: Open modules: Modular reasoning about advice. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 144–168. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  2. Alpha project, http://www.st.informatik.tu-darmstadt.de/pages/projects/alpha/

  3. Brichau, J., Gybels, K., Wuyts, R.: Towards a linguistic symbiosis of an object-oriented and a logic programming language. In: Proceedings of the Workshop on Multiparadigm Programming with Object-Oriented Languages, MPOOL 2002 (2002)

    Google Scholar 

  4. Brichau, J., Mens, K., Volder, K.D.: Building composable aspect-specific languages with logic metaprogramming. In: Batory, D., Consel, C., Taha, W. (eds.) GPCE 2002. LNCS, vol. 2487, p. 110. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  5. Chiba, S., Nakagawa, K.: Josh: An Open AspectJ-like Language. In: Proceedings of AOSD 2004, Lancaster, England. ACM Press, New York (2004)

    Google Scholar 

  6. Chiba, S., Nishizawa, M.: An Easy-to-Use Toolkit for Efficient Java Bytecode Translators. In: Pfenning, F., Smaragdakis, Y. (eds.) GPCE 2003. LNCS, vol. 2830, pp. 364–376. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  7. Codish, M., Søndergaard, H.: Meta-circular abstract interpretation in Prolog. In: Mogensen, T.Æ., Schmidt, D.A., Sudborough, I.H. (eds.) The Essence of Computation. LNCS, vol. 2566, pp. 109–134. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  8. Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Symposium on Principles of Programming Languages. ACM Press, New York (1977)

    Google Scholar 

  9. De Pauw, W., Kimelman, D., Vlissides, J.M.: Modeling object-oriented program execution. In: Tokoro, M., Pareschi, R. (eds.) ECOOP 1994. LNCS, vol. 821, pp. 163–182. Springer, Heidelberg (1994)

    Chapter  Google Scholar 

  10. Douence, R., Fradet, P., Südholt, M.: A framework for the detection and resolution of aspect interactions. In: Batory, D., Consel, C., Taha, W. (eds.) GPCE 2002. LNCS, vol. 2487. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  11. Douence, R., Motelet, O., Südholt, M.: A formal definition of crosscuts. In: Yonezawa, A., Matsuoka, S. (eds.) Reflection 2001. LNCS, vol. 2192, p. 170. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  12. Drossoupolou, S.: Lecture notes on the L2 calculus, http://www.doc.ic.ac.uk/~scd/Teaching/L1L2.pdf.

  13. Eichberg, M., Mezini, M., Ostermann, K.: Pointcuts as functional queries. In: Chin, W.-N. (ed.) APLAS 2004. LNCS, vol. 3302, pp. 366–381. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  14. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. Addison-Wesley, Reading (1995)

    Google Scholar 

  15. Gybels, K., Brichau, J.: Arranging language features for more robust pattern-based crosscuts. In: Proceedings of the 2nd international conference on Aspect-oriented software development, pp. 60–69. ACM Press, New York (2003)

    Chapter  Google Scholar 

  16. Hannemann, J., Kiczales, G.: Design pattern implementation in Java and AspectJ. In: Proceedings OOPSLA 2002, vol. 37(11), pp. 161–173. ACM, New York (2002)

    Chapter  Google Scholar 

  17. Hilsdale, E., Hugunin, J.: Advice Weaving in AspectJ. In: Proc. of AOSD 2004. ACM Press, New York (2004)

    Google Scholar 

  18. Jahier, E., Ducasse, M.: Generic program monitoring by trace analysis. In: Theory and Practice of Logic Programming Journal, vol. 2(4-5). Cambridge University Press, Cambridge (2002)

    Google Scholar 

  19. Janzen, D., De Volder, K.: Navigating and querying code without getting lost. In: Proceedings of AOSD 2003. ACM Press, New York (2003)

    Google Scholar 

  20. Kiczales, G.: In: Keynote talk at AOSD 2003 (2003)

    Google Scholar 

  21. Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, p. 327. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  22. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  23. Kizcales, G., Mezini, M.: Aspect-oriented programming and modular reasoning. In: Proceedings International Conference on Software Engineering ICSE 2005. ACM Press, New York (2005)

    Google Scholar 

  24. Klose, K., Ostermann, K.: Back to the future: Pointcuts as predicates over traces. In: Workshop on Foundations of Aspect-Oriented Languages (FOAL) at AOSD 2005 (2005)

    Google Scholar 

  25. Lange, D.B., Nakamura, Y.: Interactive visualization of design patterns can help in framework understanding. In: OOPSLA 1995: Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications, New York, USA, pp. 342–357. ACM Press, New York (1995)

    Chapter  Google Scholar 

  26. Leuschel, M., Jrgensen, J., Vanhoof, W., Bruynooghe, M.: Offline specialisation in Prolog using a hand-written compiler generator. In: Theory and Practice of Logic Programming, vol. 4, pp. 139–191 (2004)

    Google Scholar 

  27. Lopes, C.V., Dourish, P., Lorenz, D.H., Lieberherr, K.: Beyond AOP: Toward naturalistic programming. In: Proceedings Onward! Track at OOPSLA 2003, Anaheim. ACM Press, New York (2003)

    Google Scholar 

  28. Masuhara, H., Kiczales, G., Dutchyn, C.: A compilation and optimization model for aspect-oriented programs. In: Hedin, G. (ed.) CC 2003. LNCS, vol. 2622, pp. 46–60. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  29. Mezini, M., Ostermann, K.: Conquering aspects with Caesar. In: Proceedings Conference on Aspect-Oriented Software Development (AOSD) 2003, pp. 90–99. ACM Press, New York (2003)

    Chapter  Google Scholar 

  30. Parnas, D.L.: A technique for software module specification with examples. Communications of the ACM 15(5), 330–336 (1972)

    Article  Google Scholar 

  31. Reiss, S.P., Renieris, M.: Encoding program executions. In: International Conference on Software Engineering, Toronto, Ontario, Canada. IEEE, Los Alamitos (2001)

    Google Scholar 

  32. Rho, T., Kniesel, G.: Uniform genericity for aspect languages. Technical Report IAI-TR-2004-4, Computer Science Department III, University of Bonn (Dececember 2004)

    Google Scholar 

  33. Richner, T., Ducasse, S.: Recovering high-level views of object-oriented applications from static and dynamic information. In: ICSM 1999: Proceedings of the IEEE International Conference on Software Maintenance, Washington, DC, USA. IEEE Computer Society Press, Los Alamitos (1999)

    Google Scholar 

  34. Sakurai, K., Masuhara, H., Ubayashi, N., Matsuura, S., Komiya, S.: Association aspects. In: Proc. of AOSD 2004. ACM Press, New York (2004)

    Google Scholar 

  35. Sereni, D., de Moor, O.: Static analysis of aspects. In: Proceedings of AOSD 2003. ACM Press, New York (2003)

    Google Scholar 

  36. Sterling, L., Shapiro, E.: The Art of Prolog. MIT Press, Cambridge (1994)

    MATH  Google Scholar 

  37. Volder, K.D., D’Hondt, T.: Aspect-Oriented Logic Meta Programming. In: Cointe, P. (ed.) Reflection 1999. LNCS, vol. 1616, p. 250. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  38. Walker, R.J., Viggers, K.: Implementing protocols via declarative event patterns. In: Proceedings of the ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE-12 (2004)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Ostermann, K., Mezini, M., Bockisch, C. (2005). Expressive Pointcuts for Increased Modularity. In: Black, A.P. (eds) ECOOP 2005 - Object-Oriented Programming. ECOOP 2005. Lecture Notes in Computer Science, vol 3586. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11531142_10

Download citation

  • DOI: https://doi.org/10.1007/11531142_10

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-27992-1

  • Online ISBN: 978-3-540-31725-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics