University of British Columbia Software Practices Lab Uniform Support for Modeling Crosscutting Structure Maria Tkatchenko Gregor Kiczales Work supported.

Slides:



Advertisements
Similar presentations
Architecture Representation
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 JAC : Aspect Oriented Programming in Java An article review by Yuval Nir and Limor Lahiani.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development.
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.
Aspect-Oriented Modeling Workshop March 14, 2005 Chicago, IL
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.
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.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
© Copyright Eliyahu Brutman Programming Techniques Course.
More on AspectJ. aspect MoveTracking { private static boolean _flag = false; public static boolean testAndClear() { boolean result = _flag; _flag = false;
1 Model Interface Implementation for Two-Way Obliviousness in Aspect-Oriented Modeling Presented by Wuliang Sun Department of Computer Science Baylor University.
Deriving AO Software Architectures using the AO-ADL Tool Suite Luis Fernández, Lidia Fuentes, Mónica Pinto, Juan A. Valenzuela Universidad de Málaga
State and Sequence Diagrams Modelling dynamic information So far we have seen: Use Case Diagrams – requirements capture, interface.
Composing Models: Principles & Techniques © Copyright TUBS & TUD Composing Models: Principles & Techniques Steven Völkel & Jendrik Johannes.
1 Aspects and Modularity: The Hope and the Challenge Jonathan Aldrich Institute for Software Research International School of Computer Science Carnegie.
Outline Introduction Problem Statement Object-Oriented Design Aspect-Oriented Design Conclusion Demo.
Towards Executable Aspect-Oriented UML Models 10th Int. Workshop on Aspect-Oriented Modeling (AOM), 6th Int. Conf. on Aspect-Oriented Software Development.
What is “model transformation”? Distinction between source and target Source may be same as target May be multiple sources, or targets Reaching a fixed.
Tool support for crosscutting concerns of API documentation Michihiro Horie, Shigeru Chiba Tokyo Institute of Technology, Japan.
1 Metamodel Access Protocols for Extensible Aspect-Oriented Modeling Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Shinji Sano(Kyushu Institute.
What is MOF? The Meta Object Facility (MOF) specification provides a set of CORBA interfaces that can be used to define and manipulate a set of interoperable.
©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.
1 Model Compiler Construction Based on Aspect-oriented Mechanisms Naoyasu Ubayashi (Kyushu Institute of Technology) Tetsuo Tamai (University of Tokyo)
Henry Muccini - Computer Science Department, Universita' dell'Aquila, Italy Paola Inverardi - Computer Science Department, Universita'
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.
POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan An Extensible Aspect-Oriented Modeling.
Using Aspects to Support the Software Process: XP over Eclipse Oren Mishali and Shmuel Katz Technion, Israel Institute of Technology.
Aspect Oriented Programming Gülşah KARADUMAN.
Joel Phinney March 31, ◦ Concerns  Separation of Concerns, Tangled and Scattered Concerns, Cross-Cutting Concerns, Aspects ◦ Aspect-Oriented Software.
A Meta-Level Specification and Profile for AspectJ in UML Joerg Evermann School of Information Management Victoria University of Wellington.
Aspect-Oriented Modeling of Access Control in Web Applications Gefei Zhang Joint work with Hubert Baumeister, Nora Koch and Alexander Knapp UML-BASED WEB.
A Distributed Aspect-Oriented System for J2EE Applications Muga Nishizawa and Shigeru Chiba (Tokyo Institute of Technology, Japan) Background - As benefits.
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
Aspect Oriented Programming An Introduction based on se-radio.net episode th October 2009 Aspect Oriented Programming - Nils Schmidt.
An Overview of Aspects Shmuel Katz Computer Science Department The Technion
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,
Concern Architecture View and Aspect-Oriented Design Mika Katara and Shmuel Katz Tampere U. T. Technion, Haifa.
POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan 1 A Verification Mechanism for Weaving.
Towards an Aspect-oriented Language Module: Aspects for Petri Nets Tim Molderez, Bart Meyers, Dirk Janssens and Hans Vangheluwe Ansymo Antwerp Systems.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan 1 A Reflective Aspect-oriented Model.
问题 Code scattering Blocks of duplicated code Blocks of complementary code, and different modules implementing complementary parts of the concern Code.
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.
Applying Aspect-Orientation in Designing Security Systems Shu Gao Florida International University Center for Advanced Distributed Systems Engineering.
R R R A Brief Introduction to Aspect-Oriented Programming.
AspectScope: An Outline Viewer for AspectJ Programs Michihiro Horie, Shigeru Chiba Tokyo Institute of Technology, Japan.
® IBM Software Group A Metamodeling Approach to Pattern Specification Maged Elaasar 1,2, Dr. Lionel Briand 1, Dr. Yvan Labiche 1 1 Carleton University,
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.
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)
Aspect-oriented Code Generation Approaches Abid Mehmood & Dayang N. A. Jawawi Department of Software Engineering Faculty of Computer Science and Information.
Unified Modeling Language
Aspect-Oriented Programming with the Eclipse AspectJ plug-in
Discussion with Gregor Kiczales at UBC
Aspects at the Design Level
AspectAda Aspect-Oriented Programming for Ada95
Aspect Oriented Software Design
Presentation transcript:

University of British Columbia Software Practices Lab Uniform Support for Modeling Crosscutting Structure Maria Tkatchenko Gregor Kiczales Work supported by IBM and NSERC.

AOSD Crosscutting in a ‘UML’ Model Advice: advise method(Subject.change(…)): “moving concern”

AOSD Crosscutting in a ‘UML’ Model

AOSD Crosscutting in a ‘UML’ Model Role Binding: bind Line.moveBy, Point.moveBy, Point.setX, Point.setY to Subject.change

AOSD Crosscutting in a ‘UML’ Model Advice: advise method(Subject.change(…)): “moving concern” Role Binding: bind Line.moveBy, Point.moveBy, Point.setX, Point.setY to Subject.change

AOSD Related Work [Katara, Mikkonen, ‘02] –hierarchy of related refinements –merge sequences for composed behaviour [Lions et.al.,’02] –AOP in UML through use of meta-modeling in OpenTool/UML [Baniassad, Clarke, ‘04] –modeler identifies and binds aspects (themes) –throughout lifecycle of project [Kande et.al.,’02] –first-class aspects in UML

AOSD Terminology Model –as in modeling, UML, MDD, meta-model… JPM –as in join point model –supports the above crosscutting models

AOSD Goals Foundation for modeling crosscutting structure –Compositional different model elements different crosscutting perspectives –Simple uniform linear in number of crosscutting views (not exponential) relatively easy to add new kind of crosscutting Simplifies implementation of modeling tool –directly benefits for modeling tool implementer, meta- modeler i.e. would it be easier to add pattern support with this approach? –indirectly benefits modeler

AOSD What JPM (Join Point Model) Supports That JPMs are fundamental mechanism for support of crosscutting A simple JPM for UML –(for now, taking freedom to change the UML meta-model) JPMs have three parts [Masuhara, ‘03] Join points Identifying join points Semantic effect

AOSD JPM Join points –model elements –Class, Method, Field, Advice in Class Diagram –Method Call, Sequence (focus of control) in Sequence Diagram –uniform, but 2 JPs per crosscutting interaction Identifying join points –signatures, type patterns, pointcuts… Semantic effect –each has particular declaration semantics declare a class, method, sequence, advice… Weaver –based on Eclipse EMF framework –collects crosscutting among the elements –what elements crosscut each other?

AOSD Meta-Model FieldDeclMethodDeclAdviceDecl ClassMemberDeclClassDeclSequenceDeclMethodCallDeclClassDiagramMemberDeclSequenceDiagramMemberDecl Declaration JoinPoint crosscutByList: List

AOSD Crosscutting in the weaver (,,,,,, …)

AOSD Crosscutting in the weaver (,,,,,, …)

AOSD Crosscutting in the weaver (…, …) every element has crosscutByList two join points per crosscutting interaction

AOSD Crosscutting in the weaver Role Binding: bind Line.moveBy, Point.moveBy, Point.setX, Point.setY to Subject.change (,,,,,, …) same thing happens for all kinds of cc

AOSD Crosscutting in the weaver Advice: advise method(Subject.change(…)): “moving concern” Role Binding: bind Line.moveBy, Point.moveBy, Point.setX, Point.setY to Subject.change how is advice affected by role binding? (,,,,,, …) (,,,…)

AOSD Crosscutting in the weaver Advice: advise method(Subject.change(…)): “moving concern” Role Binding: bind Line.moveBy, Point.moveBy, Point.setX, Point.setY to Subject.change how is advice affected by role binding? (,,,,,, …) (,,,…) (,,…)

AOSD Implementation Simple staged approach to weaving 1.role binding 2.inter-type declarations 3.sequence diagrams 4.advice Simplifies semantic interactions –advice depends on roles, but not vice versa Each pass records –relevant semantic information type and method inheritance tables –additions to crosscutByList of each JP

AOSD Use of woven information Question: how to find out whether an element has advice applied to it? boolean hasAdvice(Decl decl) { for (Decl otherDecl: decl.getCrosscutByList()) if (otherDecl instanceof AdviceDecl) return true; return false;

AOSD Use of woven information Question: how to build the complete (possible) cflow of a call C for C and any calls in its sequence diagram, repeat containedCalls(call) List containedCalls(Call c1) { List result; for (Decl c2: c1.getCrosscutByList()) if (c2 instanceof Call && c1.getSignature().matches(c2.getSignature()) { result.add(c2); result.addAll(containedCalls(c2)); }

AOSD Status of work Done so far –JPM design –UML meta-model –UML language –Implementation: weaver Prototype Modular –Simplified: reasonable subset of UML no methodReceipt, methodReturn join points in Sequence Diagrams no other diagrams

AOSD Summary Simple approach to modeling crosscutting –for existing and new kinds of crosscutting Simple and modular implementation Approach consists of –JPM –extension to the UML meta-model –weaver

University of British Columbia Software Practices Lab Uniform Support for Modeling Crosscutting Structure QUESTIONS?