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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
The Server Side Symposium: AOP Expert Panel (2004), http://www.theserverside.com/news/thread.tss?thread_id=30564
Baldwin, C.Y., Clark, K.B.: Design Rules: The Power of Modularity. MIT Press, Cambridge (2000)
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)
Bloch, J.: A Metadata Facility for the Java Programming Language (2004)
Boner, J.: AspectWerkz, http://aspectwerkz.codehaus.org/
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)
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)
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)
Elrad, T., Aksit, M., Kiczales, G., Lieberherr, K., Ossher, H.: Discussing aspects of AOP. Communications Of The ACM 44(10), 33–38
Filman, R.E., Elrad, T., Aksit, M., Clarke, S. (eds.): Aspect-Oriented Software Development. Professional. Addison Wesley Professional, Reading (2004)
Gradecki, J., Lesiecki, N.: Mastering AspectJ: Aspect-oriented Programming in Java. Wiley, Indianapolis (2003)
Group, G.: Hype Cycle for Application Development (2004), http://www4.gartner.com/DisplayDocument?doc_cd=120914
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)
Jacobson, I., Ng, P.-W.: Aspect-Oriented Software Development with Use Cases. Addison-Wesley, Reading (2003)
Jacobson, I., Ng, P.-W.: Aspect-Oriented Software Development with Use Cases. Addison Wesley Professional, Reading (2004)
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)
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)
Kiczales, G., Mezini, M.: Aspect-Oriented Programming and Modular Reasoning. In: ACM International Conference on Software Engineering (2005) (to appear)
Krishnamurthi, S., Fisler, K., Greenberg, M.: Verifying aspect advice modularly. Foundations of Software Engineering (FSE), 137–146
Laddad, R.: AspectJ in action: practical aspect-oriented programming. Manning, Greenwich, CT (2003)
Liberty, J.: Programming C#. O’Reilly, Sebastopol (2003)
Lopes, C., Dourish, P., Lorenz, D., Lieberherr, K.: Beyond AOP: Toward naturalistic programming. ACM SIGPLAN NOTICES 38(12), 34–43
Lopes, C.V., Bajracharya, S.: An Analysis of Modularity in Aspect-Oriented Design. In: Aspect-Oriented Software Development, AOSD 2005 (2005) (to appear)
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)
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)
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)
Project, A.: AJDT Demonstration (2004), http://eclipse.org/ajdt/demos/
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)
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)
Schutter, K.D.: What does aspect-oriented programming mean to Cobol? In: Aspect-Oriented Software Development. ACM Press, New York (2005) (to appear)
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)
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)
Teitelman, W.: PILOT: A Step Toward Man-Computer Symbiosis Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology (1966)
Walker, D., Zdancewic, S., Ligatti, J.: A theory of aspects. In: International Conference on Functional Programming, pp. 127–139. ACM Press, New York (2003)
Walker, R., Viggers., K.: Implementing protocols via declarative event patterns. In: ACM Sigsoft International Symposium on Foundations of Software Engineering, FSE-12 (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)