seminar i o aspect os
TRANSCRIPT
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 1/51
Seminario.ProgramaciónOrientadaaAspectos
IngenieríadelSo8wareII
PabloSánchezBarreiro
DPTO.DEMATEMÁTICAS,ESTADÍSTICAYCOMPUTACIÓN
EstetemasepublicabajoLicencia:
CreaveCommonsBY‐NC‐SA3.0
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 2/51
Table of Contents
1 Introduction: Why we need Aspect-Oriented Programming
2 Aspect-Oriented Programming
3 Current Challenges
4 What AOSD Is Not About
5 AOSD and Related Technologies
6 Conclusions
7
References
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 2 / 51
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 3/51
Introduction Crosscutting Concerns
Crosscutting Concerns Drawbacks
Happiness
Sadness
ModuleA ModuleEModule DModuleCModuleB
Base Functionality
Fault Tolerance v2.0
Access Control
Encryption
@#&
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 3 / 51
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 4/51
Introduction Crosscutting Concerns
Case Study: Apache Tomcat
XML parsing
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 4 / 51
I d i C i C
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 5/51
Introduction Crosscutting Concerns
Case Study: Apache Tomcat
URL pattern matching
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 5 / 51
I t d ti C tti C
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 6/51
Introduction Crosscutting Concerns
Case Study: Apache Tomcat
Logging
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 6 / 51
Introduction Crosscutting Concerns
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 7/51
Introduction Crosscutting Concerns
Motivating example: Access Control
AccessControlclass [ ]
+askForCredentials( out username : String, out password : String )
AccessControlView
+getAccess() : Boolean+getSelectiveAccess( String : String )
AccessControl
-name : String-address : String
-religion : String-diseases : String [0..*]
+getName() : String+getAddress() : String+getReligion() : String+getDiseases() : String [0..*]
Student +authenticator
«use»
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 7 / 51
Introduction Crosscutting Concerns
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 8/51
Introduction Crosscutting Concerns
Motivating example: Access Control
public class Student {
protected String religion;
protected AccessControl authenticator =
new AccessControl();
public String getReligion() {
String result = null;
if (authenticator.getAccess()) {
result = this.religion;
} // if
return result;} // getReligion
} // Student
public class Student {
protected String religion;
protected AccessControl authenticator =
new AccessControl();
public String getReligion() {
String result = null;
if (authenticator.getAccess()) {
result = this.religion;
} // if
return result;} // getReligion
} // Student
Crosscutting code
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 8 / 51
Introduction Crosscutting Concerns
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 9/51
Introduction Crosscutting Concerns
Motivating example: Access Control
public List<String> getDiseases() {
List<String> result = null;
if (authenticator.getAccess()) {result = this.diseases;
} // if
return result;
} // getDiseases
Crosscutting code
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 9 / 51
Introduction Crosscutting Concerns
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 10/51
Introduction Crosscutting Concerns
Main Shortcoming of Crosscutting Concerns
Happiness
Sadness
ModuleA ModuleEModule DModuleCModuleB
Base Functionality
Fault Tolerance v2.0
Access Control
Encryption
@#&
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 10 / 51
Introduction Conclusions
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 11/51
t o ct o Co c s o s
Conclusions
Scattering
A concern appears spread over several software modules.
Tangling
Several concern appears software modules.
1 Scattering: Decreases encapsulation, (consequently decreasescohesion), creates redundancies, hinders reutilization of thecrosscutting concern and increase coupling.
2 Tangling: Decreases cohesion, (consequently hampers reutilization),and increases coupling.
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 11 / 51
Introduction Empirical Evidence
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 12/51
p
Concern-Oriented Metrics [Sant’Anna et al., 2007]
CDC Concern Diffusion over Classes
CDO Concern Diffusion over Operations
CIC Class-Level Interlacing between Concerns
OOC Operation-Level Overlapping between Concerns
ACC Afferent Coupling between Classes
ECC Efferent Coupling between Classes
LCC Lack of Concern-Based Cohesion
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 12 / 51
Introduction Empirical Evidence
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 13/51
Concern-Oriented Metrics [Sant’Anna et al., 2007]
AccessControlclass [ ]
+askForCredentials( out username : String, out password : String )
AccessControlView
+getAccess() : Boolean+getSelectiveAccess( String : String )
AccessControl
-name : String-address : String-religion : String-diseases : String [0..*]
+getName() : String+getAddress() : String+getReligion() : String+getDiseases() : String [0..*]
Student +authenticator
«use»
CDC CDO CIC OOCData Storage (base) 1 4 1 1
AccessControl 3 5 1 1
ACC ECC LCCStudent 0 1 2
AccessControl 1 1 1
AccessControlView 1 0 1
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 13 / 51
Aspect-Oriented Programming
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 14/51
Table of Contents
1 Introduction: Why we need Aspect-Oriented Programming
2 Aspect-Oriented Programming
3 Current Challenges
4 What AOSD Is Not About
5 AOSD and Related Technologies
6 Conclusions
7 References
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 14 / 51
Aspect-Oriented Programming Overview
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 15/51
Aspect-Oriented Programming Principle
Module B
Module A
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 15 / 51
Aspect-Oriented Programming Overview
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 16/51
Aspect-Oriented Programming Principle
Module B
Module A
Joinpoint
Joinpoint
Joinpoint
Joinpoint
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 16 / 51
Aspect-Oriented Programming Overview
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 17/51
Aspect-Oriented Programming Principle
Access Control
Module B
Module A
Fault Tolerance
Encryption
Aspect
Aspect
Aspect
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 17 / 51
Aspect-Oriented Programming Overview
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 18/51
Aspect-Oriented Programming Principle
Access Control
Module B
Module A
Fault Tolerance
Encryption
Pointcut
Pointcut
Pointcut
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 18 / 51
Aspect-Oriented Programming Aspect-Oriented Weaving
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 19/51
Weaving Process
Base Model
Aspect-Oriented Weaving Process
A s p e c t W e a v e r
Pointcut Model
Aspect Model
Woven Base Model
C o m m o n C o m
p i l e r
100101
101100
010101
Compiled Code
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 19 / 51
Aspect-Oriented Programming Aspect-Oriented Weaving
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 20/51
Weaving Process
ConcernIdentifier
Requirements
Weaver
Concernimplementation
AspectualDecomposition
AspectualRecomposition
Final System
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 20 / 51
Aspect-Oriented Programming Aspect-Oriented Weaving
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 21/51
Kinds of Aspect-Oriented Weaving
Static Weaving Aspects are woven at compile time [Kiczales et al., 2001].
Load-Time Weaving Aspects are woven at classload-time [Laddad, 2001, Chiba, 2000].
Dynamic Weaving Aspects can be woven and even unwoven atruntime [Pinto et al., 2005, Suvee et al., 2003]. It isparticulary interesting for context-awaresystems [Fuentes et al., 2009].
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 21 / 51
Aspect-Oriented Programming Example: Access Control as an Aspect
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 22/51
Access Control With AspectJ
public aspect AccessControlAspect {
pointcut guardedMethods():
call(String Student.getReligion());
String around () : guardedMethods() {
AccessControl guard = new AccessControl();
String returnValue = null;
if (guard.getAccess()) {
returnValue = proceed ();
} // if
return returnValue;
} // around guardedMethods
} // AccessControlAspect
public aspect AccessControlAspect {
pointcut guardedMethods():
call(String Student.getReligion());
String around () : guardedMethods() {
AccessControl guard = new AccessControl();
String returnValue = null;
if (guard.getAccess()) {
returnValue = proceed ();
} // if
return returnValue;
} // around guardedMethods
} // AccessControlAspect
public aspect AccessControlAspect {
pointcut guardedMethods():
call(String Student.getReligion());
String around () : guardedMethods() {
AccessControl guard = new AccessControl();
String returnValue = null;
if (guard.getAccess()) {
returnValue = proceed ();
} // if
return returnValue;
} // around guardedMethods
} // AccessControlAspect
public aspect AccessControlAspect {
pointcut guardedMethods():
call(String Student.getReligion());
String around () : guardedMethods() {
AccessControl guard = new AccessControl();
String returnValue = null;
if (guard.getAccess()) {
returnValue = proceed ();
} // if
return returnValue;
} // around guardedMethods
} // AccessControlAspect
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 22 / 51
Aspect-Oriented Programming Example: Access Control as an Aspect
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 23/51
A Clean Student Class
public class Student {
protected String religion;
public String getReligion() {
return this.religion;
} // getReligion
} // Student
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 23 / 51
Aspect-Oriented Programming Quantification
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 24/51
Wildcard-based Quantified Pointcuts
public aspect QuantifiedAccessControlAspect {
pointcut guardedMethods(): call(* Student.get*(..));
Object around () : guardedMethods() {
AccessControl guard = new AccessControl();
Object returnValue = null;
if (guard.getAccess()) {
returnValue = proceed ();
} // if
return returnValue;
} // around guardedMethods
} // QuantifiedAccessControlAspect
public aspect QuantifiedAccessControlAspect {
pointcut guardedMethods(): call(* Student.get*(..));
Object around () : guardedMethods() {
AccessControl guard = new AccessControl();
Object returnValue = null;
if (guard.getAccess()) {
returnValue = proceed ();
} // if
return returnValue;
} // around guardedMethods
} // QuantifiedAccessControlAspect
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 24 / 51
Aspect-Oriented Programming Annotation-based Quantification
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 25/51
Annotation-based Quantified Pointcuts
public class Student {
protected String religion;
@AccessControlRequired public String getReligion() {
return this.religion;
} // getReligion
} // Student
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 25 / 51
Aspect-Oriented Programming Annotation-based Quantification
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 26/51
Annotation-based Quantified Pointcuts
public aspect AnnotationBasedAspect {
pointcut guardedMethods():
call(@AccessControlRequired * *.*(..));
Object around () : guardedMethods() {
AccessControl guard = new AccessControl();
Object returnValue = null;
if (guard.getAccess()) {
returnValue = proceed ();
} // if
return returnValue;} // around guardedMethods
} // AnnotationBasedAspect
public aspect AnnotationBasedAspect {
pointcut guardedMethods():
call(@AccessControlRequired * *.*(..));
Object around () : guardedMethods() {
AccessControl guard = new AccessControl();
Object returnValue = null;
if (guard.getAccess()) {
returnValue = proceed ();
} // if
return returnValue;} // around guardedMethods
} // AnnotationBasedAspect
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 26 / 51
Aspect-Oriented Programming Reflection
S B i & F R fl i
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 27/51
Some Basic & Free Reflection
A c c e s s C o n t r o lc l a s s [ ]
+ a s k F o r C r e d e n tia ls ( o u t u s e r n a m e : S t r in g , o u t p a s s w o r d : S t r in g )
A c c e s s C o n t r o l V i e w
+ g e tA c c e s s ( ) : B o o le a n+ g e tS e le c t i v e A c c e s s ( S tr in g : S tr in g )
A c c e s s C o n t r o l
- n a m e : S tr in g- a d d r e s s : S t r in g- r e l ig io n : S t r in g
- d is e a s e s : S tr in g [0 . . * ]
+ g e tN a m e ( ) : S tr in g+ g e tA d d r e s s ( ) : S t r in g+ g e t R e l ig io n ( ) : S t r in g+ g e t D is e a s e s ( ) : S t r in g [ 0 .. * ]
S t u d e n t + a u th e n tic a to r
« u s e »
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 27 / 51
Aspect-Oriented Programming Reflection
S B i & F R fl i
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 28/51
Some Basic & Free Reflection
public aspect ReflectionAccessControlAspect {
pointcut guardedMethods():
call(String Student.getReligion());
String around () : guardedMethods() {
AccessControl guard = new AccessControl();
String returnValue = null;
if (guard.getSelectiveAccess(
thisJoinPoint.getSignature().
getName())) {
returnValue = proceed ();
} // if
return returnValue;
} // around guardedMethods
} // ReflectionAccessControlAspect
public aspect ReflectionAccessControlAspect {
pointcut guardedMethods():
call(String Student.getReligion());
String around () : guardedMethods() {
AccessControl guard = new AccessControl();
String returnValue = null;
if (guard.getSelectiveAccess(
thisJoinPoint.getSignature().
getName())) {
returnValue = proceed ();
} // if
return returnValue;
} // around guardedMethods
} // ReflectionAccessControlAspect
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 28 / 51
Aspect-Oriented Programming Reflection
C O i d M i R i i d
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 29/51
Concern-Oriented Metrics RevisitedAccessControlAspectclass [ ]
+askForCredentials( out username : String, out password : String )
AccessControlView
-name : String
-address : String-religion : String-diseases : String [0..*]
+getReligion() : String+getName() : String+getAddress() : String+getDiseases( diseases : String [0..*] )
Student
+getAccess() : Boolean+getSelectiveAccess( String : String )
AccessControl
«crosscut»
CDC CDO CIC OOCData Storage (base) 1 (1) 4 (4) 0 (1) 0 (1)
AccessControl 2 (2) 3 (5) 0 (1) 0 (1)
ACC ECC LCCStudent 1 (0) 0 (1) 1 (2)
AccessControl 0 (1) 2 (1) 1 (1)
AccessControlView 1 (1) 0 (0) 1 (1)
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 29 / 51
Current Challenges
T bl f C t t
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 30/51
Table of Contents
1 Introduction: Why we need Aspect-Oriented Programming
2 Aspect-Oriented Programming
3 Current Challenges
4 What AOSD Is Not About
5 AOSD and Related Technologies
6 Conclusions
7 References
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 30 / 51
Current Challenges
C t H t R h T i AOSD
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 31/51
Current Hot Research Topics on AOSD
1 Semantic pointcuts [Ostermann et al., 2005].
2
Reusable aspects (e.g Complex TransactionManagement) [Kienzle and Gelineau, 2006].
3 Aspect interference/conflicts [Douence et al., 2002,Douence et al., 2004, Altahat et al., 2008].
4 Complex pointcuts [Allan et al., 2005].
5 Aspect Influence on Interfaces [Ostermann, 2008].
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 31 / 51
Current Challenges
Current Hot Research Topics on AOSD
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 32/51
Current Hot Research Topics on AOSD
<<CallBehavior>>
calculateDiscount
<<CallBehavior>>
minus
first
proceed
<<proceed>>
price
price : Real
checkOut(..)
(.*):(.*) <?cart>(.*) :
ShoppingCart
(.*):(.*)
newCreditCard(..)
<?ws>(.*):
WebServiceBank
termsAndConditionsOfSeasonalRebate
[*]
<?jp>:
approveCredit(<?cc>(.*):PaymentMethod, <?price>(.*):Real))
<?cc>(.*):CreditCard
?jp
?price
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 32 / 51
What AOSD is not about
Table of Contents
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 33/51
Table of Contents
1 Introduction: Why we need Aspect-Oriented Programming
2 Aspect-Oriented Programming
3 Current Challenges
4 What AOSD Is Not about
5 AOSD and Related Technologies
6 Conclusions
7 References
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 33 / 51
What AOSD is not about AOSD is not View-Based Software Development
AOSD is not View Based Software Development
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 34/51
AOSD is not View-Based Software Development
class addItem
UserGUI ShoppingCartIShop
+ books
0..*
+addItem (book :Book , amount :int )
<< theme >>
AddItem<< theme >>
CheckOut
class checkOut
UserGUI ShoppingCartIShop
Delivery
+ checkOut ()
IDelivery
Bank
IBank
sd checkOut
UserGUI ShoppingCart Delivery Bank
checkDelivery (address = -,weight =- ,size =- )
approveCredit (ccNumber =-,amount =- )
merge
Books
sd addItem
UserGUI ShoppingCart
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 34 / 51
What AOSD is not about AOSD is not Feature-Oriented Software Development
AOSD is not Feature Oriented Software Development
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 35/51
AOSD is not Feature-Oriented Software Development
Architectureclass [ ]
SmartEnergyMng
+openWindow( id : Integer )+closeWindow( id : Integer )+adjustTemperature( id : Integer, temp : float )
Gateway
+operationMode : TempUnits
ThermometerCtrl Sensor
InitialModel
+changeValue( id : Integer, value : float )+emergence( a : Sensor, value : float )
Gateway
+id : Integer
+setValue( value : float )
Actuator
+id : Integer
+getValue() : float
Sensor
HeaterMng
+adjustTemperature( id : Integer, temp : float )
Gateway
+units : TempUnits
+set( t : float )
HeaterCtrl
FAHRENHEITCELSIUS
«enumeration»
TempUnits
Actuator
WindowMng
+openWindow( id : Integer )+closeWindow( id : Integer )
Gateway
+open()
+close()
WindowCtrl Actuator
LightMng
+switchLight( id : Integer )
Gateway
+switch()
LightCtrl
Actuator
+indoorTherm
1
+outdoorTherm
1
+sensors
0..*+actuators
0..* +gtw
0..1
+heaters
1..*
+windows
1..*
+lights
1..*
«merge»
«merge»
«merge»«merge»
«merge»
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 35 / 51
AOSD and Related Technology
Table of Contents
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 36/51
Table of Contents
1 Introduction: Why we need Aspect-Oriented Programming
2 Aspect-Oriented Programming
3 Current Challenges
4 What AOSD Is Not About
5 AOSD and Related Technologies
6 Conclusions
7 References
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 36 / 51
AOSD and Related Technology
AOSD and Related Technology
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 37/51
AOSD and Related Technology
1 Component platforms/Application Servers/ContainerTechnology
◮ Component platforms offer a set of fixed services.◮ Configuration of each service is often different.◮ Component platforms are often heavier.
2 Reflection: AOP is reflection for human beings.
3
Design Patterns, Dynamic Proxies: The aspect-oriented weaverdoes it for you.
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 37 / 51
AOSD and Related Technology
AOSD in Industry
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 38/51
AOSD in Industry
1 Spring framework for Enterprise Java.
2
SpringSource dm Server, SpringSource tc Server, Spring Roo yMagma.
3 GlassBox, Perf4J, Contract4J, JXInsight, MaintainJ.
4 Websphere, MySQL, JBoss, Oracle Toplink,J2ME [Rashid et al., 2010].
5 Siemens Healthcare [Rashid et al., 2010].
6 Motorola Weavr [Cottenier et al., 2007].
7 Oficina Virtual Fundacion Retevision [Pinto et al., 2005]
8
Digital Publishing [de Beeck et al., 2009].9 Isis Project (Stop Pedophilia).
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 38 / 51
Conclusions
Table of Contents
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 39/51
Table of Contents
1 Introduction: Why we need Aspect-Oriented Programming
2 Aspect-Oriented Programming
3 Current Challenges
4 What AOSD Is Not About
5 AOSD and Related Technologies
6 Conclusions
7 References
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 39 / 51
Conclusions
Conclusions
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 40/51
Conclusions
Aspect-Oriented Software Development
Aspect-Oriented Software Development can help to improvemodularization of crosscutting concerns, easing maintenance and evolution.
Access Control Code:
http://personales.unican.es/sanchezbp/teaching/ao/accesscontrol.zip
More Information:
http://www.aosd-europe.net
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 40 / 51
References
Table of Contents
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 41/51
Table of Contents
1 Introduction: Why we need Aspect-Oriented Programming
2 Aspect-Oriented Programming
3 Current Challenges
4 What AOSD Is Not About
5 AOSD and Related Technologies
6 Conclusions
7 References
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 41 / 51
References
Referencias I
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 42/51
Allan, C., Avgustinov, P., Christensen, A. S., Hendren, L. J., Kuzins,S., Lhotak, O., de Moor, O., Sereni, D., Sittampalam, G., and Tibble,J. (2005).Adding trace matching with free variables to AspectJ.In Johnson, R. E. and Gabriel, R. P., editors, Proc. of the 20th Annual Conference on Object-Oriented Programming, Systems, Languages,
and Applications, (OOPSLA), pages 345–364.Altahat, Z., Elrad, T., and Tahat, L. (2008).Applying Critical Pair Analysis in Graph Transformation Systems toDetect Syntactic Aspect Interaction in UML State Diagrams.In Proc. of the 20th Int. Conference on Software Engineering &Knowledge Engineering (SEKE), pages 905–911, San Francisco(California, USA).
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 42 / 51
References
Referencias II
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 43/51
Brichau, J. and D‘Hondt, T. (2005).Introduction to Aspect-Oriented Software Development.Deliverable D17 AOSD-Europe-VUB-02, AOSD-Europe Network of Excellence, Brussels.
Chiba, S. (2000).Load-Time Structural Reflection in Java.
In Bertino, E., editor, Proc. of the 14th European Conference onObject-Oriented Programming (ECOOP), pages 313–336, SophiaAntipolis and Cannes (France).
Colyer, A., Clement, A., Harley, G., and Webster, M. (2004).
Eclipse AspectJ: Aspect-Oriented Programming with AspectJ and the Eclipse AspectJ Development Tools .Addison-Wesley Professional.
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 43 / 51
References
Referencias III
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 44/51
Cottenier, T., van den Berg, A., and Elrad, T. (2007).Motorola WEAVR: Aspect and model-Driven Engineering.Journal of Object Technology (JOT), 6(7):51–88.
de Beeck, S. O., Landuyt, D. V., Truyen, E., and Joosen, W. (2009).Building a Next-Generation Digital News Publishing Platform withAOSD.
In Proc. of the 8th Int. Conference on Aspect-Oriented Software Development (AOSD), Charlottesvile (Virginia, USA).Demostration.
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 44 / 51
References
Referencias IV
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 45/51
Douence, R., Fradet, P., and Sudholt, M. (2002).A Framework for the Detection and Resolution of Aspect Interactions.
In Batory, D. S., Consel, C., and Taha, W., editors, Proc. of the Int.Conference on Generative Programming and Component Engineering (GPCE), volume 2487 of LNCS , pages 173–188, Pittsburgh,(Pennsylvania, USA).
Douence, R., Fradet, P., and Sudholt, M. (2004).Composition, Reuse and Interaction Analysis of Stateful Aspects.In Proc. of the 3rd Int. Conference on Aspect-Oriented Software Development (AOSD), pages 141–150, Lancaster (UK).
Elrad, T., Aksit, M., Kiczales, G., Lieberherr, K., and Ossher, H.(2001).Discussing Aspects of AOP.Communications of the ACM , 44(10):33–38.
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 45 / 51
References
Referencias V
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 46/51
Filman, R. E., Elrad, T., Clarke, S., and Aksit, M., editors (2004).Aspect-Oriented Software Development .
Addison-Wesley, Boston.
Fuentes, L., Gamez, N., and Sanchez, P. (2009).Aspect-Oriented Design and Implementation of Context-AwarePervasive Applications.
Innovations in Systems and Software Engineering , 5(1):79–93.
Hannemann, J. and Kiczales, G. (2002).Design Pattern Implementation in Java and AspectJ.In Proc. of the 17th Int. Conference on Object-Oriented
Programming, Systems, Languages, and Applications (OOPSLA),pages 161–173, Seattle (Washington, USA).
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 46 / 51
References
Referencias VI
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 47/51
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., andGriswold, W. G. (2001).
An Overview of AspectJ.In Knudsen, J. L., editor, Proc. of the 15th European Conference onObject-Oriented Programming (ECOOP), volume 2072 of Lecture Notes in Computer Science , pages 327–353, Budapest (Hungary).
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C. V.,Loingtier, J.-M., and Irwin, J. (1997).Aspect-Oriented Programming.In Aksit, M. and Matsuoka, S., editors, Proc. of the 11th EuropeanConference on Object-Oriented Programming (ECOOP), volume 1241of Lecture Notes in Computer Science , pages 220–242,Jyvaskyla (Finland).
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 47 / 51
References
Referencias VII
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 48/51
Kienzle, J. and Gelineau, S. (2006).AO challenge - Implementing the ACID properties for Transactional
Objects.In Filman, R. E., editor, Proc. of the 5th Int. Conference onAspect-Oriented Software Development (AOSD), pages 202–213.
Laddad, R. (2001).
I want my AOP!Java World,http://www.javaworld.com/javaworld/jw-01-2002/jw-0118-asp
Ostermann, K. (2008).
Reasoning about Aspects with Common Sense.In D’Hondt, T., editor, Proc. of the 7th Int. Conference onAspect-Oriented Software Development (AOSD), pages 48–59,Brussels (Belgium).
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 48 / 51
References
Referencias VIII
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 49/51
Ostermann, K., Mezini, M., and Bockisch, C. (2005).Expressive Pointcuts for Increased Modularity.
In Black, A. P., editor, Proc. of the 19th European Conference onObject-Oriented Programming (ECOOP), volume 3586 of LNCS ,pages 214–240, Glasgow (UK).
Pinto, M., Fuentes, L., and Troya, J. M. (2005).
A Dynamic Component and Aspect-Oriented Platform.Computer Journal , 48(4):401–420.
Rashid, A., Cottenier, T., Greenwood, P., Chitchyan, R., Meunier, R.,Coelho, R., Sudholt, M., and Joosen, W. (2010).
Aspect-Oriented Software Development in Practice: Tales fromAOSD-Europe.IEEE Computer , 43(2):19–26.
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 49 / 51
References
Referencias IX
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 50/51
Sant’Anna, C., Figueiredo, E., Garcia, A. F., and de Lucena, C. J. P.(2007).
On the Modularity of Software Architectures: A Concern-DrivenMeasurement Framework.In Oquendo, F., editor, Proc. of the 1st European Conference onSoftware Architecture (ECSA), pages 207–224, Aranjuez (Spain).
Suvee, D., Vanderperren, W., and Jonckers, V. (2003).JAsCo: an Aspect-Oriented Approach Tailored for Component-BasedSoftware Development.In Proc. of the 2nd Int. Conference on Aspect-Oriented Software Development (AOSD), pages 21–29, Boston (Massachusetts, USA).
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 50 / 51
Questions
7/28/2019 Seminar i o Aspect Os
http://slidepdf.com/reader/full/seminar-i-o-aspect-os 51/51
Questions ?
Pablo Sanchez (MATESCO) Aspect-Oriented Programming 51 / 51