Skip to main content

Application-Specific Models and Pointcuts Using a Logic Meta Language

  • Conference paper
Advances in Smalltalk (ISC 2006)

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

Included in the following conference series:

Abstract

In contemporary aspect-oriented languages, pointcuts are usually specified directly in terms of the structure of the source code. The definition of such low-level pointcuts requires aspect developers to have a profound understanding of the entire application’s implementation and often leads to complex, fragile, and hard to maintain pointcut definitions. To resolve these issues, we present an aspect-oriented programming system that features a logic-based pointcut language that is open such that it can be extended with application-specific pointcut predicates. These predicates define an application-specific model that serves as a contract that base-program developers provide and aspect developers can depend upon. As a result, pointcuts can be specified in terms of this more high-level model of the application which confines all intricate implementation details that are otherwise exposed in the pointcut definitions themselves.

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. Kiczales, G., et al.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  2. Filman, R.E., et al.: Aspect-Oriented Software Development. Addison-Wesley, Reading (2004)

    Google Scholar 

  3. Kiczales, G., et al.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  4. Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Communications of the ACM 15(12), 1053–1058 (1972)

    Article  Google Scholar 

  5. Xu, J., Rajan, H., Sullivan, K.: Understanding aspects via implicit invocation. In: Automated Software Engineering (ASE), IEEE Computer Society Press, Los Alamitos (2004)

    Google Scholar 

  6. Filman, R., Friedman, D.: Aspect-oriented programming is quantification and obliviousness. In: Workshop on Advanced Separation of Concerns, OOPSLA (2000)

    Google Scholar 

  7. Gybels, K., Brichau, J.: Arranging language features for more robust pattern-based crosscuts. In: Aspect-Oriented Software Development (AOSD) (2003)

    Google Scholar 

  8. Hirschfeld, R.: Aspect-Oriented Programming with Aspects. In: Aksit, M., Mezini, M., Unland, R. (eds.) NODe 2002. LNCS, vol. 2591, Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  9. Gybels, K., Brichau, J.: Arranging language features for more robust pattern-based crosscuts. In: Proceedings of the Second International Conference of Aspect-Oriented Software Development (2003)

    Google Scholar 

  10. The Smalltalk Open Unification Language (SOUL), http://prog.vub.ac.be/SOUL

  11. Brant, J., et al.: Wrappers to the rescue. Lecture Notes in Computer Science, Springer, Heidelberg (1998)

    Google Scholar 

  12. Rivard, F.: Smalltalk: a reflective language. In: Proceedings of the Reflection Conference (1996)

    Google Scholar 

  13. Mens, K., Michiels, I., Wuyts, R.: Supporting software development through declaratively codified programming patterns. Journal on Expert Systems with Applications 23(4), 405–413 (2002)

    Article  Google Scholar 

  14. Nilsson, U., M, J.: Logic, Programming and Prolog, 2nd edn. Wiley, Chichester (1995), http://www.ida.liu.se/~ulfni/lpp/copyright.html

    Google Scholar 

  15. Gybels, K., et al.: Inter-language reflection: A conceptual model and its implementation. Elsevier Journal on Computer Languages, Systems & Structures 32, 109–124 (2006), http://prog.vub.ac.be/Publications/2005/vub-prog-tr-05-13.pdf

    Article  MATH  Google Scholar 

  16. Kowalski, R.: Algorithm = logic + control. Communications of the ACM 22(7), 424–436 (1979), doi:10.1145/359131.359136

    Article  MATH  Google Scholar 

  17. Gamma, E., et al.: Design Patterns, Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)

    Google Scholar 

  18. Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Reading (1999)

    Google Scholar 

  19. Lopes, C., et al.: Illustrations of crosscutting. In: Tarr, P., et al. (eds.) International Workshop on Aspects and Dimensional Computing at ECOOP (2000)

    Google Scholar 

  20. Jones, N.D., Gomard, C.K., Sestoft, P.: Partial Evaluation and Automatic Program Generation. Prentice Hall International, Englewood Cliffs (1993)

    MATH  Google Scholar 

  21. Masuhara, H., Kiczales, G., Dutchyn, C.: Compilation semantics of aspect-oriented programs. In: Leavens, G.T., Cytron, R. (eds.) Foundations of Aspect-Oriented Languages Workshop at AOSD, Number 02-06 in Tech Report, Department of Computer Science, Iowa State University, pp. 17–26 (2002), ftp://ftp.cs.iastate.edu/pub/techreports/TR02-06/TR.pdf

  22. Koppen, C., Stoerzer, M.: Pcdiff: Attacking the fragile pointcut problem. In: First European Interactive Workshop on Aspects in Software (EIWAS) (2004)

    Google Scholar 

  23. Kellens, A., et al.: Managing the evolution of aspect-oriented software with model-based pointcuts. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  24. Mens, K., et al.: Co-evolving code and design with intensional views - a case study. Computer Languages, Systems and Structures 32(2-3), 140–156 (2006)

    Article  MATH  Google Scholar 

  25. Ostermann, K., Mezini, M., Bockisch, C.: Expressive pointcuts for increased modularity. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, Springer, Heidelberg (2005)

    Google Scholar 

  26. Douence, R., et al.: An expressive aspect language for system applications with arachne. In: Aspect-Oriented Software Development (AOSD) (2005)

    Google Scholar 

  27. Vanderperren, W., et al.: Stateful aspects in JAsCo. In: Gschwind, T., Aßmann, U., Nierstrasz, O. (eds.) SC 2005. LNCS, vol. 3628, Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  28. Havinga, W., Nagy, I., Bergmans, L.: Introduction and derivation of annotations in AOP: Applying expressive pointcut languages to introductions. In: First European Interactive Workshop on Aspects in Software (2005)

    Google Scholar 

  29. Kiczales, G., Mezini, M.: Separation of concerns with procedures, annotations, advice and pointcuts. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, Springer, Heidelberg (2005)

    Google Scholar 

  30. Sullivan, K., et al.: On the criteria to be used in decomposing systems into aspects. In: Symposium on the Foundations of Software Engineering joint with the European Software Engineering Conference (ESEC/FSE 2005), ACM Press, New York (2005)

    Google Scholar 

  31. Griswold, W., et al.: Modular software design with crosscutting interfaces. IEEE Software, Special Issue on Aspect-Oriented Programming (January/February 2006)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Wolfgang De Meuter

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer Berlin Heidelberg

About this paper

Cite this paper

Brichau, J., Kellens, A., Gybels, K., Mens, K., Hirschfeld, R., D’Hondt, T. (2007). Application-Specific Models and Pointcuts Using a Logic Meta Language. In: De Meuter, W. (eds) Advances in Smalltalk. ISC 2006. Lecture Notes in Computer Science, vol 4406. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-71836-9_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-71836-9_1

  • Publisher Name: Springer, Berlin, Heidelberg

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

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

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics