AOP issues. Class/Aspect Table Loose Coupling Classes/Aspects When we evolve a class, how many aspects do we have to change? When we evolve an aspect,

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Towards a Standard Interface for Runtime Inspection in AOP Environments OOPSLA Workshop on Tool for AOSD, Seattle, November 2002 Katharina Mehner and Awais.
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
An Aspect-Oriented Approach For Web Application Access Control Presented by: Mohamed Hassan Carleton University Carleton University
Aspect Oriented Programming - AspectJ Radhika Rajput.
Each design pattern is designed to facilitate one kind of change, i.e. changes in one dimension. However, software evolution can happen in multiple dimensions.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Overview of AspectJ Aspect Oriented Software Development Seminar Technion presented by Oren Mishali.
An Untyped Calculus of Aspect- Oriented Programs Radha Jagadeesan Alan Jeffrey James Riely DEPAUL UNIVERSITY, CHICAGO.
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.
Aspect-oriented programming Laura Ricci A.A
1 Aspects and Modularity: The Hope and the Challenge Jonathan Aldrich Institute for Software Research International School of Computer Science Carnegie.
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
QoS Provisioning in CORBA Aspects & Composition Filters Mehmet Aksit * Ali Noutash + Marten van Sinderen*
Recap (önemli noktaları yinelemek) from last week Paradigm Kay’s Description Intro to Objects Messages / Interconnections Information Hiding Classes Inheritance.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
What is “model transformation”? Distinction between source and target Source may be same as target May be multiple sources, or targets Reaching a fixed.
By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
Modularizing Web Services Management with AOP María Agustina Cibrán, Bart Verheecke { Maria.Cibran, System and Software Engineering.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
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:
Aspect Oriented Programming Gülşah KARADUMAN.
On the Modularity Assessment of Aspect- Oriented Multi-Agent Systems Product Lines: a Quantitative Study Camila Nunes
Alcatel-Lucent CDC Workshop, Coaching & Knowledge Transfer Architecture.
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:
Design Rules for Increasing Modularity with CaesarJ Carlos Eduardo Pontual Advisor: Paulo Borba 17/06/2010.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
COP4020 Programming Languages Subroutines and Parameter Passing Prof. Xin Yuan.
SCALABLE EVOLUTION OF HIGHLY AVAILABLE SYSTEMS BY ABHISHEK ASOKAN 8/6/2004.
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
Features of AOP languages AOP languages have the following main elements: –a join point model (JPM) wrt base PL –a specification language for expressing.
Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Demeter Aspects We study techniques for the emerging area of Aspect-Oriented Software Development and focus on the following areas:  Aspectual Collaborations.
Chapter 8: Aspect Oriented Programming Omar Meqdadi SE 3860 Lecture 8 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
1 Enhancing Program Comprehension with recovered State Models Stéphane S. Somé Timothy C. Lethbridge SITE, University of Ottawa.
AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil
Chapter 21 Design Patterns Reviewed from the New Perspective of Object-Oriented Design Ku-Yaw Chang Assistant Professor, Department.
1 Modularity Analysis of Use Case Implementations Fernanda d’Amorim Advisor: Paulo Borba.
问题 Code scattering Blocks of duplicated code Blocks of complementary code, and different modules implementing complementary parts of the concern Code.
Chapter Ten The Bridge Pattern Ku-Yaw Chang Assistant Professor, Department of Computer Science and Information Engineering Da-Yeh.
Object- oriented Design Principles
2000 Research Overview Dr. Kim Mens Programming Technology Lab Vrije Universiteit Brussel.
L’origine dei mali: le dipendenze tra componenti Stefano Leli 14° Workshop DotNetMarche Venerdì 16 aprile
Inspections on Testing Aspect-Oriented Programs Rodrigo Manuel Lopes de Matos Moreira 4 th Doctoral Symposium on Informatics Engineering Porto, 6 th February.
1 Requirements Engineering for Agile Methods Lecture # 41.
ECE 750 Topic 8 Meta-programming languages, systems, and applications Automatic Program Specialization for J ava – U. P. Schultz, J. L. Lawall, C. Consel.
 Is a programming paradigm  Extends OOP  Enables modularization of cross cutting concerns.
LECTURE 19 Subroutines and Parameter Passing. ABSTRACTION Recall: Abstraction is the process by which we can hide larger or more complex code fragments.
Object Oriented Programming in Java Habib Rostami Lecture 2.
Features of AOP languages AOP languages have the following main elements: –a join point model (JPM) wrt base PL –a specification language for expressing.
Aspect-Oriented Programming with the Eclipse AspectJ plug-in
Demeter Aspects Who We Are Aspectual Collaborations
Aspect-Oriented Design and Patterns
The Future of Transport
Two Patterns in Adaptive, Distributed Real-Time, Embedded Middleware
Structuring Adaptive Applications using AspectJ and AOM
Better Separation of Crosscutting Concerns with Aspectual Components
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Aspect-oriented programming
AspectAda Aspect-Oriented Programming for Ada95
Extending Interface Based Design
Adaptive Programming in JAsCo
Design Patterns
Presentation transcript:

AOP issues

Class/Aspect Table

Loose Coupling Classes/Aspects When we evolve a class, how many aspects do we have to change? When we evolve an aspect, how many classes are affected? Ideally none. Classes oblivious of aspects.

Techniques for loose coupling of aspects/classes AP: structure-shy programming AC: put crosscutting into adapters Doug: BOP: each method encapsulates the condition when it is applicable. More kinds of cond. lead to better separation of concerns parameterize: decouple aspects from classes

variables in pointcut designators more efficient: can generate faster code pointcuts separated from advice. Abstract pointcuts. –x from first arg, x from second arg. Extra layer of abstraction –virtual class = type defined by predicate. Exported variables become virtual fields

other reasons for differential programming than evolution behavior variation –kind specific: oo –context-dependent state dependent: predicate over arguments perspective dependent: person takes different roles; overlapping predicates; predicate dispatch; multi-way association application dependent:depends on calling context; jumping aspect; only trace from caller x. Generic usage pattern; open implementation example: too many windows. previous decision point environment dependent:network bandwidth changes dynamically; network- aware application; QuO; access to global system functions inside predicates. Variation of state.

Service Business does doug have introductions? enabler bundles: Party, Address, Addressing, ProductOffering, BusinessInstance consolidation bundle: assigns values to fields of ProductOffering objects, BusinessInstance

Service Business delivery bundle

Design: Service Business enabler bundles: –PartyB: Party and LabeledPartyGraph –AddressB: Address, Addressing –ProductB: ProductOffering –EventB: EnablerEvent –EligibilityB: consolidation bundle: –AgreementB: Agreement delivery bundles:

Design: Service Business delivery bundles: –EventB: DeliveryEvent, EventTracking –AccountB: FeeComp, InterestComp, Position –AvailabilityB: Availability –RiskB: uses Availability