Tracechecks: Defining semantic interfaces with temporal logic

Size: px
Start display at page:

Download "Tracechecks: Defining semantic interfaces with temporal logic"

Transcription

1 Tracechecks Defining semantic interfaces with temporal logic Eric Bodden 1 Volker Stolz 2 1 Sable Research Group McGill University, Montréal, Canada 2 MOVES: Software Modeling and Verification RWTH Aachen University, Aachen, Germany Vienna, March 25th, 2006

2 Outline What do we do? Dynamic verification of interface protocols in Java Problems with static approaches: (see talks on components today) recursion data structures Source code often contains informal requirements specifications. Our contribution: make a formal specification explicit in interfaces automatically instrument base application and check it at runtime

3 Temporal specifications Temporal specifications in Java today Excerpt from docs of java.util.iterator Method: void remove() Removes from the underlying collection the last element returned by the iterator (optional operation). This method can be called only once per call to next. The behavior of an iterator is unspecified if the underlying collection is modified while the iteration is in progress in any way other than by calling this method. Throws: UnsupportedOperationException - if the remove operation is not supported by this Iterator. IllegalStateException - if the next method has not yet been called, or the remove method has already been called after the last call to the next method.

4 What we actually want to say Temporal specifications next update create update next

5 Temporal specifications Temporal specifications in Java today Problems with previous approaches The JDK implements checks for this by a combination of various counters in the iterator and collection classes. Implementation tedious and errorprone Requirement only in comments, which can easily be missed.... part of interface, i.e. Iterator Yet, it must be implemented within all implementors. And... not all do!... of crosscutting nature.

6 Can we do any better? Temporal specifications Prototype tool Java Logical Observer (J-LO): provides a means for specifying temporal assertions, called tracechecks can be attached to interfaces and classes uses Java 5 annotations formalism: extension of Linear Temporal Logic instrumentation through AspectJ

7 Tracechecks Temporal specifications 1 tracecheck ( C o l l e c t i o n col, I t e r a t o r i t e r ) { 2 3 sym create ( C o l l e c t i o n c, I t e r a t o r i ) a f t e r returning ( i ) : 4 c a l l ( C o l l e c t i o n +. i t e r a t o r ( ) ) && target ( c ) ; 5 sym next ( I t e r a t o r i ) before : 6 c a l l ( Object I t e r a t o r. next ( ) ) && target ( i ) ; 7 sym update ( C o l l e c t i o n c ) a f t e r : 8 update ( ) && target ( c ) ; 9 10 G( create ( col, i t e r ) X G( modify ( c o l ) G(! next ( i t e r ) ) ) ) 11 { 12 //could use "col" and "iter" 13 throw new ConcurrentModificationException ( ) ; 14 } 15 }

8 Tracechecks Benefits Temporal specifications Provides convenient instance-based reasoning via free variables. Allows for flexible deployment scenarios. As AspectJ language extension (seen before). In the form of Java 5 annotations... Specification right in place - even at interfaces.

9 Tracechecks Annotation style syntax Temporal specifications 1 public interface It erat or { " 5 Collection c, thistype i : 6 G( ( 7 e x it ( c a l l ( C o l l e c t i o n +. i t e r a t o r ( ) ) 8 && target ( c ) ) returning i 9 ) ( 10 X(G( 11 ( entry ( 12 ( c a l l ( C o l l e c t i o n +. add (.. ) ) 13 c a l l ( C o l l e c t i o n +. remove (.. ) ) 14 c a l l ( C o l l e c t i o n +. clear ( ) ) 15 ) && target ( c ) 16 ) 17 ) ( 18 G( 19! ( 20 entry ( c a l l ( thismethod ) && target ( i ) ) 21 ) ) ) ) ) ) ) 22 " ) 23 public Object next ( ) ; }

10 Semantic interfaces with J-LO How does it work? Code generation 1 Generate an AspectJ aspect implementing the required checks. 2 Weave this aspect into the base application. 3 The instrumented application checks itself during runtime. Evaluation based on Alternating Automata.

11 Runtime Verification Dynamic model Code generation s 0 /0 s 1 {p 1,p 2 } s 2 {p 1 } s 3 {p 1 } s 4{p2 } /0 {p 1,p 2 } {p 1 } {p 1 } Path identified by a sequence of sets of propositions 2 P Recognition of cycles impossible Path π = π[0]... π[n 1] finite

12 Code generation Specification encoded in Alternating automata G(p(x) F q(x)) p(x) p(1) F q(1) p(x) q(1) q(1) tt Σ

13 Code generation Specification encoded in Alternating automata G(p(x) F q(x)) p(x) p(1) p(2) p(x) F q(1) F q(2) q(1) q(1) q(2) q(2) tt tt Σ Σ

14 Implementation Example Code generation {{G(p(x) F q(x))}} {p(1),p(2)} {{G(p(x) F q(x)),f q(1),f q(2)}} {q(1)} {{G(p(x) F q(x)),f q(2)}} {q(2)} {{G(p(x) F q(x))}} G(p F q) p p F q q q tt Σ

15 Code generation Code generation Compiler Codegen Weaving Specification G( p )... Java bytecode G( p )... AFA in AspectJ aspect F1 {... Java bytecode if(!p) {... J-LO Tools we used: BAT2XML (TU Darmstadt) Extracts spec from Java annotations AspectBench Compiler ( abc, Oxford/McGill University) Code generations (AST rewrites) Instrumentation ( weaving )

16 Benchmarks Code generation Verification of temporal assertions for data structures: HashSets G( add ( set, c o l ) X G( modify ( c ) X( remove ( set, c o l ) R! contains ( set, c o l ) ) ) ) Stacks G( push ( s ) R! pop ( s ) ) Iterators / Enumerations tested with JHotDraw Lock order reversal problem tested with JigSaw (did actually find warnings!)

17 Related work Related work Future work Mainly on the fields of Aspect-oriented programming Program Query Languages Component Based Design Runtime Verification

18 Related work AOP/PQL/CBD Related work Future work Event based AOP (Douence et al.) [DFS04] Tracecuts (Walker et al.) [WV04] Tracematches (Allan et al.) [AAS + 04] Gamma (Ostermann et al.) [KO05] PQL (Martin et al.) [MLL05] PTQL (Goldsmith et al.) [GOA05] Südholt and Farias (Components with explicit behavioral protocols) [FS02]

19 Related work Runtime Verification Related work Future work Havelund et al. (NASA AMES) EAGLE [HBS03], Java PathExplorer [HR04] HAWK [dh05]: based on AspectJ/EAGLE, only subset of LTL Java MAC [KVK + 04] Temporal Rover manual instrumentation only

20 Future Work Related work Future work Future work: Tight integration with abc (in particular: Tracematches) Lowering the evaluation cost at runtime (JVM support?) Static dataflow analysis approximating results of Model Checking Performance optimizations

21 Related work Future work Tracechecks: Specification language for runtime-checking temporal assertions based on: AspectJ pointcuts, for generating a path model at runtime Linear temporal logic (LTL) to express temporal conditions over such paths Implementation using alternating automata and dynamic bindings in the Java Logical Observer - J-LO

22 Related work Future work Thank you for your attention Try it out:

23 Appendix Program execution Thread t1 Lock l1 Aspect lock() lock(a=t1,x=l1) lock(a=t1,y=l1) props.add("lock(a,x)",[a=t1,x=l1]) Variables: Thread a, Lock x, Lock y props.add("lock(a,y)",[a=t1,y=l1]) lock configuration.transition(props) props= emptyset Propositions: lock(a,x), lock(a,y) lock

24 Appendix Bibliography I C. Allan, P. Avgustinov, A.S. Simon, L. Hendren, S. Kuzins, O. Lhoták, O. de Moor, D. Sereni, G. Sittamplan, and J. Tibble. Adding trace matching to AspectJ (submitted to OOPSLA 05). abc Technical Report abc , McGill University, Rémi Douence, Pascal Fradet, and Mario Südholt. Composition, reuse and interaction analysis of stateful aspects. In AOSD 04: Proceedings of the 3rd international conference on Aspect-oriented software development, pages ACM Press, Marcelo d Amorim and Klaus Havelund. Event-based runtime verification of java programs. In WODA 05: Proceedings of the third international workshop on Dynamic analysis, pages 1 7, New York, NY, USA, ACM Press. Andrés Farías and Mario Südholt. On components with explicit protocols satisfying a notion of correctness by construction. In In International Symposium on Distributed Objects and Applications (DOA). LNCS, Simon Goldsmith, Robert O Callahan, and Alex Aiken. Relational queries over program traces. In Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages and Applications, pages , K. Havelund H. Barringer, A. Goldberg and K. Sen. EAGLE does space efficient LTL monitoring. Pre-Print CSPP-25, Department of Computer Science, University of Manchester, October 2003.

25 Appendix Bibliography II K. Havelund and G. Roşu. An Overview of the Runtime Verification Tool Java PathExplorer. Formal Methods in System Design, 24(2): , K. Klose and K. Ostermann. Back to the future: Pointcuts as predicates over traces. In Foundations of Aspect-Oriented Languages workshop (FOAL 05), Chicago, USA, M. Kim, M. Viswanathan, S. Kannan, I. Lee, and O.V. Sokolsky. Java-MaC: A Run-time Assurance Approach for Java Programs. Formal Methods in System Design, 24(2): , Michael Martin, Benjamin Livshits, and Monica S. Lam. Finding application errors using PQL: a program query language. In Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages and Applications, pages , Robert J. Walker and Kevin Viggers. Implementing protocols via declarative event patterns. In SIGSOFT FSE, pages , 2004.

MOPBox: A Library Approach to Runtime Verification

MOPBox: A Library Approach to Runtime Verification MOPBox: A Library Approach to Runtime Verification (Tool Demonstration) Eric Bodden eric.bodden@cased.de Center for Advanced Security Research Darmstadt Software Technology Group Technische Universität

More information

Java-MOP: A Monitoring Oriented Programming Environment for Java

Java-MOP: A Monitoring Oriented Programming Environment for Java Java-MOP: A Monitoring Oriented Programming Environment for Java Feng Chen and Grigore Roşu Department of Computer Science, University of Illinois at Urbana - Champaign, USA {fengchen, grosu}@uiuc.edu

More information

A Special-Purpose AOP Framework for Runtime Monitoring

A Special-Purpose AOP Framework for Runtime Monitoring A Special-Purpose AOP Framework for Runtime Monitoring Amjad Nusayr Jonathan Cook Gholamali Rahnavard University of Houston - Victoria New Mexico State University New Mexico State University anusayr@cs.nmsu.edu

More information

Adding Trace Matching with Free Variables to AspectJ

Adding Trace Matching with Free Variables to AspectJ Adding Trace Matching with Free Variables to AspectJ Chris Allan 1, Pavel Avgustinov 1, Aske Simon Christensen 2, Laurie Hendren 3, Sascha Kuzins 1, Ondřej Lhoták 3, Oege de Moor 1, Damien Sereni 1, Ganesh

More information

Adding trace matching to AspectJ

Adding trace matching to AspectJ The abc Group Adding trace matching to AspectJ abc Technical Report No. abc-2005-1 Chris Allan 1, Pavel Avgustinov 1, Aske Simon Christensen 2, Laurie Hendren 3, Sascha Kuzins 1, Ondřej Lhoták 3, Oege

More information

MOP: An Efficient and Generic Runtime Verification Framework

MOP: An Efficient and Generic Runtime Verification Framework MOP: An Efficient and Generic Runtime Verification Framework Feng Chen Grigore Roşu University of Illinois at Urbana-Champaign {fengchen,grosu@cs.uiuc.edu Abstract Monitoring-Oriented Programming (MOP

More information

Parametric Trace Slicing and Monitoring

Parametric Trace Slicing and Monitoring Parametric Trace Slicing and Monitoring Feng Chen and Grigore Roşu Department of Computer Science, University of Illinois at Urbana-Champaign {fengchen,grosu}@cs.uiuc.edu Abstract. Analysis of execution

More information

Efficient Trace Monitoring

Efficient Trace Monitoring The abc Group Efficient Trace Monitoring abc Technical Report No. abc-2006-1 Pavel Avgustinov 1, Julian Tibble 1, Eric Bodden 2, Ondřej Lhoták 3, Laurie Hendren 2, Oege de Moor 1, Neil Ongkingco 1, Ganesh

More information

MOP: An Efficient and Generic Runtime Verification Framework

MOP: An Efficient and Generic Runtime Verification Framework MOP: An Efficient and Generic Runtime Verification Framework Feng Chen Grigore Roşu University of Illinois at Urbana-Champaign {fengchen,grosu@cs.uiuc.edu Abstract Monitoring-Oriented Programming (MOP

More information

Nomair A. Naeem. Personal Data. Education. Teaching Experience. Course Instructor/Sessional

Nomair A. Naeem. Personal Data. Education. Teaching Experience. Course Instructor/Sessional Nomair A. Naeem Personal Data Address: E-mail: Web Page: David R. Cheriton School of Computer Science University of Waterloo 200 University Avenue West Waterloo, ON N2L 3G1, Canada nanaeem@uwaterloo.ca

More information

XAJ: An Extensible Aspect Oriented Language

XAJ: An Extensible Aspect Oriented Language XAJ: An Extensible Aspect Oriented Language Leonardo V. S. Reis, Roberto S. Bigonha, Mariza A. S. Bigonha Departamento de Ciência da Computação Universidade Federal de Minas Gerais Belo Horizonte, Brazil

More information

An Extensible AOP Framework for Runtime Monitoring

An Extensible AOP Framework for Runtime Monitoring An Extensible AOP Framework for Runtime Monitoring Gholamali Rahnavard Amjad Nusayr Jonathan Cook New Mexico State University University of Houston - Victoria New Mexico State University rah@nmsu.edu nusayra@uhv.edu

More information

Nu: a Dynamic Aspect-Oriented Intermediate Language Model and Virtual Machine for Flexible Runtime Adaptation

Nu: a Dynamic Aspect-Oriented Intermediate Language Model and Virtual Machine for Flexible Runtime Adaptation Nu: a Dynamic Aspect-Oriented Intermediate Language Model and Virtual Machine for Flexible Runtime Adaptation Robert Dyer and Hridesh Rajan Department of Computer Science Iowa State University {rdyer,hridesh}@cs.iastate.edu

More information

PL Punta Arenas

PL Punta Arenas PL 2008 - Punta Arenas Aspects, Processes, and Components Jacques Noyé OBASCO - Ecole des Mines de Nantes/INRIA, LINA Jacques.Noye@emn.fr 12 November 2008 Introduction The basic idea There is usually no

More information

Optimizing AspectJ with abc

Optimizing AspectJ with abc Optimizing AspectJ with abc McGill Oxford Aarhus Laurie Hendren Oege de Moor Aske Simon Jennifer Lhoták Pavel Avgustinov Christensen Ondřej Lhoták Sascha Kuzins Chris Goard Damien Sereni Clark Verbrugge

More information

Enforcing Safety Properties in Product Lines

Enforcing Safety Properties in Product Lines Enforcing Safety Properties in Product Lines Chang Hwan Peter Kim 1, Eric Bodden 2, Don Batory 1 and Sarfraz Khurshid 1 1 Department of Computer Science and Department of Electrical and Computer Engineering

More information

Runtime Verification with the RV System

Runtime Verification with the RV System Runtime Verification with the RV System Patrick Meredith and Grigore Roşu 1 Runtime Verification, Inc 2 University of Illinois at Urbana-Champaign 3 {pmeredit, grosu@illinois.edu Abstract. The RV system

More information

Instrumentation of Java Bytecode for Runtime Analysis

Instrumentation of Java Bytecode for Runtime Analysis Instrumentation of Java Bytecode for Runtime Analysis Allen Goldberg and Klaus Havelund Kestrel Technology, NASA Ames Research Center Moffett Field, MS 269-3, California USA Phone: 650-604-4858, Email:

More information

Specification and Runtime Verification of API Constraints on Interacting Objects

Specification and Runtime Verification of API Constraints on Interacting Objects Specification and Runtime Verification of API Constraints on Interacting Objects Fang Deng, Haiwen Liu, Jin Shao, Qianxiang Wang School of Electronics Engineering and Computer Science, Peking University

More information

Monitoring Assumptions in Assume-Guarantee Contracts

Monitoring Assumptions in Assume-Guarantee Contracts University of Pennsylvania ScholarlyCommons Departmental Papers (CIS) Department of Computer & Information Science 6-2016 Monitoring Assumptions in Assume-Guarantee Contracts Oleg Sokolsky University of

More information

An Overview of the MOP Runtime Verification Framework

An Overview of the MOP Runtime Verification Framework Software Tools for Technology Transfer manuscript No. (will be inserted by the editor) An Overview of the MOP Runtime Verification Framework Patrick O Neil Meredith, Dongyun Jin, Dennis Griffith, Feng

More information

CalFuzzer: An Extensible Active Testing Framework for Concurrent Programs Pallavi Joshi 1, Mayur Naik 2, Chang-Seo Park 1, and Koushik Sen 1

CalFuzzer: An Extensible Active Testing Framework for Concurrent Programs Pallavi Joshi 1, Mayur Naik 2, Chang-Seo Park 1, and Koushik Sen 1 CalFuzzer: An Extensible Active Testing Framework for Concurrent Programs Pallavi Joshi 1, Mayur Naik 2, Chang-Seo Park 1, and Koushik Sen 1 1 University of California, Berkeley, USA {pallavi,parkcs,ksen}@eecs.berkeley.edu

More information

Language support for AOP

Language support for AOP Language support for AOP AspectJ and beyond Mario Südholt www.emn.fr/sudholt INRIA and École des Mines de Nantes OBASCO project, Nantes, France Language support for AOP ; Mario Südholt; INRIA/EMN; March

More information

Runtime Validation Using Interval Temporal Logic

Runtime Validation Using Interval Temporal Logic Runtime Validation Using Interval Temporal Logic Karlston D Emanuele kema001@um.edu.mt Dept. of Computer Science and AI University of Malta Gordon Pace gordon.pace@um.edu.mt Dept. of Computer Science and

More information

Klaus Havelund Kestrel Technology NASA Ames Research Center, MS 269/2 Moffett Field, CA U.S.A

Klaus Havelund Kestrel Technology NASA Ames Research Center, MS 269/2 Moffett Field, CA U.S.A Source-Code Instrumentation and Quantification of Events Robert E. Filman RIACS NASA Ames Research Center, MS 269/2 Moffett Field, CA 94035 U.S.A. +1 650 604 1250 rfilman@mail.arc.nasa.gov Klaus Havelund

More information

Cover Page. The handle holds various files of this Leiden University dissertation

Cover Page. The handle   holds various files of this Leiden University dissertation Cover Page The handle http://hdl.handle.net/1887/22891 holds various files of this Leiden University dissertation Author: Gouw, Stijn de Title: Combining monitoring with run-time assertion checking Issue

More information

Course 7 25 November Adrian Iftene

Course 7 25 November Adrian Iftene Course 7 25 November 2013 Adrian Iftene adiftene@info.uaic.ro 1 Recapitulation course 6 AOP AOP Profiler Tracing Pooling PostSharp Spring Framework Runtime Verification Model Checking MOP Java MOP 2 Concern

More information

A Formal Monitoring-based Framework for Software Development and Analysis

A Formal Monitoring-based Framework for Software Development and Analysis A Formal Monitoring-based Framework for Software Development and Analysis Feng Chen, Marcelo D Amorim, and Grigore Roşu Department of Computer Science University of Illinois at Urbana - Champaign, USA

More information

Weaving Rewrite-Based Access Control Policies

Weaving Rewrite-Based Access Control Policies Weaving Rewrite-Based Access Control Policies Anderson Santana de Oliveira a, Eric Ke Wang ab, Claude Kirchner a, Hélène Kirchner a INRIA & LORIA The University of Hong Kong FMSE, 2007 Oliveira, Wang,

More information

COMPOSABILITY, PROVABILITY, REUSABILITY (CPR) FOR SURVIVABILITY

COMPOSABILITY, PROVABILITY, REUSABILITY (CPR) FOR SURVIVABILITY AFRL-IF-RS-TR-2002-61 Final Technical Report April 2002 COMPOSABILITY, PROVABILITY, REUSABILITY (CPR) FOR SURVIVABILITY Kestrel Institute Sponsored by Defense Advanced Research Projects Agency DARPA Order

More information

The RV System Tutorial

The RV System Tutorial The RV System Tutorial Patrick Meredith and Grigore Rosu joint work with Feng Chen, Dongyun Jin, Dennis Griffith, Michael Ilseman Runtime Verification, Inc. University of Illinois The RV System!"#$%&'(%)!"#*)+,'-(!9&('/+

More information

Unweaving the Impact of Aspect Changes in AspectJ

Unweaving the Impact of Aspect Changes in AspectJ Unweaving the Impact of Aspect Changes in AspectJ Luca Cavallaro Politecnico di Milano Piazza L. da Vinci, 32 20133 Milano, Italy cavallaro@elet.polimi.it Mattia Monga Università degli Studi di Milano

More information

Aspects and Data Refinement

Aspects and Data Refinement Aspects and Data Refinement Pavel Avgustinov 1, Eric Bodden 2, Elnar Hajiyev 1, Oege de Moor 1, Neil Ongkingco 1, Damien Sereni 1, Ganesh Sittampalam 1, Julian Tibble 1 1 Programming Tools Group, Oxford

More information

Optimized Compilation of Around Advice for Aspect Oriented Programs

Optimized Compilation of Around Advice for Aspect Oriented Programs Journal of Universal Computer Science, vol. 13, no. 6 (2007), 753-766 submitted: 19/1/07, accepted: 22/3/07, appeared: 28/6/07 J.UCS Optimized Compilation of Around Advice for Aspect Oriented Programs

More information

Aspect-Oriented Generation of the API Documentation for AspectJ

Aspect-Oriented Generation of the API Documentation for AspectJ Aspect-Oriented Generation of the API Documentation for AspectJ Michihiro Horie Tokyo Institute of Technology 2-12-1 Ohkayama, Meguro-ku, Tokyo 152-8552, Japan www.csg.is.titech.ac.jp/ horie Shigeru Chiba

More information

Towards a model of concurrent AOP

Towards a model of concurrent AOP Towards a model of concurrent AOP Rémi Douence, Didier Le Botlan, Jacques Noyé, Mario Südholt To cite this version: Rémi Douence, Didier Le Botlan, Jacques Noyé, Mario Südholt. Towards a model of concurrent

More information

Rule-Based Runtime Verification

Rule-Based Runtime Verification Rule-Based Runtime Verification Howard Barringer 1, Allen Goldberg 2, Klaus Havelund 2 and Koushik Sen 3 1 University of Manchester, England 2 Kestrel Technology, NASA Ames Research Center, USA 3 University

More information

TS4J: A Fluent Interface for Defining and Computing Typestate Analyses

TS4J: A Fluent Interface for Defining and Computing Typestate Analyses TS4J: A Fluent Interface for Defining and Computing Typestate Analyses Eric Bodden Secure Software Engineering Group EC SPRIDE Fraunhofer SIT & TU Darmstadt eric.bodden@sit.fraunhofer.de Abstract Typestate

More information

Dynamic Instantiation-Checking Components

Dynamic Instantiation-Checking Components Dynamic Instantiation-Checking Components Nigamanth Sridhar Electrical and Computer Engineering Cleveland State University 318 Stilwell Hall, 2121 Euclid Ave Cleveland OH 44113 n.sridhar1@csuohio.edu ABSTRACT

More information

Analysis and Research on the Automated Generation of Unit Test

Analysis and Research on the Automated Generation of Unit Test 1+, 1 1, 1 (, 200062) Analysis and Research on the Automated Generation of Unit Test XU Guo-qing 1+, YANG Zong-yuan 1, HUANG Hai-tao 1 1 (Software Engineering Lab, Department of Computer Science, East

More information

A Novel Approach to Unit Testing: The Aspect-Oriented Way

A Novel Approach to Unit Testing: The Aspect-Oriented Way A Novel Approach to Unit Testing: The Aspect-Oriented Way Guoqing Xu and Zongyuan Yang Software Engineering Lab, Department of Computer Science East China Normal University 3663, North Zhongshan Rd., Shanghai

More information

Temporal Aspects as Security Automata

Temporal Aspects as Security Automata Temporal Aspects as Security Automata Peter Hui CTI, DePaul University Chicago, IL, USA James Riely CTI, DePaul University Chicago, IL, USA Abstract Aspect-oriented programming (AOP) has been touted as

More information

A Temporal Logic Language for Context Awareness in Pointcuts

A Temporal Logic Language for Context Awareness in Pointcuts A Temporal Logic Language for Context Awareness in Pointcuts Charlotte Herzeel, Kris Gybels, Pascal Costanza {charlotte.herzeel, kris.gybels, pascal.costanza}@vub.ac.be Programming Technology Lab Vrije

More information

Nu: a dynamic aspect-oriented intermediate language model and virtual machine for flexible runtime adaptation

Nu: a dynamic aspect-oriented intermediate language model and virtual machine for flexible runtime adaptation Computer Science Conference Presentations, Posters and Proceedings Computer Science 2008 Nu: a dynamic aspect-oriented intermediate language model and virtual machine for flexible runtime adaptation Robert

More information

A DSL to declare aspect execution order

A DSL to declare aspect execution order A DSL to declare aspect execution order Antoine Marot Université Libre de Bruxelles (ULB) amarot@ulb.ac.be Roel Wuyts IMEC Leuven and KU Leuven wuytsr@imec.be Abstract Composing aspects is known to be

More information

Course 8 3 December Adrian Iftene

Course 8 3 December Adrian Iftene Course 8 3 December 2011 Adrian Iftene adiftene@info.uaic.ro 1 Recapitulation course 7 Runtime Verification Model Checking MOP Runtime Verification Java MOP Examples Tools: MaC, J-LO SOA Definition Service,

More information

Leveraging DTrace for runtime verification

Leveraging DTrace for runtime verification Leveraging DTrace for runtime verification Carl Martin Rosenberg June 7th, 2016 Department of Informatics, University of Oslo Context: Runtime verification Desired properties System Every request gets

More information

Employing Query Technologies for Crosscutting Concern Comprehension

Employing Query Technologies for Crosscutting Concern Comprehension Employing Query Technologies for Crosscutting Concern Comprehension Marius Marin Accenture The Netherlands Marius.Marin@accenture.com Abstract Common techniques for improving comprehensibility of software

More information

Static type safety guarantees for the operators of a relational database querying system. Cédric Lavanchy

Static type safety guarantees for the operators of a relational database querying system. Cédric Lavanchy Static type safety guarantees for the operators of a relational database querying system Cédric Lavanchy June 6, 2008 Contents 1 Previous work 2 2 Goal 3 3 Theory bases 4 3.1 Typing a relation...........................

More information

From Multi-Modal Scenarios to Code: Compiling LSCs into AspectJ

From Multi-Modal Scenarios to Code: Compiling LSCs into AspectJ From Multi-Modal Scenarios to Code: Compiling LSCs into AspectJ Shahar Maoz shahar.maoz@weizmann.ac.il (preliminary version) The Weizmann Institute of Science, Rehovot, Israel David Harel dharel@weizmann.ac.il

More information

Combining Test Case Generation and Runtime Verification

Combining Test Case Generation and Runtime Verification Combining Test Case Generation and Runtime Verification Cyrille Artho a,1, Howard Barringer b,2, Allen Goldberg c, Klaus Havelund c, Sarfraz Khurshid d,3, Mike Lowry e, Corina Pasareanu c, Grigore Roşu

More information

A Novel Approach for Software Property Validation

A Novel Approach for Software Property Validation A Novel Approach for Software Property Validation Salamah Salamah Department of Computer and Software Engineering, Embry-Riddle Aeronautical University, salamahs@erau.edu. Irbis Gallegos, Omar Ochoa Computer

More information

On-Demand Materialization of Aspects for Application Development

On-Demand Materialization of Aspects for Application Development On-Demand Materialization of Aspects for Application Development Chang Hwan Peter Kim The University of Texas at Austin, USA Austin, TX 78712 chpkim@cs.utexas.edu Krzysztof Czarnecki University of Waterloo,

More information

Bugdel: An Aspect-Oriented Debugging System

Bugdel: An Aspect-Oriented Debugging System Bugdel: An Aspect-Oriented Debugging System Yoshiyuki Usui and Shigeru Chiba Dept. of Mathematical and Computing Sciences Tokyo Institute of Technology 2-12-1-W8-50 Ohkayama, Meguro-ku Tokyo 152-8552,

More information

Java-MOP: A Monitoring Oriented Programming Environment for Java

Java-MOP: A Monitoring Oriented Programming Environment for Java Java-MOP: A Monitoring Oriented Programming Environment for Java Feng Chen and Grigore Roşu Department of Computer Science University of Illinois at Urbana - Champaign, USA {fengchen,grosu@uiuc.edu Abstract.

More information

Aspect-Oriented Instrumentation with GCC

Aspect-Oriented Instrumentation with GCC Aspect-Oriented Instrumentation with GCC Justin Seyster 1, Ketan Dixit 1, Xiaowan Huang 1, Radu Grosu 1, Klaus Havelund 2, Scott A. Smolka 1, Scott D. Stoller 1, and Erez Zadok 1 1 Department of Computer

More information

A model and a tool for Event-based Aspect-Oriented Programming (EAOP)

A model and a tool for Event-based Aspect-Oriented Programming (EAOP) A model and a tool for Event-based Aspect-Oriented Programming (EAOP) Rémi Douence and Mario Südholt December 2002 (2nd edition) Abstract Aspect-oriented programming promises support for incremental program

More information

Using and Extending AspectJ for Separating Concerns in Parallel Java Code

Using and Extending AspectJ for Separating Concerns in Parallel Java Code Using and Extending AspectJ for Separating Concerns in Parallel Java Code Bruno Harbulot and John Gurd The University of Manchester POOSC 2005 Glasgow, July 2005 1/26 Presentation Outline Problem and Approach

More information

An Instrumentation Technique for Online Analysis of Multithreaded Programs

An Instrumentation Technique for Online Analysis of Multithreaded Programs An Instrumentation Technique for Online Analysis of Multithreaded Programs Grigore Roşu and Koushik Sen Department of Computer Science, University of Illinois at Urbana-Champaign, USA Email: {grosu,ksen}@uiuc.edu

More information

Checking and Correcting Behaviors of Java Programs at Runtime with Java-MOP 1

Checking and Correcting Behaviors of Java Programs at Runtime with Java-MOP 1 Checking and Correcting Behaviors of Java Programs at Runtime with Java-MOP 1 Feng Chen and Marcelo d Amorim and Grigore Roşu Department of Computer Science University of Illinois at Urbana-Champaign,

More information

Monitoring-Oriented Programming

Monitoring-Oriented Programming Monitoring-Oriented Programming Seyed Mohammad Mehdi Ahmadpanah smahmadpanah@aut.ac.ir ceit.aut.ac.ir/~ahmadpanah Supervisor Dr. Mehran S. Fallah Formal Security Lab. CEIT@AUT Mar. 12, 2017 Outline Introduction

More information

JML and Aspects: The Benefits of Instrumenting JML Features with AspectJ

JML and Aspects: The Benefits of Instrumenting JML Features with AspectJ JML and Aspects: The Benefits of Instrumenting JML Features with AspectJ Henrique Rebêlo Sérgio Soares Department of Computing and Systems University of Pernambuco Recife, Pernambuco, Brazil {hemr,sergio@dsc.upe.br

More information

A Lightweight and Extensible AspectJ Implementation

A Lightweight and Extensible AspectJ Implementation A Lightweight and Extensible AspectJ Implementation Rodolfo Toledo Éric Tanter 1 PLEIAD Lab Computer Science Department University of Chile Santiago, Chile {rtoledo,etanter}@dcc.uchile.cl Abstract. Extending

More information

Model Checking DSL-Generated C Source Code

Model Checking DSL-Generated C Source Code Model Checking DSL-Generated C Source Code Martin Sulzmann and Axel Zechner Informatik Consulting Systems AG, Germany {martin.sulzmann,axel.zechner}@ics-ag.de Abstract. We report on the application of

More information

A Distributed Dynamic Aspect Machine for Scientific Software Development

A Distributed Dynamic Aspect Machine for Scientific Software Development A Distributed Dynamic Aspect Machine for Scientific Software Development Chanwit Kaewkasi Centre for Novel Computing School of Computer Science University of Manchester John R. Gurd Centre for Novel Computing

More information

Aspect-Oriented Instrumentation with GCC Appears in the Proceedings of the First International Conference on Runtime Verification (RV 2010)

Aspect-Oriented Instrumentation with GCC Appears in the Proceedings of the First International Conference on Runtime Verification (RV 2010) Aspect-Oriented Instrumentation with GCC Appears in the Proceedings of the First International Conference on Runtime Verification (RV 2010) Justin Seyster 1, Ketan Dixit 1, Xiaowan Huang 1, Radu Grosu

More information

Impact Analysis and Visualization Toolkit for Static Crosscutting in AspectJ

Impact Analysis and Visualization Toolkit for Static Crosscutting in AspectJ Impact Analysis and Visualization Toolkit for Static Crosscutting in AspectJ Dehua Zhang, Ekwa Duala-Ekoko, and Laurie Hendren School of Computer Science, McGill University, Montreal, Quebec, Canada {dehua.zhang@mail,

More information

Relational Aspects as Tracematches

Relational Aspects as Tracematches The abc Group Relational Aspects as Tracematches abc Technical Report No. abc-2007-4 Eric Bodden, Reehan Shaikh, Laurie Hendren School of Computer Science McGill University Montréal, Québec, Canada October

More information

EFFICIENT, EXPRESSIVE, AND EFFECTIVE RUNTIME VERIFICATION PATRICK O NEIL MEREDITH DISSERTATION

EFFICIENT, EXPRESSIVE, AND EFFECTIVE RUNTIME VERIFICATION PATRICK O NEIL MEREDITH DISSERTATION EFFICIENT, EXPRESSIVE, AND EFFECTIVE RUNTIME VERIFICATION BY PATRICK O NEIL MEREDITH DISSERTATION Submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Computer

More information

JML and Aspects: The Benefits of

JML and Aspects: The Benefits of JML and Aspects: The Benefits of Instrumenting JML Features with AspectJ Henrique Rebêlo Sérgio Soares Ricardo Lima Paulo Borba Márcio Cornélio Java Modeling Language Formal specification language for

More information

Typestate Checking for Actionscript 3

Typestate Checking for Actionscript 3 Typestate Checking for Actionscript 3 Yun-En Liu and Qi Shan December 10, 2010 1 Introduction This project proposes a compile-time check for function calls in a game system written in Actionscript 3, based

More information

Weaving a Debugging Aspect into Domain-Specific Language Grammars

Weaving a Debugging Aspect into Domain-Specific Language Grammars Weaving a Debugging Aspect into Domain-Specific Language Grammars Hui Wu, Jeff Gray, and Suman Roychoudhury Department of Computer and Information Sciences The University of Alabama at Birmingham Birmingham,

More information

Querypoint Debugging. John J. Barton. Abstract. 1. Introduction. IBM Research Almaden San Jose, CA

Querypoint Debugging. John J. Barton. Abstract. 1. Introduction. IBM Research Almaden San Jose, CA Querypoint Debugging Salman Mirghasemi Claude Petitpierre School of Computer and Communication Sciences Ecole Polytechnique Fédérale de Lausanne, Switzerland {salman.mirghasemi,claude.petitpierre}@epfl.ch

More information

A Type System for Functional Traversal-Based Aspects

A Type System for Functional Traversal-Based Aspects A Type System for Functional Traversal-Based Aspects Bryan Chadwick and Karl Lieberherr March 2 nd 2009 1 / 30 Outline Introduction Example (Pure) Semantics Example (Full Dispatch) Type System Soundness

More information

Relational Aspects as Tracematches

Relational Aspects as Tracematches The abc Group Relational Aspects as Tracematches abc Technical Report No. abc-2007-4 Eric Bodden, Reehan Shaikh and Laurie Hendren School of Computer Science McGill University Montréal, Québec, Canada

More information

Overview of AspectOPTIMA

Overview of AspectOPTIMA COMP-667 Software Fault Tolerance Overview of AspectOPTIMA Jörg Kienzle School of Computer Science McGill University, Montreal, QC, Canada With Contributions From: Samuel Gélineau, Ekwa Duala-Ekoko, Güven

More information

A join point for loops in AspectJ

A join point for loops in AspectJ A join point for loops in AspectJ Bruno Harbulot bruno.harbulot@cs.man.ac.uk John R. Gurd jgurd@cs.man.ac.uk Centre for Novel Computing, School of Computer Science, University of Manchester, Oxford Road,

More information

Nu: a Dynamic Aspect-Oriented Intermediate Language Model and Virtual Machine for Flexible Runtime Adaptation

Nu: a Dynamic Aspect-Oriented Intermediate Language Model and Virtual Machine for Flexible Runtime Adaptation Nu: a Dynamic Aspect-Oriented Intermediate Language Model and Virtual Machine for Flexible Runtime Adaptation Robert Dyer Dept. of Computer Science, Iowa State University rdyer@cs.iastate.edu Hridesh Rajan

More information

SQL for Deep Dynamic Analysis?

SQL for Deep Dynamic Analysis? SQL for Deep Dynamic Analysis? Mohammad R. Azadmanesh Università della Svizzera italiana, Lugano, Switzerland Mohammad.Reza.Azadmanesh@usi.ch Matthias Hauswirth Università della Svizzera italiana, Lugano,

More information

Course 8 27 November Adrian Iftene

Course 8 27 November Adrian Iftene Course 8 27 November 2017 Adrian Iftene adiftene@info.uaic.ro 1 Recapitulation course 7 Runtime Verification Model Checking MOP Runtime Verification Java MOP Examples Tools: MaC, J-LO SOA Definition Service,

More information

Modeling the Evolution of Aspect Configurations using Model Transformations

Modeling the Evolution of Aspect Configurations using Model Transformations Modeling the Evolution of Aspect Configurations using Model Transformations Uwe Zdun, Mark Strembeck Institute of Information Systems, New Media Lab Vienna University of Economics, Austria {uwe.zdun mark.strembeck}@wu-wien.ac.at

More information

On the Impact of Aspect-Oriented Programming on Object-Oriented Metrics

On the Impact of Aspect-Oriented Programming on Object-Oriented Metrics On the Impact of Aspect-Oriented Programming on Object-Oriented Metrics Jean-Yves Guyomarc h and Yann-Gaël Guéhéneuc GEODES - Group of Open and Distributed Systems, Experimental Software Engineering Department

More information

Relational Aspects as Tracematches

Relational Aspects as Tracematches Relational Aspects as Tracematches Eric Bodden, Reehan Shaikh and Laurie Hendren School of Computer Science McGill University Montréal, Québec, Canada Abstract The relationships between objects in an object-oriented

More information

Retrieving Sequence Diagrams from Aspect-Oriented Systems

Retrieving Sequence Diagrams from Aspect-Oriented Systems Retrieving Sequence Diagrams from Aspect-Oriented Systems CS842: Aspect-Oriented Programming Course Project Steven She (shshe@uwaterloo.ca) Abstract Aspect-oriented programming is built on the concept

More information

A staged static program analysis to improve the performance of runtime monitoring

A staged static program analysis to improve the performance of runtime monitoring A staged static program analysis to improve the performance of runtime monitoring Eric Bodden 1, Laurie Hendren 1, Ondřej Lhoták 2 1 McGill University, Montréal, Québec, Canada 2 University of Waterloo,

More information

Runtime Checking for Program Verification Systems

Runtime Checking for Program Verification Systems Runtime Checking for Program Verification Systems Karen Zee, Viktor Kuncak, and Martin Rinard MIT CSAIL Tuesday, March 13, 2007 Workshop on Runtime Verification 1 Background Jahob program verification

More information

A C-language binding for PSL

A C-language binding for PSL A C-language binding for PSL Ping Hang Cheung, Alessandro Forin Microsoft Research September 2006 Technical Report MSR-TR-2006-131 Microsoft Research Microsoft Corporation One Microsoft Way Redmond, WA

More information

Introduction to. Bruno Harbulot. ESNW, the University of Manchester.

Introduction to. Bruno Harbulot. ESNW, the University of Manchester. Introduction to Aspect-Oriented Software Development Bruno Harbulot ESNW, the University of Manchester http://www.cs.man.ac.uk/~harbulob/ ELF Developers' Forum Manchester - October 2005 1/24 Presentation

More information

Research Interests. Education. Academic Experience. Software engineering, static program analysis, programming language design.

Research Interests. Education. Academic Experience. Software engineering, static program analysis, programming language design. Research Interests Patrick Lam Department of Electrical and Computer Engineering University of Waterloo 200 University Avenue West Waterloo, Ontario N2L 3G1 CANADA Telephone: (519)888-4567 extension 38017

More information

Context-Aware Aspects

Context-Aware Aspects Context-Aware Aspects Éric Tanter 1,,KrisGybels 2, Marcus Denker 3, and Alexandre Bergel 4, 1 Center for Web Research/DCC University of Chile, Santiago Chile 2 PROG Lab Vrije Universiteit Brussel Belgium

More information

Java PathFinder JPF 2 Second Generation of Java Model Checker

Java PathFinder JPF 2 Second Generation of Java Model Checker Java PathFinder JPF 2 Second Generation of Java Model Checker Guenther Brand Mat. Nr. 9430535 27. 06. 2003 Abstract This essay is based on the papers Java PathFinder, Second Generation of Java Model Checker

More information

Detecting Precedence-Related Advice Interference

Detecting Precedence-Related Advice Interference Detecting Precedence-Related Advice Interference Technical Report TR #0607, University of Passau, Computer Science Department, Passau, Germany, July 2006 Maximilian Stoerzer and Robin Sterr University

More information

What is a Trace? A Runtime Verification Perspective

What is a Trace? A Runtime Verification Perspective What is a Trace? A Runtime Verification Perspective Giles Reger 1 Klaus Havelund 2 1 University of Manchester, Manchester, UK 2 Jet Propulsion Laboratory, California Inst. of Technology, USA ISoLa 2016

More information

junit RV Adding Runtime Verification to junit

junit RV Adding Runtime Verification to junit junit RV Adding Runtime Verification to junit Normann Decker, Martin Leucker, and Daniel Thoma Institute for Software Engineering and Programming Languages Universität zu Lübeck, Germany {decker, leucker,

More information

Comprehension of spacecraft telemetry using hierarchical specifications of behavior

Comprehension of spacecraft telemetry using hierarchical specifications of behavior Comprehension of spacecraft telemetry using hierarchical specifications of behavior Klaus Havelund and Rajeev Joshi Jet Propulsion Laboratory California Institute of Technology California, USA Abstract.

More information

AJDT: Getting started with Aspect-Oriented Programming in Eclipse

AJDT: Getting started with Aspect-Oriented Programming in Eclipse AJDT: Getting started with Aspect-Oriented Programming in Eclipse Matt Chapman IBM Java Technology Hursley, UK AJDT Committer Andy Clement IBM Java Technology Hursley, UK AJDT & AspectJ Committer Mik Kersten

More information

Building the abc AspectJ compiler with Polyglot and Soot

Building the abc AspectJ compiler with Polyglot and Soot The abc Group Building the abc AspectJ compiler with Polyglot and Soot abc Technical Report No. abc-2004-4 Pavel Avgustinov 1, Aske Simon Christensen 2, Laurie Hendren 3, Sascha Kuzins 1, Jennifer Lhoták

More information

4/6/2011. Model Checking. Encoding test specifications. Model Checking. Encoding test specifications. Model Checking CS 4271

4/6/2011. Model Checking. Encoding test specifications. Model Checking. Encoding test specifications. Model Checking CS 4271 Mel Checking LTL Property System Mel Mel Checking CS 4271 Mel Checking OR Abhik Roychoudhury http://www.comp.nus.edu.sg/~abhik Yes No, with Counter-example trace 2 Recap: Mel Checking for mel-based testing

More information

Specifying Pointcuts in AspectJ

Specifying Pointcuts in AspectJ Specifying Pointcuts in AspectJ Yi Wang Department of Computer Science Shanghai Jiao Tong University 800 Dongchuan Rd, Shanghai, 200240, China yi_wang@sjtu.edu.cn Jianjun Zhao Department of Computer Science

More information

SMEDL: Combining Synchronous and Asynchronous Monitoring

SMEDL: Combining Synchronous and Asynchronous Monitoring University of Pennsylvania ScholarlyCommons Departmental Papers (CIS) Department of Computer & Information Science 9-2016 SMEDL: Combining Synchronous and Asynchronous Monitoring Teng Zhang University

More information