Skip to main content

Aspects as Invariants

  • Chapter
  • 321 Accesses

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD   109.99
Price excludes VAT (USA)
  • Durable hardcover 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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

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

    Google Scholar 

  2. Aspect-Oriented Software Development website 2003, http://www.aosd.net/

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

    Google Scholar 

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

    Google Scholar 

  5. T. Elrad, R. Filman, and A. Bader (Eds.): Special Issue on Aspect-Oriented Programming. Vol. 44(10). Communications of the ACM, 2001.

    Google Scholar 

  6. U. Erlingsson and F. Schneider: SASI enforcement of security policies: A retrospective. In: Proceedings of the New Security Paradigms Workshop, Ontario, Canada, 1999.

    Google Scholar 

  7. S. Hanenberg and R. Unland: Parametric introductions. In: Aspect-Oriented Software Development, 2003.

    Google Scholar 

  8. Kestrel Institute, Specware System and documentation, 2003. Available at:http://www.specware.org/.

  9. G. Kiczales et al.: An Overview of AspectJ. In: Proc. ECOOP, LNCS 2072, Springer, 327–353, 2001.

    Google Scholar 

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

    Google Scholar 

  11. R. Laddad: AspectJ in Action. Manning Publishing Co., 2003.

    Google Scholar 

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

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

    Article  Google Scholar 

  14. R. Paige: Programming with invariants. IEEE Software 3:11, 56–69, 1986.

    Article  Google Scholar 

  15. R. Paige and S. Koenig: Finite differencing of computable expressions. ACM Transactions on Programming Languages and Systems 4:3, 402–454, 1982.

    Article  Google Scholar 

  16. D. Pavlovic and D. R. Smith: Evolving specifications. Technical Report, Kestrel Institute, Palo Alto, CA, USA, 2004.

    Google Scholar 

  17. J. Rehof and T. Mogenson: Tractable constraints in finite semilattices. Science of Computer Programming 35, 191–221, 1999.

    Article  MATH  MathSciNet  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  21. D. R. Smith and K. Havelund: Automatic enforcement of error-handling policies. Technical report, Kestrel Technology, 2004. http://www.kestreltechnology.com/.

  22. É. 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.

    Chapter  Google Scholar 

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

    Google Scholar 

  24. R. Walker and K. Viggers: Implementing protocols via declarative event patterns. In: SIGSOFT Foundations of Software Engineering (FSE04), ACM Press, 159–169, 2004.

    Google Scholar 

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

    Article  Google Scholar 

  26. S. Westfold and D. Smith: Synthesis of efficient constraint satisfaction programs. Knowledge Engineering Review 16, 69–84, Special Issue on AI and OR, 2001.

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

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

Publish with us

Policies and ethics