Skip to main content

From (Meta) Objects to Aspects: A Java and AspectJ Point of View

  • Conference paper

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

Abstract

eWe point some major contributions of the object-oriented approach in the field of separation of concerns and more particularly design-patterns and metaobject protocols. We discuss some limitations of objects focusing on program reusability and scalability. We sketch some intuitions behind the aspect-oriented programming (AOP) approach as a new attempt to deal with separation of concerns by managing scattered and tangled code. In fact AOP provides techniques to represent crosscutting program units such as display, persistency and transport services. Then AOP allows to weave these units with legacy application components to incrementally adapt them. We present a guided tour of AspectJ illustrating by examples the new concepts of pointcuts, advices and inter-type declarations. This tour is the opportunity to discuss how the AspectJ model answers some of the issues raised by post-object oriented programming but also to enforce the relationship between reflective and aspect-oriented languages.

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   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.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. AspectJ site.: See, http://eclipse.org/aspectj

  2. Aksit, M., Black, A., Cardelli, L., Cointe, P., Guerraoui, R., et al.: Strategic Research Directions in Object-Oriented Programming. ACM Computing Surveys 8(4), 691–700 (1996)

    Google Scholar 

  3. Bouraqadi-Saâdani, M.N., Ledoux, T., Rivard, F.: Safe Metaclass Programming. In: Craig Chambers (eds.) Proceedings of OOPSLA 1998, Vancouver, British Columbia, USA (October 1998); ACM-Sigplan 33(10), 84-96 (1998)

    Google Scholar 

  4. Bouraqadi-Saâdani, M.N., Ledoux, T.: Supporting AOP Using Reflection. In: [14], ch.12, pp. 261–282 (2005)

    Google Scholar 

  5. Chiba, S.: Generative Programming from a Post Object-Oriented Programming ViewPoint. In: Proceedings of the Unconventional Programming Paradigms workshop, Mont St Michel, France. LNCS (2005)

    Google Scholar 

  6. Czarnecki, K., Eisenecker, U.W.: Generative Programming. In: Methods, Tools, and Applications. Addison-Wesley, Reading (2000)

    Google Scholar 

  7. Cointe, P.: Metaclasses are First Class: The ObjVlisp Model. In: Archibald, J.L. (ed.) Proceedings of the second ACM SIGPLAN conference on Object-oriented Programming, Systems, Languages, and Applications (OOPSLA 1987), Orlando, Florida, USA (October 1987); ACM SIGPLAN Notices 22(12),156-167 (1987)

    Google Scholar 

  8. Cointe, P.: CLOS and Smalltalk: a Comparison. In: [21], ch. 9, pp. 215–250. MIT Press, Cambridge (1993)

    Google Scholar 

  9. Cointe, P.: Les langages à objets. Technique et Science Informatiques (TSI) 19(1,2,3), 139–146 (2000)

    Google Scholar 

  10. Cointe, P., Noyé, J., Douence, R., Ledoux, T., Menaud, J.M., Muller, G., Sudholt, M.: Programmation post-objets. Des langages d’aspect aux langages de composants. RSTI série L’objet 10(4), 119–143 (2004), http://www.lip6.fr/colloque-JFP

    Google Scholar 

  11. Cointe, P.: Towards Generative Programming. In: Banâtre, J.-P., Fradet, P., Giavitto, J.-L., Michel, O. (eds.) UPP 2004. LNCS, vol. 3566, pp. 302–312. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  12. Denier, S.: Traits Programming with AspectJ. RSTI série L’objet. Special issue on Aspect-Oriented Programming. See also pp. 62-78 of the unformal proceeding (2005) (to appear), at http://www.emn.fr/x-info/obasco/events/jfdlpa04/actes/

  13. Douence, R., Motelet, O., Sudholt, M.: A formal definition of crosscuts. In: Yonezawa, A., Matsuoka, S. (eds.) Reflection 2001. LNCS, vol. 2192, pp. 170–186. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  14. Filman, E.R., Elrad, T., Clarke, S., Aksit, M.: Aspect-Oriented Software Development. Addison-Wesley, Reading (2005)

    Google Scholar 

  15. Gabriel, R.: Objects Have Failed. See http://www.dreamsongs.com/Essays.html and also http://www.lip6.fr/colloque-JFP/

  16. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. In: Elements of Reusable Object-Oriented Software. Professional Computing Series. Addison-Wesley, Reading (1995)

    Google Scholar 

  17. Kiczales, G., Ashley, J., Rodriguez, L., Vahdat, A., Bobrow, D.: Metaobject Protocols Why We Want Them and What Else They Can Do. In: [26], ch. 9, pp. 101–118. MIT Press, Cambridge (1993)

    Google Scholar 

  18. Hannemann, J., Kiczales, G.: Design Pattern Implementation in Java and AspectJ. In: Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2002 (2002); ACM SIGPLAN Notices 37(11), 161–173 (2002)

    Google Scholar 

  19. 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 

  20. Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.: An Overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–354. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  21. Kiselev, I.: Aspect-Oriented Progamming with AspectJ. Sams Publishing, USA (2003)

    Google Scholar 

  22. Kojarski, S., Lorenz, D., Hirschfeld, R.: Reflective Mechanism in AOP Languages. Draft paper

    Google Scholar 

  23. Ledoux, T.: OpenCorba: A Reflective Open Broker. In: Cointe, P. (ed.) Reflection 1999. LNCS, vol. 1616, pp. 197–214. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  24. McAffer, J.: Meta-level programming with codA. In: Olthoff, W. (ed.) ECOOP 1995. LNCS, vol. 952, pp. 190–214. Springer, Heidelberg (1995)

    Google Scholar 

  25. Mezini, M., Ostermann, K.: A Comparison of Program Generation with Aspect-Oriented Programming. In: Banâtre, J.-P., Fradet, P., Giavitto, J.-L., Michel, O. (eds.) UPP 2004. LNCS, vol. 3566, pp. 342–354. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  26. Pæpcke, A.: Object-Oriented Programming: The CLOS perspective. MIT Press, Cambridge (1993)

    Google Scholar 

  27. Rodriguez, L., Tanter, E., Noyé, J.: Supporting Dynamic Crosscutting with Partial Behavioral Reflection : a Case Study. RSTI série L’objet. Special issue on Aspect-Oriented Programming (to appear). See also pp. 118-137 of the unformal proceeding (2005), at http://www.emn.fr/x-info/obasco/events/jfdlpa04/actes/

  28. Scharli, N., Ducasse, S., Nierstrasz, O., Black, P.: Traits: Composable Units of Behaviour. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 248–274. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  29. Tanter, E., Noyé, J., Caromel, D., Cointe, P.: Partial Behavioral Reflection: Spatial and Temporal Selection of Reification. In: Proceedings of the 18th ACM SIGPLAN conference on Object-Oriented Programming, Systems, Languages, and Applications. OOPSLA 2003 (2003); ACM SIGPLAN Notices 38(11), 27-46 (2003)

    Google Scholar 

  30. Thomas, D.: Reflective Software Engineering - From MOPS to AOSD. Journal Of Object Technology 1(4), 17–26 (2002)

    Article  Google Scholar 

  31. Wand, M.: Understanding Aspects. Invited talk at ICFP 2003 (2003), Available at http://www.ccs.neu.edu/home/wand/ICFP

  32. Wand, M., Kiczales, G., Dutchyn, C.: A semantics for Advice and Dynamic Join Points in AOP. ACM Toplas 26(5), 890–910 (2004)

    Article  Google Scholar 

  33. Wegner, P.: Dimensions of Object-Based Language Design. In: Archibald, J.L. (ed.) Proceedings of the second ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, OOPSLA 1987, Orlando, Florida, USA (October 1987); ACM SIGPLAN Notices 22(12), 168-182 (1987)

    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

Cointe, P., Albin-Amiot, H., Denier, S. (2005). From (Meta) Objects to Aspects: A Java and AspectJ Point of View. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, WP. (eds) Formal Methods for Components and Objects. FMCO 2004. Lecture Notes in Computer Science, vol 3657. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11561163_4

Download citation

  • DOI: https://doi.org/10.1007/11561163_4

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-29131-2

  • Online ISBN: 978-3-540-31939-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics