Weaving Rewrite-Based Access Control Policies

Size: px
Start display at page:

Download "Weaving Rewrite-Based Access Control Policies"

Transcription

1 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, Kirchner, Kirchner Weaving Rewrite-Based Access Control 1 FMSE,

2 Context Access control is a central issue in computer security Policies are software artifacts on their own: Policies may be composed of several rule sets Complex conditions on the policy environment It is necessary to ensure the compliance of a large system to a given dynamic access control policy Several bugs are related to access control Policy specification and implementation are error prone Policies need to be maintained independently from the application code Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 2 FMSE,

3 Enforcement Mechanism Execution monitoring A reference monitor watches the execution of a target program, and interferes when it is about to violate the security policy Monitors can be inlined in the application code This process can be automated for low level, static, policies Si Action Action... Si+1 Si+2 Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 3 FMSE,

4 Enforcement Mechanism Execution monitoring A reference monitor watches the execution of a target program, and interferes when it is about to violate the security policy Monitors can be inlined in the application code This process can be automated for low level, static, policies Si Action Action Si+1 Si+2... Reference Monitor Reference Monitor Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 3 FMSE,

5 Objectives In this work we provide a methodology for building reference monitors for expressive policies to adopt a formal model for access control policies using term rewriting with strategies to help developers to enforce dynamic policies in a modular and flexible way to be able to reuse policies independently specified in different context or applications Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 4 FMSE,

6 Outline 1 Context/Motivation 2 Expressive Rewrite-Based Access Control 3 Weaving Policies 4 Related Work 5 Summary and Future Works Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 5 FMSE,

7 Example - A conference policy Authors can submit papers during the submission phase. aut(q(author(x), submitpaper, paper(x, z)), submission, cnd) aut(q(author(x), readscores, p), phase, cnd) aut(q(reviewer(x), action, p), phase, conflict(x, p)) aut(q(reviewer(x), action, paper(x, z)), phase, cnd) aut(q(reviewer(x), action, paper(x, z)), phase, conflict(x, paper(x, z))) aut(a, b, c) permit deny deny notapp Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 6 FMSE,

8 Example - A conference policy Authors can submit papers during the submission phase. aut(q(author(x), submitpaper, paper(x, z)), submission, cnd) aut(q(author(x), readscores, p), phase, cnd) aut(q(reviewer(x), action, p), phase, conflict(x, p)) aut(q(reviewer(x), action, paper(x, z)), phase, cnd) aut(q(reviewer(x), action, paper(x, z)), phase, conflict(x, paper(x, z))) aut(a, b, c) permit deny deny notapp Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 6 FMSE,

9 Example - A conference policy Authors may never read scores for a paper. aut(q(author(x), submitpaper, paper(x, z)), submission, cnd) aut(q(author(x), readscores, p), phase, cnd) aut(q(reviewer(x), action, p), phase, conflict(x, p)) aut(q(reviewer(x), action, paper(x, z)), phase, cnd) aut(q(reviewer(x), action, paper(x, z)), phase, conflict(x, paper(x, z))) aut(a, b, c) permit deny deny notapp Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 6 FMSE,

10 Example - A conference policy A reviewer may never perform an action over a paper if he is conflicted with that paper. aut(q(author(x), submitpaper, paper(x, z)), submission, cnd) aut(q(author(x), readscores, p), phase, cnd) aut(q(reviewer(x), action, p), phase, conflict(x, p)) aut(q(reviewer(x), action, paper(x, z)), phase, cnd) aut(q(reviewer(x), action, paper(x, z)), phase, conflict(x, paper(x, z))) aut(a, b, c) permit deny deny notapp Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 6 FMSE,

11 Example - A conference policy A reviewer is conflicted with a paper if he is an author for that paper. aut(q(author(x), submitpaper, paper(x, z)), submission, cnd) aut(q(author(x), readscores, p), phase, cnd) aut(q(reviewer(x), action, p), phase, conflict(x, p)) aut(q(reviewer(x), action, paper(x, z)), phase, cnd) aut(q(reviewer(x), action, paper(x, z)), phase, conflict(x, paper(x, z))) aut(a, b, c) permit deny deny notapp Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 6 FMSE,

12 Example - A conference policy aut(q(author(x), submitpaper, paper(x, z)), submission, cnd) aut(q(author(x), readscores, p), phase, cnd) aut(q(reviewer(x), action, p), phase, conflict(x, p)) aut(q(reviewer(x), action, paper(x, z)), phase, cnd) aut(q(reviewer(x), action, paper(x, z)), phase, conflict(x, paper(x, z))) aut(a, b, c) permit deny deny notapp Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 6 FMSE,

13 Rewrite-Based Access Control Term rewriting provides a clear semantics to access control and a framework to formulate its formal properties consistency, completeness, termination An uniform semantics for policy combiners relying on rewriting strategies The language allows us to handle a wide range of dynamic policies D. J. Dougherty, C. Kirchner, H. Kirchner, and A. Santana de Oliveira. Modular access control via strategic rewriting. ESORICS, volume 4734 of Lecture Notes in Computer Science, pages Springer, Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 7 FMSE,

14 Rewrite-Based Access Control Term rewriting provides a clear semantics to access control and a framework to formulate its formal properties consistency, completeness, termination An uniform semantics for policy combiners relying on rewriting strategies The language allows us to handle a wide range of dynamic policies D. J. Dougherty, C. Kirchner, H. Kirchner, and A. Santana de Oliveira. Modular access control via strategic rewriting. ESORICS, volume 4734 of Lecture Notes in Computer Science, pages Springer, Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 7 FMSE,

15 Rewrite-Based Access Control Term rewriting provides a clear semantics to access control and a framework to formulate its formal properties consistency, completeness, termination An uniform semantics for policy combiners relying on rewriting strategies The language allows us to handle a wide range of dynamic policies D. J. Dougherty, C. Kirchner, H. Kirchner, and A. Santana de Oliveira. Modular access control via strategic rewriting. ESORICS, volume 4734 of Lecture Notes in Computer Science, pages Springer, Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 7 FMSE,

16 Rewriting-Based Policies. Definition (Security Policy) A policy is defined by : 1 a signature for defining structure of the data-structure for the policy environment; 2 a non-empty set of constants which represent decisions; 3 a set of rewrite rules to govern the behavior of the policy 4 a set of terms that represent access requests 5 a rewrite strategy that controls rule application. Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 8 FMSE,

17 Rewriting-Based Policies. Definition (Security Policy) A policy is defined by : 1 a signature for defining structure of the data-structure for the policy environment; 2 a non-empty set of constants which represent decisions; 3 a set of rewrite rules to govern the behavior of the policy 4 a set of terms that represent access requests 5 a rewrite strategy that controls rule application. Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 8 FMSE,

18 Rewriting-Based Policies. Definition (Security Policy) A policy is defined by : 1 a signature for defining structure of the data-structure for the policy environment; 2 a non-empty set of constants which represent decisions; 3 a set of rewrite rules to govern the behavior of the policy 4 a set of terms that represent access requests 5 a rewrite strategy that controls rule application. Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 8 FMSE,

19 Rewriting-Based Policies. Definition (Security Policy) A policy is defined by : 1 a signature for defining structure of the data-structure for the policy environment; 2 a non-empty set of constants which represent decisions; 3 a set of rewrite rules to govern the behavior of the policy 4 a set of terms that represent access requests 5 a rewrite strategy that controls rule application. Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 8 FMSE,

20 Rewriting-Based Policies. Definition (Security Policy) A policy is defined by : 1 a signature for defining structure of the data-structure for the policy environment; 2 a non-empty set of constants which represent decisions; 3 a set of rewrite rules to govern the behavior of the policy 4 a set of terms that represent access requests 5 a rewrite strategy that controls rule application. Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 8 FMSE,

21 Example - A conference policy aut(q(author(x), submitpaper, paper(x, z)), submission, cnd) aut(q(author(x), readscores, p), phase, cnd) aut(q(reviewer(x), action, p), phase, conflict(x, p)) aut(q(reviewer(x), action, paper(x, z)), phase, cnd) aut(q(reviewer(x), action, paper(x, z)), phase, conflict(x, paper(x, z))) aut(a, b, c) permit deny deny notapp Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 9 FMSE,

22 Tom Implementing Rewriting in Java Tom ( Extends Java with pattern matching, rewriting, and strategies %match allows discriminating among a list of patterns. (backquote construct) is used to build terms from Java values. %gom provides a language to define tree-like data structures %strategy groups rules for constructing more complex strategies, e.g. innermost, outermost, top down, etc.. E. Balland, P. Brauner, R. Kopetz, P.-E. Moreau, and A. Reilles. Tom: Piggybacking rewriting on java. RTA 2007, vol of LNCS, pages Springer. Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 10 FMSE,

23 Tom Implementing Rewriting in Java Tom ( Extends Java with pattern matching, rewriting, and strategies %match allows discriminating among a list of patterns. (backquote construct) is used to build terms from Java values. %gom provides a language to define tree-like data structures %strategy groups rules for constructing more complex strategies, e.g. innermost, outermost, top down, etc.. E. Balland, P. Brauner, R. Kopetz, P.-E. Moreau, and A. Reilles. Tom: Piggybacking rewriting on java. RTA 2007, vol of LNCS, pages Springer. Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 10 FMSE,

24 Tom Implementing Rewriting in Java Tom ( Extends Java with pattern matching, rewriting, and strategies %match allows discriminating among a list of patterns. (backquote construct) is used to build terms from Java values. %gom provides a language to define tree-like data structures %strategy groups rules for constructing more complex strategies, e.g. innermost, outermost, top down, etc.. E. Balland, P. Brauner, R. Kopetz, P.-E. Moreau, and A. Reilles. Tom: Piggybacking rewriting on java. RTA 2007, vol of LNCS, pages Springer. Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 10 FMSE,

25 Tom Implementing Rewriting in Java Tom ( Extends Java with pattern matching, rewriting, and strategies %match allows discriminating among a list of patterns. (backquote construct) is used to build terms from Java values. %gom provides a language to define tree-like data structures %strategy groups rules for constructing more complex strategies, e.g. innermost, outermost, top down, etc.. E. Balland, P. Brauner, R. Kopetz, P.-E. Moreau, and A. Reilles. Tom: Piggybacking rewriting on java. RTA 2007, vol of LNCS, pages Springer. Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 10 FMSE,

26 Tom Implementing Rewriting in Java Tom ( Extends Java with pattern matching, rewriting, and strategies %match allows discriminating among a list of patterns. (backquote construct) is used to build terms from Java values. %gom provides a language to define tree-like data structures %strategy groups rules for constructing more complex strategies, e.g. innermost, outermost, top down, etc.. E. Balland, P. Brauner, R. Kopetz, P.-E. Moreau, and A. Reilles. Tom: Piggybacking rewriting on java. RTA 2007, vol of LNCS, pages Springer. Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 10 FMSE,

27 Structure of a policy in Tom public class P o l i c y { %gom{... Request = q ( s : Subject, a : Action, o : Obj ) Phase = submission ( ) meeting ( ) review ( ) Action = submitpaper ( ) readscores ( )... Decision = permit ( ) deny ( ) aut ( r : Request, p : Phase )... }... %strategy Rules ( ) {... aut ( q ( author ( x ), submitpaper ( ), paper ( x, y ) ), submission ( ), cnd ) > { return permit ( ) ; }... }... public s t a t i c boolean apply (... ) {... Strategy p o l i c y = Innermost ( Rules ( ) ) ;... Decision d = ( Decision ) p o l i c y. v i s i t ( q1 ) ;... }... } Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 11 FMSE,

28 Aspect Oriented Programming Separation of crosscutting concerns, e.g. access control Encapsulation of behaviors that affect multiple classes in aspects Basic concepts: pointcuts and and code advice Weaving: compilation process that matches the pointcuts against the actual code and inserts the code advice before, after or around a joinpoint Several implementations exist, a popular one is AspectJ Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 12 FMSE,

29 System Architecture Policy Target program Policy Signature mapping Program Code Policy Rules Joinpoints Program Code Code Advice weaving Reference Monitor Aspect Generated program Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 13 FMSE,

30 Aspects for Access Control 1 Capture the policy environment 2 Identify access requests 3 Give the control to the reference monitor: advice code 4 Weave the policy rules Example aspect PolicyAspect {... private i n t phase ;... a f t e r ( i n t cp ) : set ( i n t Conference. currentphase ) & & args ( cp ) { phase=cp ; }... } Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 14 FMSE,

31 Aspects for Access Control 1 Capture the policy environment 2 Identify access requests 3 Give the control to the reference monitor: advice code 4 Weave the policy rules Example aspect PolicyAspect {... private i n t phase ;... a f t e r ( i n t cp ) : set ( i n t Conference. currentphase ) & & args ( cp ) { phase=cp ; }... } Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 14 FMSE,

32 Aspects for Access Control 1 Capture the policy environment 2 Identify access requests 3 Give the control to the reference monitor: advice code 4 Weave the policy rules Example pointcut submitreviewcut ( i n t objid, i n t revid ) : c a l l ( void Conference. submitreview ( i n t, i n t, i n t ) ) & & args ( o b j I d, r e v I d, ) ; Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 15 FMSE,

33 Aspects for Access Control 1 Capture the policy environment 2 Identify access requests 3 Give the control to the reference monitor: advice code 4 Weave the policy rules Example pointcut submitreviewcut ( i n t objid, i n t revid ) : c a l l ( void Conference. submitreview ( i n t, i n t, i n t ) ) & & args ( o b j I d, r e v I d, ) ; Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 15 FMSE,

34 Aspects for Access Control 1 Capture the policy environment 2 Identify access requests 3 Give the control to the reference monitor: advice code 4 Weave the policy rules: AspectJ compiler Example before ( Paper p ) : submitpapercut ( p ) {... i f ( P o l i c y. apply ( usr. g e t I d ( ),..., phase ) = = Deny ) { System. e r r. p r i n t l n ( " Access Denied. " ) ; throw new AccessControlException ( ) ; } } Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 16 FMSE,

35 Aspects for Access Control 1 Capture the policy environment 2 Identify access requests 3 Give the control to the reference monitor: advice code 4 Weave the policy rules: AspectJ compiler Example before ( Paper p ) : submitpapercut ( p ) {... i f ( P o l i c y. apply ( usr. g e t I d ( ),..., phase ) = = Deny ) { System. e r r. p r i n t l n ( " Access Denied. " ) ; throw new AccessControlException ( ) ; } } Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 16 FMSE,

36 Aspects for Access Control 1 Capture the policy environment 2 Identify access requests 3 Give the control to the reference monitor: advice code 4 Weave the policy rules: AspectJ compiler Example before ( Paper p ) : submitpapercut ( p ) {... i f ( P o l i c y. apply ( usr. g e t I d ( ),..., phase ) = = Deny ) { System. e r r. p r i n t l n ( " Access Denied. " ) ; throw new AccessControlException ( ) ; } } Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 16 FMSE,

37 Weaving rules using AspectJ and Tom TOM Policy.t compiler Policy.java Policy.class Aspect.java AspectJ compiler Program.java Program.class Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 17 FMSE,

38 Considerations Overhead: balanced with modularity and better security Proving policy properties increases trust: consistency, completeness, termination Policies also need to be protected against malicious or unaware developers Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 18 FMSE,

39 Related works Static analyzers e.g. Java bytecode verifier Formalization of run-time execution monitors [Schneider, 2000, Ligatti et al., 2005] Program rewriters(at compile or load time) [Erlingsson and Schneider, 2000, Evans and Twyman, 1999, Bauer et al., 2005] Other approaches that use AOP for policy enforcement [Song et al., 2005, Cuppens et al., 2006] Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 19 FMSE,

40 Summary and Future Works We presented a methodology to weave expressive rewrite-based policies into existing Java programs Developers can formally specify policies and reuse them in a flexible enforcement scheme We have implemented a number of examples to test the robustness of the approach Future works To automate the generation of pointcuts To provide more fine-tuned analysis for policies Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 20 FMSE,

41 Consistency. Definition (Consistency) A security policy is consistent if for every query evaluation, at most one decision is computed. Confluence q t 1 t 2 Return Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 21 FMSE,

42 Consistency. Definition (Consistency) A security policy is consistent if for every query evaluation, at most one decision is computed. Confluence q t 1 d t 2 Return Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 21 FMSE,

43 Consistency. Definition (Consistency) A security policy is consistent if for every query evaluation, at most one decision is computed. Confluence q t 1 t 2 Return Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 22 FMSE,

44 Consistency. Definition (Consistency) A security policy is consistent if for every query evaluation, at most one decision is computed. Confluence q t 1 d t 2 Return Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 22 FMSE,

45 Termination. Definition (Termination) A security policy is terminating if every request evaluation is finite. Powerful proof techniques: dependency pairs, recursive path orderings, etc Several automated tools for proving termination are available: AProVE, TTT, CiME, etc. Return Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 23 FMSE,

46 Termination. Definition (Termination) A security policy is terminating if every request evaluation is finite. Powerful proof techniques: dependency pairs, recursive path orderings, etc Several automated tools for proving termination are available: AProVE, TTT, CiME, etc. Return Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 24 FMSE,

47 Completeness. Definition (Completeness) A security policy is complete if for every request its evaluation returns an access decision. Return q d t... Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 25 FMSE,

48 Completeness. Definition (Completeness) A security policy is complete if for every request its evaluation returns an access decision. Return q d d d Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 25 FMSE,

49 Completeness. Definition (Completeness) A security policy is complete if for every request its evaluation returns an access decision. Return q d t... Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 26 FMSE,

50 Completeness. Definition (Completeness) A security policy is complete if for every request its evaluation returns an access decision. Return q d d d Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 26 FMSE,

51 For Further Information I Bauer, L., Ligatti, J., and Walker, D. (2005). Composing security policies with polymer. In PLDI 05: Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation, pages , New York, NY, USA. ACM Press. Cuppens, F., Cuppens-Boulahia, N., and Ramard, T. (2006). Availability enforcement by obligations and aspects identification. In ARES, pages IEEE Computer Society. Erlingsson, U. and Schneider, F. B. (2000). Sasi enforcement of security policies: a retrospective. In NSPW 99: Proceedings of the 1999 workshop on New security paradigms, pages 87 95, New York, NY, USA. ACM Press. Evans, D. and Twyman, A., editors (1999). Flexible Policy-Directed Code Safety, IEEE Symposium on Security and Privacy, IEEE Computer Society. Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 27 FMSE,

52 For Further Information II Ligatti, J., Bauer, L., and Walker, D. (2005). Enforcing non-safety security policies with program monitors. In di Vimercati, S. D. C., Syverson, P. F., and Gollmann, D., editors, ESORICS, volume 3679 of Lecture Notes in Computer Science, pages Springer. Schneider, F. B. (2000). Enforceable security policies. ACM Trans. Inf. Syst. Secur., 3(1): Song, E., Reddy, R., France, R. B., Ray, I., Georg, G., and Alexander, R. (2005). Verifiable composition of access control and application features. In Ferrari, E. and Ahn, G.-J., editors, SACMAT, pages ACM. Oliveira, Wang, Kirchner, Kirchner Weaving Rewrite-Based Access Control 28 FMSE,

Rules and Strategies in Java

Rules and Strategies in Java Electronic Notes in Theoretical Computer Science 204 (2008) 71 82 www.elsevier.com/locate/entcs Rules and Strategies in Java Pierre-Etienne Moreau and Antoine Reilles INRIA & INPL & Loria (moreau reilles)@loria.fr

More information

PoliSeer: A Tool for Managing Complex Security Policies

PoliSeer: A Tool for Managing Complex Security Policies PoliSeer: A Tool for Managing Complex Security Policies Daniel Lomsak and Jay Ligatti University of South Florida Department of Computer Science and Engineering {dlomsak,ligatti}@cse.usf.edu Abstract.

More information

LoPSiL: A Location-based Policyspecification

LoPSiL: A Location-based Policyspecification LoPSiL: A Location-based Policyspecification Language Jay Ligatti, Billy Rickey, and Nalin Saigal Department of Computer Science and Engineering, University of South Florida 1/51 Introduction Policy-specification

More information

Tracechecks: Defining semantic interfaces with temporal logic

Tracechecks: Defining semantic interfaces with temporal logic 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

More information

Take Control with AspectJ

Take Control with AspectJ Hermod Opstvedt Chief Architect DnB NOR ITUD Common components Hermod Opstvedt Slide 1 What is AspectJ? Aspect-oriented programming (AOP) is a technique for improving separation of concerns. Crosscutting

More information

Dynamic Information Management and Exchange for Command and Control Applications

Dynamic Information Management and Exchange for Command and Control Applications AFRL-AFOSR-UK-TR-2015-0026 Dynamic Information Management and Exchange for Command and Control Applications Maribel Fernandez KING S COLLEGE LONDON THE STRAND LONDON WC2R 2LS UNITED KINGDOM EOARD GRANT

More information

A short introduction to INF329. Spring AOP

A short introduction to INF329. Spring AOP A short introduction to INF329 Spring AOP Introduction to AOP AOP is an abbreviation for aspectoriented programming Aspect-oriented programming is a new paradigm in programming, seperating functionality

More information

Chapter 7. Modular Refactoring. 7.1 Introduction to Modular Refactoring

Chapter 7. Modular Refactoring. 7.1 Introduction to Modular Refactoring Chapter 7 Modular Refactoring I n this chapter, the role of Unified Modeling Language (UML) diagrams and Object Constraint Language (OCL) expressions in modular refactoring have been explained. It has

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

Supporting Documentation and Evolution of Crosscutting Concerns in Business Processes

Supporting Documentation and Evolution of Crosscutting Concerns in Business Processes Supporting Documentation and Evolution of Crosscutting Concerns in Business Processes Chiara Di Francescomarino supervised by Paolo Tonella dfmchiara@fbk.eu - Fondazione Bruno Kessler, Trento, Italy Abstract.

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

Proceedings of Student Research Day, CSIS, Pace University, May 9th, Current Approaches to Policy based Security. A. L.

Proceedings of Student Research Day, CSIS, Pace University, May 9th, Current Approaches to Policy based Security. A. L. Proceedings of Student Research Day, CSIS, Pace University, May 9th, 2003 Current Approaches to Policy based Security A. L. Gottlieb ABSTRACT The effort to combat the effects of malicious software on unwary

More information

Programming AspectJ with Eclipse and AJDT, By Example. Chien-Tsun Chen Sep. 21, 2003

Programming AspectJ with Eclipse and AJDT, By Example. Chien-Tsun Chen Sep. 21, 2003 Programming AspectJ with Eclipse and AJDT, By Example Chien-Tsun Chen Sep. 21, 2003 ctchen@ctchen.idv.tw References R. Laddad, I want my AOP!, Part 1-Part3, JavaWorld, 2002. R. Laddad, AspectJ in Action,

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

Using Aspect-Oriented Programming to extend Protégé. Henrik Eriksson Linköping University

Using Aspect-Oriented Programming to extend Protégé. Henrik Eriksson Linköping University Using Aspect-Oriented Programming to extend Protégé Henrik Eriksson Linköping University Questions about MOP and Protégé Original goal: Extending the JessTab plug-in What is the class precedence in Protégé?

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

Aspect Design Pattern for Non Functional Requirements

Aspect Design Pattern for Non Functional Requirements Aspect Design Pattern for Non Functional Requirements FAZAL-E-AMIN¹, ANSAR SIDDIQ², HAFIZ FAROOQ AHMAD³ ¹ ²International Islamic University Islamabad, Pakistan ³NUST Institute of Information Technology,

More information

APTE: Automated Pointcut Testing for AspectJ Programs

APTE: Automated Pointcut Testing for AspectJ Programs APTE: Automated Pointcut Testing for AspectJ Programs Prasanth Anbalagan Department of Computer Science North Carolina State University Raleigh, NC 27695 panbala@ncsu.edu Tao Xie Department of Computer

More information

An Aspect-Oriented Approach. Henrique Rebêlo Informatics Center

An Aspect-Oriented Approach. Henrique Rebêlo Informatics Center An Aspect-Oriented Approach to implement JML Features Henrique Rebêlo Informatics Center Federal University of Pernambuco Summary jmlc problems bigger code, slower code, no suppport for Java ME, and bad

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

Aspect-Orientation from Design to Code

Aspect-Orientation from Design to Code Aspect-Orientation from Design to Code Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany groher@informatik.tu-darmstadt.de Thomas Baumgarth Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739

More information

Course 6 7 November Adrian Iftene

Course 6 7 November Adrian Iftene Course 6 7 November 2016 Adrian Iftene adiftene@info.uaic.ro 1 Recapitulation course 5 BPMN AOP AOP Cross cutting concerns pointcuts advice AspectJ Examples In C#: NKalore 2 BPMN Elements Examples AOP

More information

Enforcing Interaction Properties in AOSD-Enabled Systems

Enforcing Interaction Properties in AOSD-Enabled Systems Enforcing Interaction Properties in AOSD-Enabled Systems Constantin Serban Department of Computer Science Rutgers University 110 Frelinghuysen Rd. Piscataway, NJ 08854 USA serban@cs.rutgers.edu Shmuel

More information

Integration of Application Business Logic and Business Rules with DSL and AOP

Integration of Application Business Logic and Business Rules with DSL and AOP Integration of Application Business Logic and Business Rules with DSL and AOP Bogumiła Hnatkowska and Krzysztof Kasprzyk Wroclaw University of Technology, Wyb. Wyspianskiego 27 50-370 Wroclaw, Poland Bogumila.Hnatkowska@pwr.wroc.pl

More information

Improving Software Modularity using AOP

Improving Software Modularity using AOP B Vasundhara 1 & KV Chalapati Rao 2 1 Dept. of Computer Science, AMS School of Informatics, Hyderabad, India 2 CVR College of Engineering, Ibrahimpatnam, India E-mail : vasu_venki@yahoo.com 1, chalapatiraokv@gmail.com

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

AOP 101: Intro to Aspect Oriented Programming. Ernest Hill

AOP 101: Intro to Aspect Oriented Programming. Ernest Hill AOP 101: Intro to Aspect Oriented Programming ernesthill@earthlink.net AOP 101-1 AOP 101: Aspect Oriented Programming Goal of Software History of Programming Methodology Remaining Problem AOP to the Rescue

More information

Assertion with Aspect

Assertion with Aspect Assertion with Aspect Takashi Ishio, Toshihiro Kamiya, Shinji Kusumoto, Katsuro Inoue Graduate School of Engineering Science, PRESTO, Japan Science and Technology Agency Osaka University 1-3 Machikaneyama-cho,

More information

So, What is an Aspect?

So, What is an Aspect? Introduction to AspectJ Aspect-oriented paradigm AspectJ constructs Types of Join Points Primitive Lexical designators Type designators Control flow Types of Advice Before After Around Receptions Join

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

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

Language Oriented Modularity: From Theory to Practice

Language Oriented Modularity: From Theory to Practice Language Oriented Modularity: From Theory to Practice Arik Hadas Dept. of Mathematics and Computer Science The Open University of Israel Joint Work With: David H. Lorenz Language Oriented Modularity (LOM)

More information

Dynamic Weaving for Building Reconfigurable Software Systems

Dynamic Weaving for Building Reconfigurable Software Systems Dynamic Weaving for Building Reconfigurable Software Systems FAISAL AKKAWI Akkawi@cs.iit.edu Computer Science Dept. Illinois Institute of Technology Chicago, IL 60616 ATEF BADER abader@lucent.com Lucent

More information

Strategic Programming in Java

Strategic Programming in Java 1 Strategic Programming in Java Pierre-Etienne Moreau Antoine Reilles Software Transformation Systems Workshop October, 22 nd, 2006 2 Motivations Rule Based Programming is a nice idea! We interested in

More information

Analyzing effect of Aspect Oriented concepts in design and implementation of design patterns with case study of Observer Pattern

Analyzing effect of Aspect Oriented concepts in design and implementation of design patterns with case study of Observer Pattern Analyzing effect of Aspect Oriented concepts in design and implementation of design patterns with case study of Observer Pattern Deepali A. Bhanage 1, Sachin D. Babar 2 Sinhgad Institute of Technology,

More information

ISR 2014 Strategies. Hélène KIRCHNER Inria. August Topics, Objectives, Contents. Hélène KIRCHNER Inria ISR 2014 Strategies 1 / 48

ISR 2014 Strategies. Hélène KIRCHNER Inria. August Topics, Objectives, Contents. Hélène KIRCHNER Inria ISR 2014 Strategies 1 / 48 ISR 2014 Strategies Hélène KIRCHNER Inria August 2014 Topics, Objectives, Contents Hélène KIRCHNER Inria ISR 2014 Strategies 1 / 48 Computation, Deduction and Strategies Series of workshops since 1997

More information

Information systems modeling. Tomasz Kubik

Information systems modeling. Tomasz Kubik Information systems modeling Tomasz Kubik Aspect-oriented programming, AOP Systems are composed of several components, each responsible for a specific piece of functionality. But often these components

More information

UML Aspect Specification Using Role Models

UML Aspect Specification Using Role Models UML Aspect Specification Using Role Models Geri Georg Agilent Laboratories, Agilent Technologies, Fort Collins, USA geri_georg@agilent.com Robert France Department of Computer Science, Colorado State University

More information

CAP - Advanced Programming Concepts

CAP - Advanced Programming Concepts Coordinating unit: 270 - FIB - Barcelona School of Informatics Teaching unit: 723 - CS - Department of Computer Science Academic year: Degree: 2017 BACHELOR'S DEGREE IN INFORMATICS ENGINEERING (Syllabus

More information

Mobile and Context-aware Interactive Systems

Mobile and Context-aware Interactive Systems Mobile and Context-aware Interactive Systems Gaëlle Calvary Grenoble INP Laboratoire d Informatique de Grenoble (LIG) Core concepts Principles Terminology For more information, see Sara Bouchenak s M1

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

Exploring Possibilities for Symmetric Implementation of Aspect-Oriented Design Patterns in Scala

Exploring Possibilities for Symmetric Implementation of Aspect-Oriented Design Patterns in Scala Exploring Possibilities for Symmetric Implementation of Aspect-Oriented Design Patterns in Scala Pavol PIDANIČ Slovak University of Technology in Bratislava Faculty of Informatics and Information Technologies

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

Composition Graphs: a Foundation for Reasoning about Aspect-Oriented Composition

Composition Graphs: a Foundation for Reasoning about Aspect-Oriented Composition s: a Foundation for Reasoning about Aspect-Oriented - Position Paper - István Nagy Mehmet Aksit Lodewijk Bergmans TRESE Software Engineering group, Faculty of Computer Science, University of Twente P.O.

More information

c Copyright 2004, Vinicius Cardoso Garcia, Eduardo Kessler Piveta, Daniel Lucrédio, Alexandre Alvaro, Eduardo Santana de Almeida, Antonio Francisco

c Copyright 2004, Vinicius Cardoso Garcia, Eduardo Kessler Piveta, Daniel Lucrédio, Alexandre Alvaro, Eduardo Santana de Almeida, Antonio Francisco c Copyright 2004, Vinicius Cardoso Garcia, Eduardo Kessler Piveta, Daniel Lucrédio, Alexandre Alvaro, Eduardo Santana de Almeida, Antonio Francisco do Prado, Luiz Carlos Zancanella. Permission is granted

More information

HOW AND WHEN TO FLATTEN JAVA CLASSES?

HOW AND WHEN TO FLATTEN JAVA CLASSES? HOW AND WHEN TO FLATTEN JAVA CLASSES? Jehad Al Dallal Department of Information Science, P.O. Box 5969, Safat 13060, Kuwait ABSTRACT Improving modularity and reusability are two key objectives in object-oriented

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

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

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

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 College of Computer & Information Science Northeastern University, 360 Huntington Avenue Boston, Massachusetts 02115 USA chadwick@ccs.neu.edu

More information

Dynamic Weaving for Building Reconfigurable Software Systems

Dynamic Weaving for Building Reconfigurable Software Systems Dynamic Weaving for Building Reconfigurable Software Systems JAGDISH LAKHANI lakhjag@iitedu Computer Science Dept Illinois Institute of Technology Chicago, IL 60616 FAISAL AKKAWI akkawif@iitedu Computer

More information

A Framework for Enforcing Constrained RBAC Policies

A Framework for Enforcing Constrained RBAC Policies A Framework for Enforcing Constrained RBAC Policies Jason Crampton Information Security Group Royal Holloway, University of London jason.crampton@rhul.ac.uk Hemanth Khambhammettu Information Security Group

More information

Copyright IBM Corporation 2004.All rights reserved.

Copyright IBM Corporation 2004.All rights reserved. Copyright IBM Corporation 2004.All rights reserved. http://www-106.ibm.com/developerworks/rational/library/2782.html Search help A look at aspect-oriented programming Gary Pollice Worcester Polytechnic

More information

Aspect Refactoring Verifier

Aspect Refactoring Verifier Aspect Refactoring Verifier Charles Zhang and Julie Waterhouse Hans-Arno Jacobsen Centers for Advanced Studies Department of Electrical and IBM Toronto Lab Computer Engineering juliew@ca.ibm.com and Department

More information

SERG. Sort-based Refactoring of Crosscutting Concerns to Aspects

SERG. Sort-based Refactoring of Crosscutting Concerns to Aspects Delft University of Technology Software Engineering Research Group Technical Report Series Sort-based Refactoring of Crosscutting Concerns to Aspects Robin van der Rijst, Marius Marin, and Arie van Deursen

More information

Sort-based Refactoring of Crosscutting Concerns to Aspects

Sort-based Refactoring of Crosscutting Concerns to Aspects Sort-based Refactoring of Crosscutting Concerns to Aspects Robin van der Rijst Delft University of Technology rvdrijst@gmail.com Marius Marin Accenture Marius.Marin@accenture.com Arie van Deursen Delft

More information

CScheme in Traditional Concurrency Problems

CScheme in Traditional Concurrency Problems CScheme in Traditional Concurrency Problems Nathar Shah and Visham Cheerkoot Abstract CScheme, a concurrent programming paradigm based on scheme concept enables concurrency schemes to be constructed from

More information

Idioms for Building Software Frameworks in AspectJ

Idioms for Building Software Frameworks in AspectJ Idioms for Building Software Frameworks in AspectJ Stefan Hanenberg 1 and Arno Schmidmeier 2 1 Institute for Computer Science University of Essen, 45117 Essen, Germany shanenbe@cs.uni-essen.de 2 AspectSoft,

More information

Aspect Oriented Programming

Aspect Oriented Programming 1 Aspect Oriented Programming Programming Languages Seminar Presenter: Barış Aktemur University of Illinois 18 Feb. 2004 Mostly taken from Bedir Tekinerdogan s slides Outline Introduction Problems Terminology

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

Applying Aspect Oriented Programming on Security

Applying Aspect Oriented Programming on Security Original Article Applying Aspect Oriented Programming on Security Mohammad Khalid Pandit* 1, Azra Nazir 1 and Arutselvan M 2 1 Department of computer Science and engineering, National institute of technology

More information

Comparative Evaluation of Programming Paradigms: Separation of Concerns with Object-, Aspect-, and Context-Oriented Programming

Comparative Evaluation of Programming Paradigms: Separation of Concerns with Object-, Aspect-, and Context-Oriented Programming Comparative Evaluation of Programming Paradigms: Separation of Concerns with Object-, Aspect-, and Context-Oriented Programming Fumiya Kato, Kazunori Sakamoto, Hironori Washizaki, and Yoshiaki Fukazawa

More information

UniAspect: A Language-Independent Aspect-Oriented Programming Framework

UniAspect: A Language-Independent Aspect-Oriented Programming Framework UniAspect: A Language-Independent Aspect-Oriented Programming Framework Akira Ohashi Kazunori Sakamoto Tomoyuki Kamiya Reisha Humaira Satoshi Arai Hironori Washizaki Yoshiaki Fukazawa Waseda University

More information

Aspect-Oriented Programming and Aspect-J

Aspect-Oriented Programming and Aspect-J Aspect-Oriented Programming and Aspect-J TDDD05 Ola Leifer Most slides courtesy of Jens Gustafsson and Mikhail Chalabine Outline: Aspect-Oriented Programming New concepts introduced Crosscutting concern

More information

An Aspect-Based Approach to Modeling Security Concerns

An Aspect-Based Approach to Modeling Security Concerns An Aspect-Based Approach to Modeling Security Concerns Geri Georg Agilent Laboratories, Agilent Technologies, Fort Collins, USA geri_georg@agilent.com Robert France, Indrakshi Ray Department of Computer

More information

When Java technology burst onto the Internet scene in 1995,

When Java technology burst onto the Internet scene in 1995, MOBILE CODE SECURITY SECURE JAVA CLASS LOADING The class loading mechanism, LI GONG Sun Microsystems central to Java, plays a key role in JDK 1.2 by enabling When Java technology burst onto the Internet

More information

Technical presentation

Technical presentation TOWARDS A COGNITIVE COMPUTING PLATFORM SUPPORTING A UNIFIED APPROACH TOWARDS PRIVACY, SECURITY AND SAFETY (PSS) OF IOT SYSTEMS The VESSEDIA Project Technical presentation Armand PUCCETTI, CEA Rome, 11th

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

Simulation on Agent-based Onion Routing Network *

Simulation on Agent-based Onion Routing Network * National Research Council Canada Institute for Information Technology Conseil national de recherches Canada Institut de technologie de l'information Simulation on Agent-based Onion Routing Network * Song,

More information

Test-Case Generation for Runtime Analysis and Vice-Versa: Verification of Aircraft Separation Assurance

Test-Case Generation for Runtime Analysis and Vice-Versa: Verification of Aircraft Separation Assurance Test-Case Generation for Runtime Analysis and Vice-Versa: Verification of Aircraft Separation Assurance Marko Dimjašević University of Utah Dimitra Giannakopoulou NASA Ames Research Center ISSTA 2015,

More information

Aspect Oriented Programming with AspectJ. Ted Leung Sauria Associates, LLC

Aspect Oriented Programming with AspectJ. Ted Leung Sauria Associates, LLC Aspect Oriented Programming with AspectJ Ted Leung Sauria Associates, LLC twl@sauria.com Overview Why do we need AOP? What is AOP AspectJ Why do we need AOP? Modular designs are not cut and dried Responsibilities

More information

On Meaning Preservation of a Calculus of Records

On Meaning Preservation of a Calculus of Records On Meaning Preservation of a Calculus of Records Emily Christiansen and Elena Machkasova Computer Science Discipline University of Minnesota, Morris Morris, MN 56267 chri1101, elenam@morris.umn.edu Abstract

More information

Implementing Producers/Consumers Problem Using Aspect-Oriented Framework

Implementing Producers/Consumers Problem Using Aspect-Oriented Framework Implementing Producers/Consumers Problem Using Aspect-Oriented Framework 1 Computer Science Department School of Science Bangkok University Bangkok, Thailand netipan@iit.edu Paniti Netinant 1, 2 and Tzilla

More information

Modularizing Web Services Management with AOP

Modularizing Web Services Management with AOP Modularizing Web Services Management with AOP María Agustina Cibrán, Bart Verheecke { Maria.Cibran, Bart.Verheecke@vub.ac.be System and Software Engineering Lab Vrije Universiteit Brussel 1. Introduction

More information

A Unit Testing Framework for Aspects without Weaving

A Unit Testing Framework for Aspects without Weaving A Unit Testing Framework for Aspects without Weaving Yudai Yamazaki l01104@sic.shibaura-it.ac.jp Kouhei Sakurai sakurai@komiya.ise.shibaura-it.ac.jp Saeko Matsuura matsuura@se.shibaura-it.ac.jp Hidehiko

More information

InsECTJ: A Generic Instrumentation Framework for Collecting Dynamic Information within Eclipse

InsECTJ: A Generic Instrumentation Framework for Collecting Dynamic Information within Eclipse InsECTJ: A Generic Instrumentation Framework for Collecting Dynamic Information within Eclipse Arjan Seesing and Alessandro Orso College of Computing Georgia Institute of Technology a.c.seesing@ewi.tudelft.nl,

More information

Aspect Weaving DyMAC middleware. by Tonje Klykken, INF5360 May 6th 2008

Aspect Weaving DyMAC middleware. by Tonje Klykken, INF5360 May 6th 2008 Aspect Weaving DyMAC middleware by Tonje Klykken, INF5360 May 6th 2008 Agenda Brief AOP/AOSD motivation and concepts Problem description and refinement DyMAC component model DyMAC architecture model Analysis

More information

Information Hiding and Aspect-Oriented Modeling

Information Hiding and Aspect-Oriented Modeling Information Hiding and Aspect-Oriented Modeling Wisam Al Abed and Jörg Kienzle School of Computer Science, McGill University Montreal, QC H3A2A7, Canada Wisam.Alabed@mail.mcgill.ca, Joerg.Kienzle@mcgill.ca

More information

Efficient Separate Compilation of Object-Oriented Languages

Efficient Separate Compilation of Object-Oriented Languages Efficient Separate Compilation of Object-Oriented Languages Jean Privat, Floréal Morandat, and Roland Ducournau LIRMM Université Montpellier II CNRS 161 rue Ada 34392 Montpellier cedex 5, France {privat,morandat,ducour}@lirmm.fr

More information

Tom: Piggybacking Rewriting on Java

Tom: Piggybacking Rewriting on Java Author manuscript, published in "Conference on Rewriting Techniques and Applications - RTA'07, Paris/France : (2007)" Tom: Piggybacking Rewriting on Java Emilie Balland 1, Paul Brauner 1, Radu Kopetz 2,

More information

XFindBugs: extended FindBugs for AspectJ

XFindBugs: extended FindBugs for AspectJ XFindBugs: extended FindBugs for AspectJ Haihao Shen, Sai Zhang, Jianjun Zhao, Jianhong Fang, Shiyuan Yao Software Theory and Practice Group (STAP) Shanghai Jiao Tong University, China A code Is there

More information

ELAN. A rule-based programming language. Hélène Kirchner and Pierre-Etienne Moreau LORIA CNRS INRIA Nancy, France

ELAN. A rule-based programming language. Hélène Kirchner and Pierre-Etienne Moreau LORIA CNRS INRIA Nancy, France ELAN A rule-based programming language Hélène Kirchner and Pierre-Etienne Moreau LORIA CNRS INRIA Nancy, France Introduction Overview General presentation ELAN: simple part (computation) ELAN: advanced

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

Extracting the Range of cps from Affine Typing

Extracting the Range of cps from Affine Typing Extracting the Range of cps from Affine Typing Extended Abstract Josh Berdine, Peter W. O Hearn Queen Mary, University of London {berdine, ohearn}@dcs.qmul.ac.uk Hayo Thielecke The University of Birmingham

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

CatBAC: A Generic Framework for Designing and Validating Hybrid Access Control Models

CatBAC: A Generic Framework for Designing and Validating Hybrid Access Control Models CatBAC: A Generic Framework for Designing and Validating Hybrid Access Control Models Bernard Stepien Hemanth Khambhammettu Kamel Adi Luigi Logrippo Department of Computer Science and Engineering, University

More information

A Flexible Architecture for Enforcing and Composing Policies in a Service-Oriented Environment

A Flexible Architecture for Enforcing and Composing Policies in a Service-Oriented Environment A Flexible Architecture for Enforcing and Composing Policies in a Service-Oriented Environment Tom Goovaerts, Bart De Win, and Wouter Joosen DistriNet Research Group, Katholieke Universiteit Leuven Celestijnenlaan

More information

Symbolic Evaluation of Sums for Parallelising Compilers

Symbolic Evaluation of Sums for Parallelising Compilers Symbolic Evaluation of Sums for Parallelising Compilers Rizos Sakellariou Department of Computer Science University of Manchester Oxford Road Manchester M13 9PL United Kingdom e-mail: rizos@csmanacuk Keywords:

More information

SCALA AND ASPECTJ. Approaching Modularizing of Crosscutting. Ramnivas Laddad. Concerns. ramnivas

SCALA AND ASPECTJ. Approaching Modularizing of Crosscutting. Ramnivas Laddad. Concerns. ramnivas SCALA AND ASPECTJ Approaching Modularizing of Crosscutting Concerns Ramnivas Laddad ramnivas ramnivas!com @ramnivas Copyright Ramnivas Laddad. All rights reserved. @ramnivas Spring framework committer

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

School of Informatics, University of Edinburgh

School of Informatics, University of Edinburgh CS1Bh Practical 1 Words and Sentences This is an individual practical exercise which requires you to submit some Java programs and some text files for assessment. A system which measures software similarity

More information

Jay Ligatti and Srikar Reddy University of South Florida

Jay Ligatti and Srikar Reddy University of South Florida Jay Ligatti and Srikar Reddy University of South Florida Also known as runtime/security/program monitors Ubiquitous Operating systems (e.g., file access control) Virtual machines (e.g., stack inspection)

More information

Stratego: A Language for Program Transformation Based on Rewriting Strategies

Stratego: A Language for Program Transformation Based on Rewriting Strategies Stratego: A Language for Program Transformation Based on Rewriting Strategies System Description of Stratego 0.5 Eelco Visser Institute of Information and Computing Sciences, Universiteit Utrecht, P.O.

More information

UML4COP: UML-based DSML for Context-Aware Systems

UML4COP: UML-based DSML for Context-Aware Systems UML4COP: UML-based DSML for Context-Aware Systems Naoyasu Ubayashi Kyushu University ubayashi@acm.org Yasutaka Kamei Kyushu University kamei@ait.kyushu-u.ac.jp Abstract Context-awareness plays an important

More information

Homework 5: Aspect-Oriented Programming and AspectJ

Homework 5: Aspect-Oriented Programming and AspectJ Com S 541 Programming Languages 1 November 30, 2005 Homework 5: Aspect-Oriented Programming and AspectJ Due: Tuesday, December 6, 2005. This homework should all be done individually. Its purpose is to

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

Black-Box Program Specialization

Black-Box Program Specialization Published in Technical Report 17/99, Department of Software Engineering and Computer Science, University of Karlskrona/Ronneby: Proceedings of WCOP 99 Black-Box Program Specialization Ulrik Pagh Schultz

More information

ASPECTUAL PATTERNS FOR WEB SERVICES ADAPTATION

ASPECTUAL PATTERNS FOR WEB SERVICES ADAPTATION ASPECTUAL PATTERNS FOR WEB SERVICES ADAPTATION Najme Abbasi Tehrani and Afshin Salajegheh Department of Computer Engineering, South Tehran Branch, Islamic Azad University, Tehran, Iran ABSTRACT The security

More information

Concurrent Programming Constructs and First-Class Logic Engines

Concurrent Programming Constructs and First-Class Logic Engines Concurrent Programming Constructs and First-Class Logic Engines Paul Tarau University of North Texas tarau@cs.unt.edu Multi-threading has been adopted in today s Prolog implementations as it became widely

More information

APPLYING OBJECT-ORIENTATION AND ASPECT-ORIENTATION IN TEACHING DOMAIN-SPECIFIC LANGUAGE IMPLEMENTATION *

APPLYING OBJECT-ORIENTATION AND ASPECT-ORIENTATION IN TEACHING DOMAIN-SPECIFIC LANGUAGE IMPLEMENTATION * APPLYING OBJECT-ORIENTATION AND ASPECT-ORIENTATION IN TEACHING DOMAIN-SPECIFIC LANGUAGE IMPLEMENTATION * Xiaoqing Wu, Barrett Bryant and Jeff Gray Department of Computer and Information Sciences The University

More information