Abstract
Aspect-Oriented Software Development (AOSD) offers new insights and tools for the modular development of systems with cross-cutting features. Current tool support for AOSD is provided mainly in the form of code-level constructs. This paper presents a way to express cross-cutting features as logical invariants and to use generative techniques to produce the kind of code that is usually written manually in AOSD. In order to state invariants that express cross-cutting features, we often need to reify certain extra-computational values such as history or the runtime call stack. The generative approach is illustrated by a variety of examples.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Aspect-Oriented Software Development, www.aosd.net
Elrad, T., Filman, R., Bader, A.(eds.): Communications of the ACM– Special Issue on Aspect-Oriented Programming. 44(10) (2001)
Kiczales, G., et al.: An Overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–353. Springer, Heidelberg (2001)
Erlingsson, U., Schneider, F.: SASI enforcement of security policies: A retrospective. In: Proceedings of the New Security Paradigms Workshop, Ontario, Canada (1999)
Paige, R., Koenig, S.: Finite differencing of computable expressions. ACM Transactions on Programming Languages and Systems 4, 402–454 (1982)
Westfold, S., Smith, D.: Synthesis of efficient constraint satisfaction programs. Knowledge Engineering Review 16, 69–84 (2001) (Special Issue on AI and OR)
Paige, R.: Programming with invariants. IEEE Software 3, 56–69 (1986)
Deng, X., Dwyer, M., Hatcliff, J., Mizuno, M.: Invariant-based specification, synthesis and verification of synchronization in concurrent programs. In: Proceedings of the 24th International Conference on Software Engineering (May 2002)
Pavlovic, D., Smith, D.R.: Evolving specifications. Technical report, Kestrel Institute (2004)
Kestrel Institute: Specware System and documentation. (2003), http://www.specware.org/
Smith, D.R.: KIDS – a semi-automatic program development system. IEEE Transactions on Software Engineering Special Issue on Formal Methods in Software Engineering 16, 1024–1043 (1990)
Rehof, J., Mogenson, T.: Tractable constraints in finite semilattices. Science of Computer Programming 35, 191–221 (1999)
Smith, D.R., Parra, E.A., Westfold, S.J.: Synthesis of planning and scheduling software. In: Tate, A. (ed.) Advanced Planning Technology, pp. 226–234. AAAI Press, Menlo Park (1996)
Lieberherr, K., Orleans, D., Ovlinger, J.: Aspect-oriented programming with adaptive methods. CACM 44(10), 39–42 (2001)
Ossher, H., Tarr, P.: Using multidimensional separation of concerns to (re)shape evolving software. CACM 44(10), 43–50 (2001)
Wand, M., Kiczales, G., Dutchyn, C.: A semantics for advice and dynamic join points in aspect-oriented programming. ACM Transactions on Programming Languages and Systems (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Smith, D.R. (2004). A Generative Approach to Aspect-Oriented Programming. In: Karsai, G., Visser, E. (eds) Generative Programming and Component Engineering. GPCE 2004. Lecture Notes in Computer Science, vol 3286. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-30175-2_3
Download citation
DOI: https://doi.org/10.1007/978-3-540-30175-2_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-23580-4
Online ISBN: 978-3-540-30175-2
eBook Packages: Springer Book Archive