basis of crosscutting
description
Transcript of basis of crosscutting
1/14/02 UCSD 1 UBC software modularity group
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
– signatures (plus …)– means of specifying semantics at join points
• in AspectJ– advice– define members
1/14/02 UCSD 2 UBC software modularity group
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 JPMstatic JPM
1/14/02 UCSD 3 UBC software modularity group
range of AOP languages
means of … join points
JPM join points identifying specifying semantics at
AspectJ dynamic JPM
points in execution call, get, set…
signaturesw/ wildcards & other properties of JPs
advice
static JPM class members signatures add members
Composition Filters message sends & receptions
signature & property based object queries
wrappers declarative (filters) imperative (advice)
Hyper/J members signatures add, compose (and remove) members
Demeter traversals when traversal reaches object or edge
class & edge names
define visit method
See next slide for changes to
AspectJ and Demeter
1/14/02 UCSD 4 UBC software modularity group
range of AOP languages
means of … join points
JPM join points identifying specifying semantics at
AspectJ dynamic JPM
points in execution call, get, set…
signaturesw/ wildcards & other properties of JPs
advice
static JPM classes class names add members
Demeter
static JPM 1
static JPM 2
when traversal reaches object or edge
classes
classes
visitor method signatures
traversal spec. sclass graph g
class names
visitor method bodies
add traversal membersbased on s,g
add members
1/14/02 UCSD 5 UBC software modularity group
Composing join point models
• Traversal Spec JPM: In Demeter we use traversal specifications and the class graph to introduce traversal methods to a set of classes.
• Visitor JPM: The result of Traversal Spec. JPM is used to define a second JPM: – The traversal methods define 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.
1/14/02 UCSD 6 UBC software modularity group
• 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]