Discussion with Gregor Kiczales at UBC

Slides:



Advertisements
Similar presentations
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
Advertisements

1 JAC : Aspect Oriented Programming in Java An article review by Yuval Nir and Limor Lahiani.
Explaining DJ with AOP. DJ ClassGraph.traverse (this,whereToGo,whatToDo) Intertype declaration Advice.
University of British Columbia Software Practices Lab Fluid AOP Join Point Models Terry Hon Gregor Kiczales.
University of British Columbia Software Practices Lab 2005 CASCON A Fluid AOP Editor Terry Hon Gregor Kiczales.
An Untyped Calculus of Aspect- Oriented Programs Radha Jagadeesan Alan Jeffrey James Riely DEPAUL UNIVERSITY, CHICAGO.
University of British Columbia Software Practices Lab CAS Seminar 06 Fluid AJ - A Simple Fluid AOP Tool Terry Hon Gregor Kiczales.
Institute For Software Integrated Systems Vanderbilt University Applications of Model Integrated Computing to The Synchronous Language Signal Ethan Jackson.
More on AspectJ. aspect MoveTracking { private static boolean _flag = false; public static boolean testAndClear() { boolean result = _flag; _flag = false;
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
2.2 A Simple Syntax-Directed Translator Syntax-Directed Translation 2.4 Parsing 2.5 A Translator for Simple Expressions 2.6 Lexical Analysis.
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
Aspect Oriented Programming (AOP) in.NET Brent Krueger 12/20/13.
Master’s Thesis Defense: Aspectual Concepts John J. Sung.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
What is “model transformation”? Distinction between source and target Source may be same as target May be multiple sources, or targets Reaching a fixed.
1 Metamodel Access Protocols for Extensible Aspect-Oriented Modeling Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Shinji Sano(Kyushu Institute.
Expression evaluation E : S | C. S = int. C = Op E E. Op : A | M. A = “+”. M = “*”.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
Slides for Gregor Kiczales Two versions –short version: Crosscutting capabilities for Java and AspectJ through DJ (4 viewgraphs only) –long version: Controlling.
A Meta-Level Specification and Profile for AspectJ in UML Joerg Evermann School of Information Management Victoria University of Wellington.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
Not only mark-up languages! There are other many other grammar formalisms and tools than XML. Some of them standardized (ASN). Even XML does not always.
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
Master’s Thesis Defense: Aspectual Concepts John J. Sung.
John J. Sung TA Consulting. Motivation for TraversalJ KL Enterprises identified AOP Enter into the AOP market early Add value by adding traversals to.
Features of AOP languages AOP languages have the following main elements: –a join point model (JPM) wrt base PL –a specification language for expressing.
IDENTIFYING SEMANTIC DIFFERENCES IN ASPECTJ PROGRAMS Martin Görg and Jianjun Zhao Computer Science Department, Shanghai Jiao Tong University.
Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.
Inter-Type Declarations in AspectJ Awais Rashid Steffen Zschaler © Awais Rashid, Steffen Zschaler 2009.
Topics for exam in AOSD Basic concepts: tangling, scattering, joinpoint, advice, cross-cutting, weaving AspectJ: syntax, pointcut notations, around, proceed,
Demeter Aspects We study techniques for the emerging area of Aspect-Oriented Software Development and focus on the following areas:  Aspectual Collaborations.
Translating Traversals to AspectJ. Outline Motivation Demeter Process for Traversals AspectJ Translation Process.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
Towards an Aspect-oriented Language Module: Aspects for Petri Nets Tim Molderez, Bart Meyers, Dirk Janssens and Hans Vangheluwe Ansymo Antwerp Systems.
Chapter 5 Classes and Methods II Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E.
AOP/cross-cutting What is an aspect?. An aspect is a modular unit that cross-cuts other modular units. What means cross-cutting? Apply AOP to AOP. Tease.
R R R A Brief Introduction to Aspect-Oriented Programming.
AOP/cross-cutting What is an aspect?. An aspect is a modular unit that cross-cuts other modular units. What means cross-cutting? Apply AOP to AOP. Tease.
UBC software modularity group 1/14/02 UCSD1 Discussion with Kiczales at UBC Ontology of AOP Ontology is the study of what there is, an inventory of what.
University of British Columbia Software Practices Lab Uniform Support for Modeling Crosscutting Structure Maria Tkatchenko Gregor Kiczales Work supported.
COM1205 TraversalJ Project* Pengcheng Wu Feb.25,2003.
1 An AOP Implementation Framework for Extending Join Point Models Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Hidehiko Masuhara(University.
AO Mechanisms in Demeter1 Discussion with Gregor Kiczales at UBC Ontology of AOP Ontology is the study of what there is, an inventory of what exists. An.
Aspect-oriented Code Generation Approaches Abid Mehmood & Dayang N. A. Jawawi Department of Software Engineering Faculty of Computer Science and Information.
Features of AOP languages AOP languages have the following main elements: –a join point model (JPM) wrt base PL –a specification language for expressing.
Defects of UML Yang Yichuan. For the Presentation Something you know Instead of lots of new stuff. Cases Instead of Concepts. Methodology instead of the.
Crosscutting Capabilities for Java and AspectJ through DJ
SysML 2.0 Requirements for Visualization
A Simple Syntax-Directed Translator
Unified Modeling Language
Demeter Aspects Who We Are Aspectual Collaborations
Presentation by Julie Betlach 7/02/2009
Object Oriented Analysis and Design
ADAPTIVE PROGRAMMING Sezen ERDEM December 2005.
Unified Modeling Language
Third lecture Review Visitor pattern DemeterJ 12/25/2018 SD.
JAsCo an Aspect-Oriented approach tailored for
Structuring Adaptive Applications using AspectJ and AOM
Better Separation of Crosscutting Concerns with Aspectual Components
Third lecture Review Visitor pattern DemeterJ 2/17/2019 SD.
Aspect-oriented programming
Context Objects Evolution of object behavior Behavioral patterns
Lecture 8 Evolution of object behavior Behavioral patterns
AOSD and the Law of Demeter: Shyness in Programming
Options for Demeter intergration into AspectJ
Aspects at the Design Level
AspectAda Aspect-Oriented Programming for Ada95
Presentation transcript:

Discussion with Gregor Kiczales at UBC Ontology of AOP Ontology is the study of what there is, an inventory of what exists. An ontological commitment is a commitment to an existence claim for certain entities. Slides 2 - 5 and the last one are Gregor’s An ontology is, in simple terms, a collection of concepts with relations among them plus constraints on the relations. AO Mechanisms in Demeter

basis of crosscutting a join point model (JPM) has 3 critical elements what are the join points in AspectJ points in runtime call graps members means of identifying join points signatures (plus …) means of specifying semantics at join points advice define members AO Mechanisms in Demeter

basis of crosscutting a join point model (JPM) has 3 critical elements what are the join points in AspectJ points in runtime call graph class members means of identifying join points pointcuts member signatures (plus …) means of specifying semantics at join points advice define members dynamic JPM static JPM AO Mechanisms in Demeter

range of AOP languages means of … join points JPM join points identifying specifying semantics at AspectJ dynamic JPM points in execution call, get, set… signatures w/ wildcards & other properties of JPs advice static JPM class members signatures add members Composition Filters message sends & receptions signature & property based object queries wrappers declarative (filters) imperative (advice) Hyper/J members add, compose (and remove) members Demeter traversals when traversal reaches object or edge class & edge names define visit method AO Mechanisms in Demeter

See next slide for changes to Demeter range of AOP languages means of … join points add, compose (and remove) members signatures members Hyper/J add members class members static JPM Demeter traversals Composition Filters AspectJ dynamic JPM JPM types message sends & receptions points in execution call, get, set… join points succinct traversal specs signature & property based object queries signatures w/ wildcards & other properties of JPs identifying generate traversals wrappers declarative (filters) imperative (advice) advice specifying semantics at See next slide for changes to Demeter AO Mechanisms in Demeter

range of AOP languages means of … join points JPM join points identifying specifying semantics at AspectJ dynamic JPM points in execution call, get, set… signatures w/ wildcards & other properties of JPs advice static JPM class members signatures add members DemeterJ, Demeter/C++ dynamic JPM static JPM 1 static JPM 2 static JPM 3 when traversal reaches object or edge visitor method signatures traversal spec. s class graph g class names class graph visitor method bodies s + g (result = traversal implementation) class graph with tokens=grammar (result = parsing and printing implementation) AO Mechanisms in Demeter

range of AOP languages means of … join points add members signatures class members static JPM DJ dynamic JPM 1 dynamic JPM 2 dynamic JPM 3 AspectJ dynamic JPM JPM when traversal reaches object or edge (method traverse) when traversal reaches object (methods fetch, gather, asList) nodes in object graphs points in execution call, get, set… join points visitor method signatures source and targets of traversal trav. spec. s class graph g object graph o signatures w/ wildcards & other properties of JPs identifying visitor method bodies method name (fetch, gather, asList) s+g+o(result = traversal implementation = edges to traverse at nodes in object graph) advice specifying semantics at AO Mechanisms in Demeter

Composing join point models Traversal Spec JPM: In Demeter we use traversal specifications and the class graph to define a traversal implementation (either static or dynamic) Visitor JPM: The result of Traversal Spec. JPM is used to define a second JPM: The traversal implementation defines nodes and edge visits. Visitor signatures define the nodes and edges where additional advice is needed: they are the means of identifying join points. The means of specifying semantics at join points are the visitor bodies. AO Mechanisms in Demeter

DJ: dynamic JPM 3 The join points are nodes in object graphs. They are not dynamic call graph join points nor class members! The means of identifying the join points for a given object graph o are a strategy s and the class graph g. o must conform to g. The means of specifying the semantics at the join points are again s and g. See paper with Mitch Wand for the formal details behind this JPM. AO Mechanisms in Demeter

DemeterJ: static JPM 1 The means of identifying the join points and of specifying the semantics at the join points are the same. The reason is that s+g both select the classes that will get traversal semantics determine the details of the traversal semantics AO Mechanisms in Demeter

DemeterJ: static JPM 3 The means of identifying the join points (class members) is done by the class graph. When we add tokens to the class graph we get a grammar that contains instructions for parsing and printing behavior. A grammar is an aspect (external representation aspect): the adhoc implementation cuts across all classes. AO Mechanisms in Demeter

AO design in UML [Clarke, Walker] Composition Patterns static JPM (~ Hyper/J) binds pattern to base code UML class & interaction diagrams already crosscut by-class vs. by-interaction organizations foo dynamic JPM (~ AspectJ) what happens in pattern bar AO Mechanisms in Demeter

Masuhara/Kiczales Modeling Framework for AO Mechanisms A and B: languages X: result domain of weaving process X[JP]: join points in X A[ID], B[ID]: identify join points in X A[Eff], B[Eff]: effecting semantics at jps META: parameterize weaving process AO Mechanisms in Demeter

Masuhara/Kiczales Modeling Framework for AO Mechanisms X X[JP] A A[ID] A[Eff] B B[ID] B[Eff] META AO Mechanisms in Demeter

Demeter static JPM 1: special case of Open Classes X Combined program X[JP] c declarations A c declarations including the class graph A[ID] Method signatures A[Eff] B Traversal specifications B[ID] c names B[Eff] META Traversal semantics: rules for translating traversal specifications to methods Adds traversal methods to a set of classes AO Mechanisms in Demeter

Demeter static JPM 2: Open Classes See paper. AO Mechanisms in Demeter

Demeter static JPM 3: special case of Open Classes X Combined program X[JP] c declarations A c declarations including the class graph A[ID] Method signatures A[Eff] B Class dictionary (class graph enhanced with tokens defining the syntax addition) B[ID] c names B[Eff] META rules for translating class dictionary to parsing methods Adds parsing methods to a set of classes AO Mechanisms in Demeter

Demeter dynamic JPM 1: special case of Pointcuts and Advice X Traversal execution X[JP] Arrival at each object and has-a edge A Traversal methods A[ID] Method signatures A[Eff] Execute traversal method body B Visitor method declarations (serves as advice) B[ID] Visitor method signatures (serves as pointcut) B[Eff] Execute visitor method bodies META none Adds advice to traversal methods AO Mechanisms in Demeter

Demeter dynamic JPM 2: special case of TRAV For methods fetch, gather and asList: special advice AO Mechanisms in Demeter

Demeter dynamic JPM 3 X X[JP] A A[ID] A[Eff] B B[ID] B[Eff] META Object graphs X[JP] Nodes in object graphs A Class graph A[ID] Class names A[Eff] B Traversal specification B[ID] B[Eff] Edges to traverse at node in object graph META Rules for traversal order: depth-first, breadth-first, left-to-right, etc. AO Mechanisms in Demeter

Mixes two models together Demeter dynamic JPM 4: DJ with Functional Visitor X Traversal execution with runtime control (Subtraversal.apply(..)) X[JP] Arrival at each object (Functional Visitor only available to nodes) A Regular Java Program (class/fields declarations) A[ID] Class/fields signatures A[Eff] Provide reachability (my understanding is to construct object graph conforming to the class graph) B Traversal specification and visitor method declarations (including the default one: combine(..)) B[ID] Visitor method signatures (or the built-in semantics, for the combine(..)) B[Eff] Execute the visitor methods and compute and combine the values and provide the runtime control over the traversal(subset of the traversal graph computed from the traversal specification) META Mixes two models together

Demeter dynamic JPM 4: DJ with Functional Visitor X Traversal execution with runtime control (Subtraversal.apply(..)) X[JP] Arrival at each object (Functional Visitor only available to nodes) A Regular Java Program defining traversals (class/fields declarations) A[ID] Method signatures A[Eff] Execute traversal method body B Visitor method declarations (including the default method: combine(..)) B[ID] Visitor method signatures (or the built-in semantics, for the combine(..)) B[Eff] Execute the visitor methods and compute and combine the values and provide the runtime control over the traversal META Taken apart

Conclusions The Modelling Framework by Masuhara/Kiczales nicely captures the different AO mechanisms worked on by the Demeter team. AO Mechanisms in Demeter