Summary
Aspect-Oriented Programming (AOP) offers new insights and tools for the modular development of systems with crosscutting features. Current tool support for AOP is provided mainly in the form of code-level constructs. This paper presents a way to express crosscutting features as logical invariants and then to generate the kind of code that is usually produced from manually written aspects. In order to state invariants that express crosscutting features, we often need to reify certain extra-computational values such as history or the runtime call stack. The invariant approach is illustrated by a variety of examples.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
C. Allan, P. Avgustinov, A. S. Christensen, L. J. Hendren, S. Kuzins, O. Lhoták, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble: Adding trace matching with free variables to AspectJ. In: Proceedings of OOPSLA, 345–3640, 2005.
Aspect-Oriented Software Development website 2003, http://www.aosd.net/
X. Deng, M. Dwyer, J. Hatcliff, and M. Mizuno: Invariant-based specification, synthesis and verification of synchronization in concurrent programs. In: Proceedings of the 24 th International Conference on Software Engineering, May 2002.
R. Douence, P. Fradet, and M. Suedholt: Composition, reuse and interaction analysis of stateful aspects. In: Aspect-Oriented Software Development (AOSD04), ACM Press, 141–150, 2004.
T. Elrad, R. Filman, and A. Bader (Eds.): Special Issue on Aspect-Oriented Programming. Vol. 44(10). Communications of the ACM, 2001.
U. Erlingsson and F. Schneider: SASI enforcement of security policies: A retrospective. In: Proceedings of the New Security Paradigms Workshop, Ontario, Canada, 1999.
S. Hanenberg and R. Unland: Parametric introductions. In: Aspect-Oriented Software Development, 2003.
Kestrel Institute, Specware System and documentation, 2003. Available at:http://www.specware.org/.
G. Kiczales et al.: An Overview of AspectJ. In: Proc. ECOOP, LNCS 2072, Springer, 327–353, 2001.
G. Kniesel, P. Costanza, and M. Austermann: JMangler – a powerful back-end for aspect-oriented programming. In R. Filman, T. Elrad, S. Clarke, and M. Aksit, (Eds.): Aspect-Oriented Software Development, Prentice-Hall, 2004.
R. Laddad: AspectJ in Action. Manning Publishing Co., 2003.
D. H. Lorenz and T. Skotiniotis: Extending design by contract for aspect-oriented programming. Smithsonian/NASA Astrophysics Data System. cs/0501070, 2005.http://adsabs.harvard.edu/abs/2005cs.
H. Li, S. Krishnamurthi, and K. Fischer: Modular verification of open features through three-valued model checking. Automated Software Engineering Journal 12, 349–382, 2005.
R. Paige: Programming with invariants. IEEE Software 3:11, 56–69, 1986.
R. Paige and S. Koenig: Finite differencing of computable expressions. ACM Transactions on Programming Languages and Systems 4:3, 402–454, 1982.
D. Pavlovic and D. R. Smith: Evolving specifications. Technical Report, Kestrel Institute, Palo Alto, CA, USA, 2004.
J. Rehof and T. Mogenson: Tractable constraints in finite semilattices. Science of Computer Programming 35, 191–221, 1999.
T. Rho and G. Kniesel: Uniform genericity for aspect languages. Technical Report IAI-TR-2004-4, Computer Science Department III, University of Bonn, Germany, 2004.
D. R. Smith: KIDS – a semi-automatic program development system. IEEE Transactions on Software Engineering, Special Issue on Formal Methods in Software Engineering 16, 1024–1043, 1990.
D. R. Smith, E. A. Parra, and S. J. Westfold: Synthesis of planning and scheduling software. In Tate, A. (Ed.): Advanced Planning Technology, AAAI Press, Menlo Park, 226–234, 1996.
D. R. Smith and K. Havelund: Automatic enforcement of error-handling policies. Technical report, Kestrel Technology, 2004. http://www.kestreltechnology.com/.
É. Tanter and J. Noyé: A versatile kernel for multi-language AOP. In: Proceedings of the 4 th ACM SIGPLAN/SIGSOFT Conference on Generative Programming and Component Engineering (GPCE 2005). LNCS 3676, Tallin, Estonia, Springer, 173–188, 2005.
W. Vanderperren, D. Suvee, M. Cibran, and B. de Fraine: Stateful aspects in JAsCo. In: Proceedings of Software Composition 2005, Springer LNCS 3628, 167–181, 2005.
R. Walker and K. Viggers: Implementing protocols via declarative event patterns. In: SIGSOFT Foundations of Software Engineering (FSE04), ACM Press, 159–169, 2004.
M. Wand, G. Kiczales, and C. Dutchyn: A semantics for advice and dynamic join points in aspect-oriented programming. ACM Transactions on Programming Languages and Systems 26(5), 890–910, 2003.
S. Westfold and D. Smith: Synthesis of efficient constraint satisfaction programs. Knowledge Engineering Review 16, 69–84, Special Issue on AI and OR, 2001.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2008 Springer
About this chapter
Cite this chapter
Smith, D.R. (2008). Aspects as Invariants. In: Danvy, O., Mairson, H., Henglein, F., Pettorossi, A. (eds) Automatic Program Development. Springer, Dordrecht. https://doi.org/10.1007/978-1-4020-6585-9_16
Download citation
DOI: https://doi.org/10.1007/978-1-4020-6585-9_16
Publisher Name: Springer, Dordrecht
Print ISBN: 978-1-4020-6584-2
Online ISBN: 978-1-4020-6585-9
eBook Packages: Computer ScienceComputer Science (R0)