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.
- 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 ScholarCross Ref
- Alur, R. and M. Yannakakis. Model checking of hierarchical state machines. In Symposium on the Foundations of Software Engineering, pages 175--188, 1998. Google ScholarDigital Library
- Andrews, J. H. Process-algebraic foundations of aspect-oriented programming. In Reflection, pages 187--209, September 2001. Google ScholarDigital Library
- Aßmann, U. Invasive Software Composition. Springer-Verlag, 2003. Google ScholarDigital Library
- Clarke, E., O. Grumberg and D. Peled. Model Checking. MIT Press, 2000.Google ScholarDigital Library
- 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 ScholarDigital Library
- Denaro, G. and M. Monga. An experience on verification of aspect properties. In International Workshop on Principles of Software Evolution, September 2001. Google ScholarDigital Library
- 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 ScholarDigital Library
- Devereux, B. Compositional reasoning about aspects using alternating-time logic. In Foundations of Aspect-Oriented Languages, March 2003.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- Kiczales, G., J. des Rivières and D. G. Bobrow. The Art of the Metaobject Protocol. MIT Press, 1991. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Lieberherr, K. J. Adaptive Object-Oriented Programming. PWS Publishing, Boston, MA, USA, 1996.Google Scholar
- Masuhara, H., G. Kiczales and C. Dutchyn. A compilation and optimization model for aspect-oriented programs. In Compiler Construction, pages 46--60, 2003. Google ScholarDigital Library
- 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 ScholarDigital Library
- Nelson, T., D. D. Cowan and P. S. C. Alencar. Supporting formal verification of crosscutting concerns. In Reflection, pages 153--169, 2001. Google ScholarDigital Library
- 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 Scholar
- Sereni, D. and O. de Moor. Static analysis of aspects. In International Conference on Aspect-Oriented Software Development, pages 30--39, March 2003. Google ScholarDigital Library
- Sihman, M. and S. Katz. Model checking applications of aspects and superimpositions. In Foundations of Aspect-Oriented Languages, March 2003.Google Scholar
- Sihman, M. and S. Katz. Superimpositions and aspect-oriented programming. The Computer Journal, 46(5):529--541, September 2003.Google Scholar
- Störzer, M. and J. Krinke. Interference analysis for AspectJ. In Foundations of Aspect-Oriented Languages, 2003.Google Scholar
- 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 Scholar
- 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 ScholarDigital Library
- Xu, J., H. Rajan and K. Sullivan. Aspect reasoning by reduction to implicit invocation. In Foundations of Aspect-Oriented Languages, March 2004.Google Scholar
Index Terms
- Verifying aspect advice modularly
Recommendations
Verifying aspect advice modularly
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 (...
Foundations of incremental aspect model-checking
Programs are increasingly organized around features, which are encapsulated using aspects and other linguistic mechanisms. Despite their growing popularity amongst developers, there is a dearth of techniques for computer-aided verification of programs ...
Aspect-oriented modeling and verification with finite state machines
Special section on trust and reputation management in future computing systmes and applicationsAspect-oriented programming modularizes crosscutting concerns into aspects with the advice invoked at the specified points of program execution. Aspects can be used in a harmful way that invalidates desired properties and even destroys the conceptual ...
Comments