Aspect Categories and Classes of Temporal Properties

Generic categories of aspects are described, and their potential value is explained. For some categories, broad classes of syntactically identifiable temporal properties, such as safety, liveness, or existence properties, are guaranteed to hold for a system with any aspect of the category woven into it, if the property was true in the system without the aspect. Thus classes of properties preserved by the aspect are defined. Moreover, relatively simple verification techniques are shown to hold for some classes of temporal properties over systems augmented with some other categories of aspects. Verification of new properties added by the aspects is also considered. Each category is defined in terms of the semantic transformation it makes to the state graphs of underlying systems. A generic procedure to identify syntactically when an aspect belongs to a category is described and related to existing code analysis systems that use static code analysis and dataflow techniques. The definitions of categories, identification procedures, and lemmas about property classes provide the needed foundations that justify and motivate automatic code analysis modules to identify aspect categories. The categories enable simpler proofs of correctness than would otherwise be possible, and exploiting their characteristics can aid in software development.

[1]  Zohar Manna,et al.  The Temporal Logic of Reactive and Concurrent Systems , 1991, Springer New York.

[2]  Jens Krinke,et al.  Interference Analysis for AspectJ , 2003 .

[3]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[4]  Yuanyuan Song,et al.  Information hiding interfaces for aspect-oriented design , 2005, ESEC/FSE-13.

[5]  Martin C. Rinard,et al.  A classification system and analysis for aspect-oriented programs , 2004, SIGSOFT '04/FSE-12.

[6]  Zhao Jianjun Slicing Aspect-Oriented Software (ソフトウェア工学 研究報告) , 2001 .

[7]  Mattia Monga,et al.  Using Program Slicing to Analyze Aspect-Oriented Composition , 2004 .

[8]  Daniel P. Friedman,et al.  Aspect-Oriented Programming is Quantification and Obliviousness , 2000 .

[9]  Radha Jagadeesan,et al.  µABC: A Minimal Aspect Calculus , 2004, CONCUR.

[10]  Shmuel Katz,et al.  Diagnosis of Harmful Aspects Using Regression Verification , 2004 .

[11]  Radha Jagadeesan,et al.  A Calculus of Untyped Aspect-Oriented Programs , 2003, ECOOP.

[12]  Oege de Moor,et al.  Static analysis of aspects , 2003, AOSD '03.

[13]  Stanley M. Sutton,et al.  Multi-Dimensional Separation of Concerns , 1999 .

[14]  Shmuel Katz,et al.  Superimpositions and Aspect-oriented Programming , 2003, Comput. J..

[15]  David Walker,et al.  A theory of aspects , 2003, ICFP '03.

[16]  Rémi Douence,et al.  Trace-Based Aspects , 2004 .

[17]  Shmuel Katz,et al.  Aspect Validation Using Model Checking , 2003, Verification: Theory and Practice.

[18]  Edmund M. Clarke,et al.  Design and Synthesis of Synchronization Skeletons Using Branching-Time Temporal Logic , 1981, Logic of Programs.

[19]  Orna Grumberg,et al.  Abstract interpretation of reactive systems , 1997, TOPL.

[20]  Henny B. Sipma,et al.  A Formal Model for Cross-cutting Modular Transition Systems , 2003 .

[21]  David Walker,et al.  Harmless advice , 2006, POPL '06.

[22]  Luca Cavallaro,et al.  On bytecode slicing and aspectJ interferences , 2007, FOAL.

[23]  Mitchell Wand A Semantics for Advice and Dynamic Join Points in Aspect-Oriented Programming , 2001, SAIG.

[24]  Barry J. Devereux Compositional reasoning about aspects using alternating-time logic , 2003 .

[25]  Matthew B. Dwyer,et al.  Using the Bandera Tool Set to Model-Check Properties of Concurrent Java Software , 2001, CONCUR.

[26]  Mira Mezini,et al.  Aspect-oriented programming and modular reasoning , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[27]  Gary T. Leavens,et al.  Observers and Assistants: A Proposal for Modular , 2002 .

[28]  Mattia Monga,et al.  Slicing AspectJ Woven Code , 2005 .

[29]  Lodewijk Bergmans,et al.  Declarative Aspect Composition , 2004 .

[30]  Stephan Merz,et al.  Model Checking , 2000 .

[31]  Yuanyuan Song,et al.  Modular software design with crosscutting interfaces , 2006, IEEE Software.

[32]  Leslie Lamport,et al.  What Good is Temporal Logic? , 1983, IFIP Congress.

[33]  Kathi Fisler,et al.  Verifying aspect advice modularly , 2004, SIGSOFT '04/FSE-12.