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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Kiczales, G., et al.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, Springer, Heidelberg (1997)
Filman, R.E., et al.: Aspect-Oriented Software Development. Addison-Wesley, Reading (2004)
Kiczales, G., et al.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Communications of the ACM 15(12), 1053–1058 (1972)
Xu, J., Rajan, H., Sullivan, K.: Understanding aspects via implicit invocation. In: Automated Software Engineering (ASE), IEEE Computer Society Press, Los Alamitos (2004)
Filman, R., Friedman, D.: Aspect-oriented programming is quantification and obliviousness. In: Workshop on Advanced Separation of Concerns, OOPSLA (2000)
Gybels, K., Brichau, J.: Arranging language features for more robust pattern-based crosscuts. In: Aspect-Oriented Software Development (AOSD) (2003)
Hirschfeld, R.: Aspect-Oriented Programming with Aspects. In: Aksit, M., Mezini, M., Unland, R. (eds.) NODe 2002. LNCS, vol. 2591, Springer, Heidelberg (2003)
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)
The Smalltalk Open Unification Language (SOUL), http://prog.vub.ac.be/SOUL
Brant, J., et al.: Wrappers to the rescue. Lecture Notes in Computer Science, Springer, Heidelberg (1998)
Rivard, F.: Smalltalk: a reflective language. In: Proceedings of the Reflection Conference (1996)
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)
Nilsson, U., M, J.: Logic, Programming and Prolog, 2nd edn. Wiley, Chichester (1995), http://www.ida.liu.se/~ulfni/lpp/copyright.html
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
Kowalski, R.: Algorithm = logic + control. Communications of the ACM 22(7), 424–436 (1979), doi:10.1145/359131.359136
Gamma, E., et al.: Design Patterns, Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)
Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Reading (1999)
Lopes, C., et al.: Illustrations of crosscutting. In: Tarr, P., et al. (eds.) International Workshop on Aspects and Dimensional Computing at ECOOP (2000)
Jones, N.D., Gomard, C.K., Sestoft, P.: Partial Evaluation and Automatic Program Generation. Prentice Hall International, Englewood Cliffs (1993)
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
Koppen, C., Stoerzer, M.: Pcdiff: Attacking the fragile pointcut problem. In: First European Interactive Workshop on Aspects in Software (EIWAS) (2004)
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)
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)
Ostermann, K., Mezini, M., Bockisch, C.: Expressive pointcuts for increased modularity. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, Springer, Heidelberg (2005)
Douence, R., et al.: An expressive aspect language for system applications with arachne. In: Aspect-Oriented Software Development (AOSD) (2005)
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)
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)
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)
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)
Griswold, W., et al.: Modular software design with crosscutting interfaces. IEEE Software, Special Issue on Aspect-Oriented Programming (January/February 2006)
Author information
Authors and Affiliations
Editor information
Rights 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)