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.

Slides:



Advertisements
Similar presentations
1 Events, Actions, and Compositions Somayeh Malakuti, Christoph Bockisch, Mehmet Aksit Software Engineering Group
Advertisements

Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
1 Shyness in Programming Karl Lieberherr Demeter Research Group Northeastern University Boston.
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.
1 Aspect Oriented Programming Programming Languages Seminar Presenter: Barış Aktemur University of Illinois 18 Feb Mostly taken from Bedir Tekinerdogan’s.
ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan.
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.
Software Engineering, COMP201 Slide 1 Protocol Engineering Protocol Specification using CFSM model Lecture 30.
More on AspectJ. aspect MoveTracking { private static boolean _flag = false; public static boolean testAndClear() { boolean result = _flag; _flag = false;
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.
Demeter Interfaces: AP without Surprises Prof. Karl Lieberherr and Therapon Skotiniotis, Jeffrey Palm.
Master’s Thesis Defense: Aspectual Concepts John J. Sung.
Integrating Independent Components with On-Demand Remodularization based on OOPSLA 2002 paper by Mira Mezini Klaus Ostermann Prepared by Karl Lieberherr.
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.
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2005 Architecture: Component and Deployment Diagrams Patrick Bailey Keith Vander Linden Calvin College.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
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.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 02. Objects,
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.
Chapter 16 Applying UML and Patterns Craig Larman
Aspect Oriented Programming An Introduction based on se-radio.net episode th October 2009 Aspect Oriented Programming - Nils Schmidt.
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.
AOP Foundations Doug Orleans Karl Lieberherr. What we did earlier AOP languages have the following main elements: –a join point model (JPM) wrt base PL.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
What is Object-Oriented?  Organization of software as a collection of discreet objects that incorporate both data structure and behavior.
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.
Pattern Language for AP1 Pattern Language for Adaptive Programming (AP) Karl Lieberherr Northeastern University.
Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.
Inter-Type Declarations in AspectJ Awais Rashid Steffen Zschaler © Awais Rashid, Steffen Zschaler 2009.
Course Progress Lecture 1 –Java data binding: Basket example: UML class diagram -> class dictionary without tokens-> language design -> class dictionary.
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.
Checking LoD in AspectJ Show the idea, not the details. How can we precisely express it in a programming language?
Demeter Interfaces: AP without Surprises Prof. Karl Lieberherr and Therapon Skotiniotis, Jeffrey Palm.
Translating Traversals to AspectJ. Outline Motivation Demeter Process for Traversals AspectJ Translation Process.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Towards an Aspect-oriented Language Module: Aspects for Petri Nets Tim Molderez, Bart Meyers, Dirk Janssens and Hans Vangheluwe Ansymo Antwerp Systems.
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.
Class Diagrams. Terms and Concepts A class diagram is a diagram that shows a set of classes, interfaces, and collaborations and their relationships.
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.
University of British Columbia Software Practices Lab Uniform Support for Modeling Crosscutting Structure Maria Tkatchenko Gregor Kiczales Work supported.
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.
UML (Unified Modeling Language)
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.
Crosscutting Capabilities for Java and AspectJ through DJ
Unified Modeling Language
Discussion with Gregor Kiczales at UBC
Demeter Aspects Who We Are Aspectual Collaborations
Interactions.
ADAPTIVE PROGRAMMING Sezen ERDEM December 2005.
Unified Modeling Language
Structuring Adaptive Applications using AspectJ and AOM
Better Separation of Crosscutting Concerns with Aspectual Components
AOSD and the Law of Demeter: Shyness in Programming
Options for Demeter intergration into AspectJ
Aspects at the Design Level
Presentation transcript:

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 exists. An ontological commitment is a commitment to an existence claim for certain entities. Slides 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.

UBC software modularity group 1/14/02 UCSD2 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 in AspectJ –signatures (plus …) –means of specifying semantics at join points in AspectJ –advice –define members

UBC software modularity group 1/14/02 UCSD3 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 in AspectJ –pointcuts –member signatures (plus …) –means of specifying semantics at join points in AspectJ –advice –define members dynamic JPM static JPM

UBC software modularity group 1/14/02 UCSD4 range of AOP languages means of … join points JPMjoin pointsidentifyingspecifying semantics at AspectJ dynamic JPM points in execution call, get, set… signatures w/ wildcards & other properties of JPs advice static JPMclass memberssignaturesadd members Composition Filtersmessage sends & receptions signature & property based object queries wrappers declarative (filters) imperative (advice) Hyper/Jmemberssignaturesadd, compose (and remove) members Demeter traversalswhen traversal reaches object or edge class & edge names define visit method

UBC software modularity group 1/14/02 UCSD5 range of AOP languages means of … join points add, compose (and remove) members signaturesmembersHyper/J add memberssignaturesclass 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

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

UBC software modularity group 1/14/02 UCSD7 range of AOP languages means of … join points add memberssignaturesclass 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

UBC software modularity group 1/14/02 UCSD8 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.

UBC software modularity group 1/14/02 UCSD9 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.

UBC software modularity group 1/14/02 UCSD10 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

UBC software modularity group 1/14/02 UCSD11 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.

UBC software modularity group 1/14/02 UCSD12 foo –dynamic JPM (~ AspectJ) –what happens in pattern bar AO design in UML Composition Patterns –static JPM (~ Hyper/J) –binds pattern to base code UML class & interaction diagrams already crosscut –by-class vs. by-interaction organizations [Clarke, Walker]