skip to main content
10.1145/1029894.1029916acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
Article

Verifying aspect advice modularly

Published:31 October 2004Publication History

ABSTRACT

Aspect-oriented programming has become an increasingly important means of expressing cross-cutting program abstractions. Despite this, aspects lack support for computer-aided verification. We present a technique for verifying aspect-oriented programs (expressed as state machines). Our technique assumes that the set of pointcut designators is known statically, but that the actual advice can vary. This calls for a modular technique that does not require repeated analysis of the entire system every time a developer changes advice. We present such an analysis, addressing several subtleties that arise. We also present an important optimization for handling multiple pointcut designators. We have implemented a prototype verifier and applied it to some simple but interesting cases.

References

  1. Alur, R., K. Etassami and P. Madhusudan. A temporal logic of nested calls and returns. In Tools and Algorithms for the Construction and Analysis of Systems, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  2. Alur, R. and M. Yannakakis. Model checking of hierarchical state machines. In Symposium on the Foundations of Software Engineering, pages 175--188, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Andrews, J. H. Process-algebraic foundations of aspect-oriented programming. In Reflection, pages 187--209, September 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Aßmann, U. Invasive Software Composition. Springer-Verlag, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Clarke, E., O. Grumberg and D. Peled. Model Checking. MIT Press, 2000.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Corbett, J. C., M. B. Dwyer, J. Hatcliff, S. Laubach, C. S. Pasareanu, Robby and H. Zheng. Bandera: Extracting finite-state models from Java source code. In International Conference on Software Engineering, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Denaro, G. and M. Monga. An experience on verification of aspect properties. In International Workshop on Principles of Software Evolution, September 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Deng, X., M. B. Dwyer, J. Hatcliff and M. Mizuno. Invariant-based specification, synthesis, and verification of synchronization in concurrent programs. In International Conference on Software Engineering, pages 442--452, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Devereux, B. Compositional reasoning about aspects using alternating-time logic. In Foundations of Aspect-Oriented Languages, March 2003.Google ScholarGoogle Scholar
  10. Douence, R., P. Fradet and M. Südholt. A framework for the detection and resolution of aspect interactions. In International Conference on Generative Programming and Component Engineering, October 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Dwyer, M. B. and L. A. Clarke. Flow analysis for verifying specifications of concurrent and distributed software. Technical Report UM-CS-1999-052, University of Massachusetts, Computer Science Department, August 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Fisler, K. and S. Krishnamurthi. Modular verification of collaboration-based software designs. In Joint European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering, pages 152--163, September 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Fisler, K. and S. Krishnamurthi. Modular verification of feature-oriented software models. Technical Report WPI-CS-TR-02-28, WPI, Department of Computer Science, October 2002.Google ScholarGoogle Scholar
  14. Giannakopoulou, D., C. Pasareanu and H. Barringer. Assumption generation for software component verification. In IEEE International Symposium on Automated Software Engineering, pages 3--12, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Kiczales, G., J. des Rivières and D. G. Bobrow. The Art of the Metaobject Protocol. MIT Press, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Kiczales, G., E. Hilsdale, J. Hugunin, M. Kersten, J. Palm and W. Griswold. An overview of AspectJ. In European Conference on Object-Oriented Programming, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Kiczales, G., J. Lamping, A. Mendhekar, C. Maeda, C. V. Lopes, J.-M. Loingtier and J. Irwin. Aspect-oriented programming. In European Conference on Object-Oriented Programming, June 1997.Google ScholarGoogle ScholarCross RefCross Ref
  18. Kupferman, O., M. Vardi and P. Wolper. Module checking. In International Conference on Computer-Aided Verification, number 1102 in Lecture Notes in Computer Science, pages 75--86. Springer-Verlag, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Laster, K. and O. Grumberg. Modular model checking of software. In Conference on Tools and Algorithms for the Construction and Analysis of Systems, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Li, H. C., S. Krishnamurthi and K. Fisler. Modular verification of open features through three-valued model checking. Automated Software Engineering: An International Journal, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Lieberherr, K. J. Adaptive Object-Oriented Programming. PWS Publishing, Boston, MA, USA, 1996.Google ScholarGoogle Scholar
  22. Masuhara, H., G. Kiczales and C. Dutchyn. A compilation and optimization model for aspect-oriented programs. In Compiler Construction, pages 46--60, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Mousavi, M., G. Russello, M. Chaudron, M. Reniers, T. Basten, A. Corsaro, S. Shukla, R. Gupta and D. C. Schmidt. Using Aspect-GAMMA in design and verification of embedded systems. In International Workshop on High Level Design Validation and Test, October 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Nelson, T., D. D. Cowan and P. S. C. Alencar. Supporting formal verification of crosscutting concerns. In Reflection, pages 153--169, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Regimbal, S., J.-F. Lemire, Y. Savaria, G. Bois, E. M. Aboulhamid and A. Baron. Aspect partitioning for hardware verification reuse. In Workshop on System-on-Chip for Real-Time Applications, 2002.Google ScholarGoogle Scholar
  26. Sereni, D. and O. de Moor. Static analysis of aspects. In International Conference on Aspect-Oriented Software Development, pages 30--39, March 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Sihman, M. and S. Katz. Model checking applications of aspects and superimpositions. In Foundations of Aspect-Oriented Languages, March 2003.Google ScholarGoogle Scholar
  28. Sihman, M. and S. Katz. Superimpositions and aspect-oriented programming. The Computer Journal, 46(5):529--541, September 2003.Google ScholarGoogle Scholar
  29. Störzer, M. and J. Krinke. Interference analysis for AspectJ. In Foundations of Aspect-Oriented Languages, 2003.Google ScholarGoogle Scholar
  30. Tesanovic, A., J. Hansson, D. Nyström, C. Norström and P. Uhlin. Aspect-level WCET analyzer. In International Workshop on Worst-Case Execution Time Analysis, July 2003.Google ScholarGoogle Scholar
  31. Ubayashi, N. and T. Tamai. Aspect oriented programming with model checking. In International Conference on Aspect-Oriented Software Development, pages 148--154, April 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Xu, J., H. Rajan and K. Sullivan. Aspect reasoning by reduction to implicit invocation. In Foundations of Aspect-Oriented Languages, March 2004.Google ScholarGoogle Scholar

Index Terms

  1. Verifying aspect advice modularly

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in
              • Published in

                cover image ACM Conferences
                SIGSOFT '04/FSE-12: Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
                October 2004
                282 pages
                ISBN:1581138555
                DOI:10.1145/1029894
                • cover image ACM SIGSOFT Software Engineering Notes
                  ACM SIGSOFT Software Engineering Notes  Volume 29, Issue 6
                  November 2004
                  275 pages
                  ISSN:0163-5948
                  DOI:10.1145/1041685
                  Issue’s Table of Contents

                Copyright © 2004 ACM

                Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 31 October 2004

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • Article

                Acceptance Rates

                Overall Acceptance Rate17of128submissions,13%

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader