Abstract
Aspects are program modules that include descriptions of key events (called join-points) and code segments (called advice) to be executed at those key events when the aspect is bound (woven) to an underlying system. The MAVEN tool verifies the correctness of an aspect relative to its specification, independently of any specific underlying system to which it may be woven, and also allows establishing noninterference among aspects, or detecting potential interference. The specification includes assumptions about properties of the underlying system, and guaranteed properties of any system after the aspect is woven into it. The approach is based on model checking of a state machine constructed using the linear temporal logic (LTL) description of the assumptions, a description of the join-points, and the state machine of the aspect advice. The tableau of the LTL assumption is used in a unique way, as a representative of any underlying system satisfying the assumptions. This is the first technique for once-and-for-all verification of an aspect relative to its specification, thereby increasing the modularity of proofs for systems with aspects. The individual correctness proofs along with proofs of interference freedom are appropriate for a library of reusable aspects, when multiple aspects are to be woven to a system.
Similar content being viewed by others
References
Abraham E, de Boer F, de Roever W, Steffen M (2005) An assertion-based proof system for multithreaded Java. Theor Comput Sci 331(2–3):251–290
Balzarotti D, D’Ursi A, Cavallaro L, Monga M (2005) Slicing AspectJ woven code. In: Proc of foundations of aspect languages workshop (FOAL05)
Bergmans L, Aksit M (2001) Composing crosscutting concerns using composition filters. CACM 44:51–57
Blundell C, Fisler K, Krishnamurthi S, Hentenryck PV (2004) Parameterized interfaces for open system verification of product lines. In: Proc 19th IEEE international conference on automated software engineering (ASE’04), pp 258–267
Common aspect proof environment (CAPE) (2008). http://www.cs.technion.ac.il/~ssdl/research/cape
Cimatti A, Clarke EM, Giunchiglia F, Roveri M (1999) NuSMV: a new symbolic model verifier. In: CAV’99. Lecture notes in computer science, vol 1633. Springer, Berlin, pp 495–499. http://nusmv.itc.it
Clarke EM Jr., Grumberg O, Peled DA (1999) Model checking. MIT Press, Cambridge
Devereux B (2003) Compositional reasoning about aspects using alternating-time logic. In: Proc of foundations of aspect languages workshop (FOAL03)
Douence R, Fradet P, Sudholt M (2004) Composition, reuse, and interaction analysis of stateful aspects. In: Proc of 3th intl conf on aspect-oriented software development (AOSD’04). ACM, New York, pp 141–150
Guelev DP, Ryan MD, Schobbens PY (2004) Model-checking the preservation of temporal properties upon feature integration. In: Proc 4th intl workshop on automated verification of critical systems (AVoCS’04). Electron Notes Theor Comput Sci 128(6):311–324
Filman RE, Elrad T, Clarke S, Akşit M (eds) (2005) Aspect-oriented software development. Addison-Wesley, Boston
Goldman M, Katz S (2007) MAVEN: Modular aspect verification. In: Proc of TACAS 2007. Lecture notes in computer science, vol 4424. Springer, Berlin, pp 308–322
Grumberg O, Long DE (1994) Model checking and modular verification. ACM Trans Program Lang Syst 16(3):843–871
Hatcliff J, Dwyer M (2001) Using the Bandera Tool Set to model-check properties of concurrent Java software. In: Larsen KG, Nielsen M (eds) Proc 12th int conf on concurrency theory, CONCUR’01. Lecture notes in computer science, vol 2154. Springer, Berlin, pp 39–58
Havelund K, Pressburger T (2000) Model checking Java programs using Java PathFinder. Int J Softw Tools Technol Transf (STTT) 2(4)
Havinga W, Nagy I, Bergmans L, Aksit M (2007) A graph-based approach to modeling and detecting composition conflicts related to introductions. In: AOSD ’07. ACM, New York, pp 85–95
Katz E, Katz S (2008) Incremental analysis of interference among aspects. In: FOAL ’08. ACM, New York, pp 29–38
Katz S (2006) Aspect categories and classes of temporal properties. Trans Aspect-Oriented Softw Dev 1:106–134. LNCS 3880
Katz S, Faitelson D The common aspect proof environment. Submitted for publication, 2009. See http://www.cs.technion.ac.il/~ssdl/research/cape/index.html
Katz S, Sihman M (2003) Aspect validation using model checking. In: Proc of international symposium on verification. Lecture notes in computer science, vol 2772. Springer, Berlin, pp 389–411
Kiczales G, Hilsdale E, Hugunin J, Kersten M, Palm J, Griswold WG (2001) An overview of AspectJ. In: Proc ECOOP 2001. Lecture notes in computer science, vol 2072. Springer, Berlin, pp 327–353. http://aspectj.org
Kienzle J, Duala-Ekoko E, Gélineau S (2009) AspectOptima: A case study on aspect dependencies and interactions. Trans Aspect-Oriented Softw Dev 5:187–234
Krishnamurthi S, Fisler K (2007) Foundations of incremental aspect model-checking. ACM Trans Softw Eng Methodol (TOSEM) 16(2)
Manna Z, Pnueli A (1991) The temporal logic of reactive and concurrent systems: specification. Springer, Berlin
Owicki S, Gries D (1976) An axiomatic proof technique for parallel programs. Acta Inform 6:319–340
Rinard M, Salcianu A, Bugrara S (2004) A classification system and analysis for aspect-oriented programs. In: Proc of international conference on foundations of software engineering (FSE04)
Sereni D, de Moor O (2003) Static analysis of aspects. In: AOSD, pp 30–39
Sihman M, Katz S (2003) Superimposition and aspect-oriented programming. BCS Comput J 46(5):529–541
Sipma HB (2003) A formal model for cross-cutting modular transition systems. In: Proc of foundations of aspect languages workshop (FOAL03)
Storzer M, Krinke J (2003) Interference analysis for AspectJ. In: Proc of foundations of aspect languages workshop (FOAL03)
Weston N, Taiani F, Rashid A (2007) Interaction analysis for fault-tolerance in aspect-oriented programming. In: Proc workshop on methods, models, and tools for fault tolerance, MeMoT’07, pp 95–102
Zhao J (2002) Slicing aspect-oriented software. In: IEEE international workshop on programming comprehension, pp 251–260
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Goldman, M., Katz, E. & Katz, S. MAVEN: modular aspect verification and interference analysis. Form Methods Syst Des 37, 61–92 (2010). https://doi.org/10.1007/s10703-010-0101-1
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10703-010-0101-1