University of British Columbia Software Practices Lab Fluid AOP Join Point Models Terry Hon Gregor Kiczales.

Slides:



Advertisements
Similar presentations
The Problem Decomposition of programs in terms of classes and in terms of crosscutting concerns are both useful, but languages based on source files allow.
Advertisements

University of British Columbia Software Practices Lab Experiences Building Research Tools Andrew Eisenberg & Terry Hon.
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
ASTA Aspect Software Testing Assistant Juha Gustafsson, Juha Taina, Jukka Viljamaa University of Helsinki.
1 An Aspect-Aware Outline Viewer Michihiro Horie and Shigeru Chiba Tokyo Institute of Technology, Japan.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Modularization.
Secure Systems Research Group - FAU Aspect Oriented Programming Carlos Oviedo Secure Systems Research Group.
Overview of AspectJ Aspect Oriented Software Development Seminar Technion presented by Oren Mishali.
Aspect-Oriented Programming In Eclipse ® Aspect-Oriented Programming in Eclipse with AspectJ Dr Helen Hawkins and Sian January.
1 The JQuery Tool A Generic Query-Based Code browser for Eclipse Project leaders: Kris De Volder, Gregor Kiczales Students: Doug Janzen, Rajeswari Rajagopalan,
Java.sun.com/javaone/sf | 2004 JavaOne SM Conference | Session BUS JavaOne 2004 What is AOP? Gregor Kiczales AspectMentor.com and University of.
359C 10/1/05 Eric Wohlstadter Introductions –Name –Degree objective/Year –Research Area (or interests) Syllabus Aspect-Oriented Programming –AspectJ –AspectC.
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.
Aspect-Oriented Programming: An Overview Brandon Wirick Feb
University of British Columbia Software Practices Lab CAS Seminar 06 Fluid AJ - A Simple Fluid AOP Tool Terry Hon Gregor Kiczales.
Aspect Oriented Programming Written by Michael Beder.
More on AspectJ. aspect MoveTracking { private static boolean _flag = false; public static boolean testAndClear() { boolean result = _flag; _flag = false;
Introduction to Aspect- Oriented Programming CS 3360 Gregor Kiczales, et. al. Getting started with AspectJ, CACM, 44(10):59-65, October Fall 2012.
Outline Introduction Problem Statement Object-Oriented Design Aspect-Oriented Design Conclusion Demo.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
1 Metamodel Access Protocols for Extensible Aspect-Oriented Modeling Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Shinji Sano(Kyushu Institute.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 1.
MOTOROLA and the Stylized M Logo are registered in the US Patent & Trademark Office. All other product or service names are the property of their respective.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton February 28th, 2003 Advisor: David G. Hannay Client:
1 A Parameterized Interpreter for Modeling Different AOP Mechanisms Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Genki Moriyama(Kyushu Institute.
Kiczales and Mezini - FOAL AOP and Modular Reasoning [ICSE05] Start with first-principles definition of modularity and modular reasoning –localization,
A Meta-Level Specification and Profile for AspectJ in UML Joerg Evermann School of Information Management Victoria University of Wellington.
Methodology: The AOP Refactoring Process Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton Advisor:
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
CCC: An Aspect-Oriented Intermediate Language on.Net Platform Yingfei Xiong and Feng Wan University of Electronic Science and Technology of China, China.
Aspect Oriented Programming An Introduction based on se-radio.net episode th October 2009 Aspect Oriented Programming - Nils Schmidt.
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.
Region Pointcut for AspectJ Shumpei Akai Shigeru Chiba Muga Nishizawa.
Inter-Type Declarations in AspectJ Awais Rashid Steffen Zschaler © Awais Rashid, Steffen Zschaler 2009.
AspectJ – AOP for Java Tom Janofsky. Instructor at Penn State Abington Consultant with Chariot Solutions JUG Member.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
1 Contract-based Verification for Aspect-oriented Refactoring Naoyasu Ubayashi(Kyushu Institute of Technology) Jinji Piao(Kyushu Institute of Technology)
Aspect Oriented Development Alex Beatty.  Purpose  Cross-cutting Concerns  Join Points, Pointcuts, and Advices  Weaving  Invasive vs. Non-Invasive.
Alloy-based Lightweight Verification for Aspect-oriented Architecture Naoyasu Ubayashi(Kyushu Institute of Technology) Yuki Sato(Kyushu Institute of Technology)
OOP in C++ CS 124. Program Structure C++ Program: collection of files Source (.cpp) files be compiled separately to be linked into an executable Files.
Aspect Oriented Programming in.NET with CodeBricks Antonio Cisternino Academic Days Milan, 2004 Università di Pisa Supported by Microsoft Research grant.
Comparison of Different AOP Approaches Presented by: Xiaojing Wang.
aspectj tools new and noteworthy Mik Kersten University of British Columbia Adrian Colyer IBM Hursley OOPSLA, October
AOSD'04, Lancaster, UK 1 Remote Pointcut - A Language Construct for Distributed AOP Muga Nishizawa (Tokyo Tech) Shigeru Chiba (Tokyo Tech) Michiaki Tatsubori.
R R R A Brief Introduction to Aspect-Oriented Programming.
Introduction to Aspect- Oriented Programming CS 3360 Gregor Kiczales, et. al. Getting started with AspectJ, CACM, 44(10):59-65, October Spring 2012.
CSC450 Software Engineering Devon M. Simmonds University of North Carolina, Wilmington 1.
AspectScope: An Outline Viewer for AspectJ Programs Michihiro Horie, Shigeru Chiba Tokyo Institute of Technology, Japan.
 Static  Example for Static Field  Example for Static Method  Math class methods  Casting  Scope of Declaration  Method Overloading  Constructor.
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.
AOP with AspectJ Awais Rashid, Steffen Zschaler © Awais Rashid, Steffen Zschaler 2009.
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.
1 Aspectual Caml an Aspect-Oriented Functional Language Hideaki Tatsuzawa Hidehiko Masuhara Akinori Yonezawa University of Tokyo.
PPL 2004, Gamagori, AICHI1 Remote Pointcut - A Language Construct for Distributed AOP Muga Nishizawa (Tokyo Tech, Japan) Shigeru Chiba (Tokyo Tech, Japan)
 Is a programming paradigm  Extends OOP  Enables modularization of cross cutting concerns.
Features of AOP languages AOP languages have the following main elements: –a join point model (JPM) wrt base PL –a specification language for expressing.
Software Engineering Lecture 7
An Interface Mechanism for Encapsulating Weaving in Class-based AOP
Aspect-Oriented Generation of the API Documentation for AspectJ
Aspect-Oriented Programming with the Eclipse AspectJ plug-in
Discussion with Gregor Kiczales at UBC
Demeter Aspects Who We Are Aspectual Collaborations
Aspect-Oriented Design and Patterns
Structuring Adaptive Applications using AspectJ and AOM
Presentation transcript:

University of British Columbia Software Practices Lab Fluid AOP Join Point Models Terry Hon Gregor Kiczales

Fluid AOP - Terry Hon & Gregor Kiczales 2 Fluid AOP Modularization of crosscutting concerns in IDE Aspect is alternative view –modularizes crosscutting concern –can be generated each time it is needed –or can be stored as a metaobject

Fluid AOP - Terry Hon & Gregor Kiczales 3 Fluid vs. Linguistic AOP Linguistic AOP –Aspects are programming language constructs –Defined semantics: only execution is woven Fluid AOP –Aspects are IDE constructs It may look like programming language constructs –Defined semantics: IDE view is explicitly woven

Fluid AOP - Terry Hon & Gregor Kiczales 4 Experiments in Fluid AOP JPMs 2 Fluid AOP Join Point Models –What are join points? –How are they identified? –How is crosscutting combined? Using Eclipse Edit time weaving

Fluid AOP - Terry Hon & Gregor Kiczales 5 1 st JPM – Block Linking Join points –Code fragments in java files Method Constructor Field Means of identifying join points –Pointcuts: method, field or constructor signatures, type patterns Means of combining crosscutting –Identical blocks –All linked, any block can be edited

Fluid AOP - Terry Hon & Gregor Kiczales 6 Display Updating Aspect Canonical AspectJ example public aspect DisplayUpdating pointcut change: execution(public void Shape+.set*(*)) after returning: change { } Note has no advice/pointcut parameters

Fluid AOP - Terry Hon & Gregor Kiczales 7 Intertype Declarations Want to add a Display field for each Shape class Instead of calling static update method, we will call update on the Display object public aspect DisplayUpdating pointcut change: execution(public void Shape+.set*(*)) after returning: change { display.update(); } declare for Shape: { protected Display display; }

Fluid AOP - Terry Hon & Gregor Kiczales 8 1 st JPM – Block Linking Join points –Code fragments in java files Method Constructor Field Means of identifying join points –Pointcuts: method, field or constructor signatures, type patterns Means of combining crosscutting –Identical blocks –All linked, any block can be edited

Fluid AOP - Terry Hon & Gregor Kiczales 9 2 nd JPM – Overlay Join points –Code fragments in java files Method Constructor Means of identifying join points –Pointcuts: method or constructor signatures, type patterns Means of combining crosscutting –Join points are all different –Editable merge

Fluid AOP - Terry Hon & Gregor Kiczales 10 Identical parts in join points Variable references (with different names) in join points

Fluid AOP - Terry Hon & Gregor Kiczales 11 Block Linking vs. Overlay Crosscutting effects are identical No context of JPs in aspect Edit in linked advice block Can recreate aspect by code inspection without Fluid AOP tool Crosscutting effects can be different Some context of JPs in aspect Edit in linked merged structure Cannot recreate aspect unless we know list of JPs

Fluid AOP - Terry Hon & Gregor Kiczales 12 Current Questions Block Linking JPM What happens when a developer changes an advice body outside of the aspect file? What happens if an advice body is deleted? Overlay JPM What are rules for merging and overlaying? How should overlay look?

Fluid AOP - Terry Hon & Gregor Kiczales 13 Open Issues What are other JPMs in Fluid AOP? –What is the best way to show a ccc (modularizing both viewing and editing of JPs)? Possible intermediate step in AOP adoption or AOP solution qua itself? –Java tools can be used on all but aspect files –Aspect files are only meta files –Edit time weaving

Fluid AOP - Terry Hon & Gregor Kiczales 14 Related Work Linked editing –Toonim et. al.: CodeLink –Miller et. al.: Simultaneous Editing Editable virtual views –Chu-Carroll et. al.: VSC –Janzen et. al: Decal –Quitslund: MView Linguistic –Harrison et. al.: CME –Quitslund et. al.: Java Traits

University of British Columbia Software Practices Lab Questions? Fluid AOP Join Point Models Terry Hon