ABSTRACT
Aspect-oriented programming (AOP) is a programming paradigm such that crosscutting concerns including synchronization policies, resource sharing and performance optimizations over objects are modularized as aspects that are separated from objects. A compiler, called a weaver, weaves aspects and objects together into a program. In AOP, however, it is not easy to verify the correctness of a woven program because crucial behaviors are strongly influenced by aspect descriptions. In order to deal with such problem, this paper proposes an automatic verification approach using model checking that verifies whether the woven program contains unexpected behaviors such as deadlocks. The objectives of this paper are as follows: 1) to verify the correctness of AOP-based programs using model checking, 2) to provide AOP-based model checking frameworks.
- Aksit, M. and Tripathi, A.: Data Abstraction Mechanisms in Sina/ST, Proc. OOPSLA'88, pp.265-275, 1988. Google ScholarDigital Library
- AspectJ. http://aspectj.org/.Google Scholar
- The AspectJ Programming Guide, 2001.Google Scholar
- Bandera. http://www.cis.ksu.edu/ santos/bandera/.Google Scholar
- Beck, K.: Extreme Programming Explained: Embrace Change, Addison-Wesley, 1999. Google ScholarDigital Library
- Clarke, E., Grumberg, O., and Peled, D.: Model Checking, The MIT Press, 1999. Google ScholarDigital Library
- Corbett, J. C., Dwyer, M. B., Hatcliff, J., Laubach, S., Pasareanu, C. S., and Zheng, H.: Bandera: Extracting Finite-state Models from Java Source Code, Proc. ICSE 2000, 2000. Google ScholarDigital Library
- Czarnecki, K. and Eisenecker, U. W.: Generative Programming, Addison-Wesley, 2000.Google ScholarDigital Library
- Demeter Project. http://www.ccs.neu.edu/research/demeter/.Google Scholar
- Elrad, T., Filman, R. E. and Bader A.: Aspect-oriented programming, Communications of the ACM, vol.44, no.10, pp.29-32, 2001. Google ScholarDigital Library
- Harrison, W. and Ossher, H.: Subject-oriented Programming, Proc. OOPSLA'93, pp.411-428, 1993. Google ScholarDigital Library
- Havelund, K.: Java PathFinder User Guide, 1999.Google Scholar
- Holzmann, C. J. and Smith, M. H.: The Model Checker SPIN, IEEE trans. SE, vol.23, no.5, pp.279-295, 1997. Google ScholarDigital Library
- Jackson, D.: Aloca: the alloy constraint analyzer, Proceedings of ICSE 2000, 2000. Google ScholarDigital Library
- Kendall, E. A.: Role Model Designs and Implemantations with Aspect-oriented Programming, Proc. OOPSLA'99, pp.353-369, 1999. Google ScholarDigital Library
- Kiczales, G., Lamping, J., Mendhekar A., Maeda, C., Lopes, C., Loingtier, J. and Irwin, J.: Aspect-Oriented Programming, Proc. ECOOP'97, Lecture Notes in Computer Science, Springer, vol.1241, pp.220-242, 1997.Google Scholar
- McMillan, K. L.: Symbolic Model Checking: An Approach to the State Explosion Problem, Kluwer Academic, 1993. Google ScholarDigital Library
- Meyer, B.: Object-Oriented Software Construction, 2nd Edition, Prentice Hall, 2000. Google ScholarDigital Library
- Nelson, T., Cowan, D. and Alencar, P.: Supporting Formal Verification of Crosscutting Concerns, Proc. REFLECTION 2001, Lecture Notes in Computer Science, Springer, vol.2192, pp.153-169, 2001. Google ScholarDigital Library
- K. Rustan M. Leino, Greg Nelson, and James B. Saxe: ESC/Java User's Manual, 2000.Google Scholar
- Tamai, T.: Objects and roles: modeling based on the dualistic view, Information and Software Technology, Vol.41, No.14, pp.1005-1010, 1999.Google ScholarCross Ref
- Ubayashi, N. and Tamai, T.: Separation of Concerns in Mobile Agent Applications, Proc. REFLECTION 2001, Lecture Notes in Computer Science, Springer, vol.2192, pp.89-109, 2001. Google ScholarDigital Library
Index Terms
- Aspect-oriented programming with model checking
Recommendations
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 ...
Cooperative aspect-oriented programming
Aspect-oriented programming (AOP) seeks to improve software modularity via the separation of cross-cutting concerns. AOP proponents often advocate a development strategy where programmers write the main application (base code), ignoring cross-cutting ...
Model Checking Aspect-Oriented Design Specification
COMPSAC '07: Proceedings of the 31st Annual International Computer Software and Applications Conference - Volume 01Aspects can be used in a harmful way that invalidates desired properties. Rigorous specification and analysis of aspect design is thus highly desirable. This paper presents an approach to model-checking state-based specification of aspect-oriented ...
Comments