Skip to main content

Separation of Concerns with Procedures, Annotations, Advice and Pointcuts

  • Conference paper

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

Abstract

There are numerous mechanisms for separation of concerns at the source code level. Three mechanisms that are the focus of recent attention – metadata annotations, pointcuts and advice – can be modeled together with good old-fashioned procedures as providing different kinds of bindings: procedure calls bind program points to operations, annotations bind attributes to program points; pointcuts bind sets of points to various descriptions of those sets; named pointcuts bind attributes to sets of points; and advice bind the implementation of an operation to sets of points. This model clarifies how the mechanisms work together to separate concerns, and yields guidelines to help developers use the mechanisms in practice.

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

Buying options

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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. The Server Side Symposium: AOP Expert Panel (2004), http://www.theserverside.com/news/thread.tss?thread_id=30564

  2. Baldwin, C.Y., Clark, K.B.: Design Rules: The Power of Modularity. MIT Press, Cambridge (2000)

    Google Scholar 

  3. Bergmans, L., Aksit, M.: Principles and Design Rationale of Composition Filters. In: Filman, R.E., Elrad, T., Aksit, M., Clarke, S. (eds.) Aspect-Oriented Software Development, pp. 63–95. Addison Wesley Professional, Reading (2004)

    Google Scholar 

  4. Bloch, J.: A Metadata Facility for the Java Programming Language (2004)

    Google Scholar 

  5. Boner, J.: AspectWerkz, http://aspectwerkz.codehaus.org/

  6. Bryant, A., Catton, A., Volder, K.D., Murphy, G.C.: Explicit programming. In: Aspect-Oriented Software Development, pp. 10–18. ACM Press, New York (2002)

    Google Scholar 

  7. Cheatham Jr., T.E.: The introduction of definitional facilities into higher level programming languages. In (AFIPS) Fall Joint Computer Conference, pp. 623–673. Spartan Books (1966)

    Google Scholar 

  8. Coady, Y., Kiczales, G., Feeley, M., Smolyn, G.: Using AspectC to improve the modularity of path-specific customization in operating system code. In: Foundations of Software Engineering (FSE), pp. 88–98. ACM Press, New York (2001)

    Google Scholar 

  9. Elrad, T., Aksit, M., Kiczales, G., Lieberherr, K., Ossher, H.: Discussing aspects of AOP. Communications Of The ACM 44(10), 33–38

    Google Scholar 

  10. Filman, R.E., Elrad, T., Aksit, M., Clarke, S. (eds.): Aspect-Oriented Software Development. Professional. Addison Wesley Professional, Reading (2004)

    Google Scholar 

  11. Gradecki, J., Lesiecki, N.: Mastering AspectJ: Aspect-oriented Programming in Java. Wiley, Indianapolis (2003)

    Google Scholar 

  12. Group, G.: Hype Cycle for Application Development (2004), http://www4.gartner.com/DisplayDocument?doc_cd=120914

  13. Hirschfeld, R.: AspectS - Aspect-oriented programming with squeak. In: Aksit, M., Mezini, M., Unland, R. (eds.) NODe 2002. LNCS, vol. 2591, pp. 216–232. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  14. Jacobson, I., Ng, P.-W.: Aspect-Oriented Software Development with Use Cases. Addison-Wesley, Reading (2003)

    Google Scholar 

  15. Jacobson, I., Ng, P.-W.: Aspect-Oriented Software Development with Use Cases. Addison Wesley Professional, Reading (2004)

    Google Scholar 

  16. 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, pp. 327–355. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  17. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J., 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 

  18. Kiczales, G., Mezini, M.: Aspect-Oriented Programming and Modular Reasoning. In: ACM International Conference on Software Engineering (2005) (to appear)

    Google Scholar 

  19. Krishnamurthi, S., Fisler, K., Greenberg, M.: Verifying aspect advice modularly. Foundations of Software Engineering (FSE), 137–146

    Google Scholar 

  20. Laddad, R.: AspectJ in action: practical aspect-oriented programming. Manning, Greenwich, CT (2003)

    Google Scholar 

  21. Liberty, J.: Programming C#. O’Reilly, Sebastopol (2003)

    Google Scholar 

  22. Lopes, C., Dourish, P., Lorenz, D., Lieberherr, K.: Beyond AOP: Toward naturalistic programming. ACM SIGPLAN NOTICES 38(12), 34–43

    Google Scholar 

  23. Lopes, C.V., Bajracharya, S.: An Analysis of Modularity in Aspect-Oriented Design. In: Aspect-Oriented Software Development, AOSD 2005 (2005) (to appear)

    Google Scholar 

  24. Masuhara, H., Kawauchi, K.: Dataflow Pointcut in Aspect-Oriented Programming. In: Ohori, A. (ed.) APLAS 2003. LNCS, vol. 2895, pp. 105–121. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  25. Masuhara, H., Kiczales, G.: Modeling crosscutting in aspect-oriented mechanisms. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 2–28. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  26. Ostermann, K., Mezini, M., Bockisch, C.: Expressive Pointcuts for Increased Modularity. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 214–240. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  27. Project, A.: AJDT Demonstration (2004), http://eclipse.org/ajdt/demos/

  28. Rajan, H., Sullivan, K.: Eos: instance-level aspects for integrated system design. In: Foundations of Software Engineering (FSE), pp. 297–306. ACM Press, New York (2003)

    Google Scholar 

  29. Rinard, M., Salcianu, A., Suhabe, B.: A Classification System and Analysis for Aspect-Oriented Programs. In: Foundations of Software Engineering (FSE), pp. 147–158. ACM Press, New York (2004)

    Google Scholar 

  30. Schutter, K.D.: What does aspect-oriented programming mean to Cobol? In: Aspect-Oriented Software Development. ACM Press, New York (2005) (to appear)

    Google Scholar 

  31. Spinczyk, O., Gal, A., Schröder-Preikschat, W.: AspectC++: an aspect-oriented extension to the C++ programming language. In: Fortieth International Confernece on Tools Pacific: Objects for internet, mobile and embedded applications, pp. 53–60. Australian Computer Society (2002)

    Google Scholar 

  32. Sullivan, K.J., Griswold, W.G., Cai, Y., Hallen, B.: The structure and value of modularity in software design. In: Foundations of Software Engineering, pp. 99–108. ACM Press, New York (2001)

    Google Scholar 

  33. Teitelman, W.: PILOT: A Step Toward Man-Computer Symbiosis Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology (1966)

    Google Scholar 

  34. Walker, D., Zdancewic, S., Ligatti, J.: A theory of aspects. In: International Conference on Functional Programming, pp. 127–139. ACM Press, New York (2003)

    Google Scholar 

  35. Walker, R., Viggers., K.: Implementing protocols via declarative event patterns. In: 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

Kiczales, G., Mezini, M. (2005). Separation of Concerns with Procedures, Annotations, Advice and Pointcuts. 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_9

Download citation

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

  • 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