Skip to main content

Part of the book series: Lecture Notes in Computer Science ((TAOSD,volume 3880))

Abstract

CaesarJ is an aspect-oriented language which unifies aspects, classes and packages in a single powerful construct that helps to solve a set of different problems of both aspect-oriented and component-oriented programming. The paper gradually introduces the concepts of the language and illustrates them by showing how they can be used for noninvasive component refinement and integration, as well as for development of well modularized flexible aspects. In this way we demonstrate that the combination of aspect-oriented constructs for joinpoint interception with advanced modularization techniques like virtual classes and propagating mixin composition can open the path towards large-scale aspect components.

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

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 in aspect-oriented programming. In: Workshop on Foundations of Aspect-Oriented Languages (FOAL) at AOSD 2004 (2004)

    Google Scholar 

  2. Arnold, K., Gosling, J.: The Java Programming Language. Addison-Wesley, Reading (1996)

    MATH  Google Scholar 

  3. Barrett, K., Cassels, B., Haahr, P., Moon, D.A., Playford, K., Withington, P.T.: A monotonic superclass linearization for Dylan. In: Proceedings of the 11th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 69–82. ACM, New York (1996)

    Google Scholar 

  4. Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling step-wise refinement. In: ICSE 2003: Proceedings of the 25th International Conference on Software Engineering, pp. 187–197. IEEE Computer Society, Los Alamitos (2003)

    Chapter  Google Scholar 

  5. Batory, D., Singhal, V., Thomas, J., Dasari, S., Geraci, B., Sirkin, M.: The GENVOCA model of software-system generators. IEEE Softw. 11(5), 89–94 (1994)

    Article  Google Scholar 

  6. Black, A.P., Scharli, N.: Traits: Tools and methodology. In: ICSE 2004: Proceedings of the 26th International Conference on Software Engineering, pp. 676–686. IEEE Computer Society, Washington (2004)

    Google Scholar 

  7. Bockisch, C., Haupt, M., Mezini, M., Ostermann, K.: Virtual machine support for dynamic join points. In: AOSD 2004: Proceedings of the 3rd International Conference on Aspect-Oriented Software Development, pp. 83–92. ACM, New York (2004)

    Google Scholar 

  8. Boner, J.: Aspectwerkz, http://aspectwerkz.codehaus.org/index.html

  9. Bracha, G., Cook, W.: Mixin-based inheritance. In: OOPSLA/ECOOP 1990: Proceedings of the European Conference on Object-Oriented Programming Systems, Languages, and Applications, pp. 303–311. ACM, New York (1990)

    Google Scholar 

  10. Clifton, C., Leavens, G.T., Chambers, C., Millstein, T.: Multijava: Modular open classes and symmetric multiple dispatch for java. SIGPLAN Not. 35(10), 130–145 (2000)

    Article  Google Scholar 

  11. Douence, R., Südholt, M.: A model and a tool for event-based aspect-oriented programming. Technical Report 02/11/INFO, Ecole des Mines de Nantes (2002)

    Google Scholar 

  12. Ernst, E.: gbeta—A Language With Virtual Attributes, Block Structure, and Propagating, Dynamic Inheritance. PhD thesis, Department of Computer Science, University of Aarhus, Denmark (1999)

    Google Scholar 

  13. Ernst, E.: Propagating Class and Method Combination. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, pp. 67–91. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  14. Ernst, E.: Family polymorphism. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 303–326. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  15. Ernst, E.: Higher-order hierarchies. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 303–329. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  16. Ernst, E., Ostermann, K., Cook, W.: A virtual class calculus. In: 33rd ACM Symposium on Principles of Programming Languages (POPL 2006). ACM SIGPLAN-SIGACT (to appear, 2006)

    Google Scholar 

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

    MATH  Google Scholar 

  18. Hallpap, J.: Towards Caesar: Dynamic deployment and aspectual polymorphism. Master’s thesis, Department of Computer Science, Darmstadt University of Technology (2003), http://www.st.informatik.tu-darmstadt.de/database/theses/thesis/DiplomaThesis.pdf?id=15

  19. Hanenberg, S., Unland, R.: Parametric introductions. In: AOSD 2003: Proceedings of the 2nd International Conference on Aspect-Oriented Software Development, pp. 80–89. ACM, New York (2003)

    Google Scholar 

  20. Hannemann, J., Kiczales, G.: Design pattern implementation in Java and AspectJ. In: OOPSLA 2002: Proceedings of the 17th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 161–173. ACM, New York (2002)

    Chapter  Google Scholar 

  21. Haupt, M., Mezini, M., Bockisch, C., Dinkelaker, T., Eichberg, M., Krebs, M.: An execution layer for aspect-oriented programming languages. In: VEE 2005: Proceedings of the 1st ACM/USENIX International Conference on Virtual Execution Environments, pp. 142–152. ACM, New York (2005)

    Chapter  Google Scholar 

  22. Herrmann, S.: Object Teams: Improving Modularity for Crosscutting Collaborations. In: Aksit, M., Mezini, M., Unland, R. (eds.) NODe 2002. LNCS, vol. 2591, pp. 248–264. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

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

  24. Hölzle, U.: Integrating Independently-Developed Components in Object-Oriented Languages. In: Nierstrasz, O. (ed.) ECOOP 1993. LNCS, vol. 707, pp. 36–56. Springer, Heidelberg (1993)

    Chapter  Google Scholar 

  25. JBoss Inc. JBoss aop beta3 (2004), http://www.jboss.org

  26. 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–353. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  27. Kiczales, G., Mezini, M.: Aspect-oriented programming and modular reasoning. In: ICSE 2005: Proceedings of the 27th International Conference on Software Engineering, pp. 49–58. ACM, New York (2005)

    Google Scholar 

  28. Kniesel, G., Rho, T., Hanenberg, S.: Evolvable pattern implementations need generic aspects. In: RAM-SE, Fakultät für Informatik, Universität Magdeburg, Germany, pp. 111–126 (2004)

    Google Scholar 

  29. Lämmel, R.: A semantical approach to method-call interception. In: AOSD 2002: Proceedings of the 1st International Conference on Aspect-Oriented Software Development, pp. 41–55. ACM, New York (2002)

    Google Scholar 

  30. Lämmel, R., Stenzel, C.: Semantics-Directed Implementation of Method-Call Interception. IEEE Proceedings Software 151(2), 109–128 (2004)

    Article  Google Scholar 

  31. Lieberherr, K., Lorenz, D., Mezini, M.: Programming with aspectual components. Technical Report NU-CCS-99-01, Northeastern University, Boston, MA (1999)

    Google Scholar 

  32. Lieberherr, K., Lorenz, D., Ovlinger, J.: Aspectual collaborations – combining modules and aspects. Journal of British Computer Society 46(5), 542–565 (2003)

    MATH  Google Scholar 

  33. Loughran, N., Rashid, A.: Framed Aspects: Supporting Variability and Configurability for AOP. In: Bosch, J., Krueger, C. (eds.) ICOIN 2004 and ICSR 2004. LNCS, vol. 3107, pp. 127–140. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  34. Madsen, O.L., Møller-Pedersen, B.: Virtual classes: A powerful mechanism in object-oriented programming. In: OOPSLA 1989: Conference Proceedings on Object-Oriented Programming Systems, Languages and Applications, pp. 397–406. ACM, New York (1989)

    Google Scholar 

  35. Madsen, O.L., Møller-Pedersen, B., Nygaard, K.: Object Oriented Programming in the Beta Programming Language. Addison-Wesley, Reading (1993)

    Google Scholar 

  36. Mezini, M., Lieberherr, K.: Adaptive plug-and-play components for evolutionary software development. In: OOPSLA 1998: Proceedings of the 13th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 97–116. ACM, New York (1998)

    Google Scholar 

  37. Mezini, M., Ostermann, K.: Integrating independent components with on-demand remodularization. In: OOPSLA 2002: Proceedings of the 17th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 52–67. ACM, New York (2002)

    Chapter  Google Scholar 

  38. Mezini, M., Ostermann, K.: Conquering aspects with Caesar. In: AOSD 2003: Proceedings of the 2nd International Conference on Aspect-Oriented Software Development, pp. 90–99. ACM, New York (2003)

    Google Scholar 

  39. Mezini, M., Seiter, L., Lieberherr, K.: Component integration with pluggable composite adapters. In: Aksit, M. (ed.) Software Architectures and Component Technology: The State of the Art in Research and Practice. Kluwer, Dordrecht (2000)

    Google Scholar 

  40. Millstein, T., Reay, M., Chambers, C.: Relaxed multijava: Balancing extensibility and modular typechecking. SIGPLAN Not. 38(11), 224–240 (2003)

    Article  Google Scholar 

  41. Nishizawa, M., Chiba, S., Tatsubori, M.: Remote pointcut: A language construct for distributed aop. In: AOSD 2004: Proceedings of the 3rd International Conference on Aspect-Oriented Software Development, pp. 7–15. ACM, New York (2004)

    Google Scholar 

  42. Nystrom, N., Chong, S., Myers, A.C.: Scalable extensibility via nested inheritance. SIGPLAN Not. 39(10), 99–115 (2004)

    Article  Google Scholar 

  43. Ostermann, K.: Dynamically Composable Collaborations with Delegation Layers. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, pp. 89–110. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

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

  45. Pawlak, R., Seinturier, L., Duchien, L., Florin, G.: JAC: A Flexible Solution for Aspect-Oriented Programming in Java. In: Yonezawa, A., Matsuoka, S. (eds.) Reflection 2001. LNCS, vol. 2192, pp. 1–24. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  46. Popovici, A., Gross, T., Alonso, G.: Dynamic weaving for aspect-oriented programming. In: AOSD 2002: Proceedings of the 1st International Conference on Aspect-Oriented Software Development, pp. 141–147. ACM, New York (2002)

    Google Scholar 

  47. Rajan, H., Sullivan, K.J.: Classpects: Unifying aspect- and object-oriented language design. In: ICSE 2005: Proceedings of the 27th International Conference on Software Engineering, pp. 59–68. ACM, New York (2005)

    Google Scholar 

  48. Smaragdakis, Y., Batory, D.S.: Implementing layered designs with mixin layers. In: ECCOP 1998: Proceedings of the 12th European Conference on Object-Oriented Programming, pp. 550–570. Springer, Heidelberg (1998)

    Google Scholar 

  49. Szyperski, C.: Independently extensible systems – software engineering potential and challenges. In: Proceedings 19th Australian Computer Science Conference, Australian Computer Science Communications, Melbourne (1996)

    Google Scholar 

  50. Szyperski, C.: Component Software – Beyond Object-Oriented Programming. Addison-Wesley, New York (1998)

    Google Scholar 

  51. Tarr, P., Ossher, H.: Hyper/J user and installation manual (1999), http://www.research.ibm.com/hyperspace

  52. Tarr, P., Ossher, H., Harrison, W., Sutton, S.M.: N degrees of separation: Multi-dimensional separation of concerns. In: ICSE 1999: Proceedings International Conference on Software Engineering, pp. 107–119. ACM, New York (1999)

    Google Scholar 

  53. Van Hilst, M., Notkin, D.: Using role components in implement collaboration-based designs. In: OOPSLA 1996: Proceedings of the 11th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 359–369. ACM, New York (1996)

    Google Scholar 

  54. Zenger, M.: Evolving software with extensible modules. In: ECOOP-WS 2002. LNCS, vol. 2548, pp. 92–106. Springer, Heidelberg (2002)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Aracic, I., Gasiunas, V., Mezini, M., Ostermann, K. (2006). An Overview of CaesarJ. In: Rashid, A., Aksit, M. (eds) Transactions on Aspect-Oriented Software Development I. Lecture Notes in Computer Science, vol 3880. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11687061_5

Download citation

  • DOI: https://doi.org/10.1007/11687061_5

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-32972-5

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

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics