IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
Model checking
Bandera: extracting finite-state models from Java source code
Proceedings of the 22nd international conference on Software engineering
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Aspect-oriented programming with model checking
AOSD '02 Proceedings of the 1st international conference on Aspect-oriented software development
An experience on verification of aspect properties
IWPSE '01 Proceedings of the 4th International Workshop on Principles of Software Evolution
Automated Software Engineering
Verifying aspect advice modularly
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Java Concurrency in Practice
Verifiable Web Services with Hierarchical Interfaces
ICWS '05 Proceedings of the IEEE International Conference on Web Services
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Preliminary design of JML: a behavioral interface specification language for java
ACM SIGSOFT Software Engineering Notes
Automated Software Engineering
Aspect categories and classes of temporal properties
Transactions on Aspect-Oriented Software Development I
Hi-index | 0.00 |
We propose a modular verification methodology for aspect oriented programs. Aspects are the new modularization units to encapsulate crosscutting concerns and have powerful features whose effects can drastically change software behavior. Having such an impact on behavior requires an automated verification support. In this work we introduce a technique that separately answers two questions: "does the aspect have the provisioned effect?" and "does the base program satisfy the assumptions of the aspect?" To answer these questions modularly, we propose using design contracts and state machines as aspect interfaces. An aspect interface both closes the environment of the aspect and specifies its assumptions on any base code. We show that our approach can be used in verifying AspectJ programs modularly and checking compatibility for aspect reuse.