+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
On the Assessment of Pointcut Design in Evolving Aspect-Oriented Software
1. On the Assessment of Pointcut Design in Evolving
Aspect-Oriented Software1
Raffi Khatchadourian12 Phil Greenwood2 Awais Rashid2
1 Department of Computer Science & Engineering
Ohio State University
Columbus, OH USA
2 Computing Department
Lancaster University
Lancaster UK
Workshop on Assessment of Contemporary Modularization
Techniques, 2008
1
This material is based upon work supported in part by European
Commission grants IST-33710 (AMPLE) and IST-2-004349 (AOSD-Europe).
2
This work was partially administered during this author’s visit to the
Computing Department, Lancaster University, United Kingdom.
2. Brief Introduction to AOP
Problem Statement
Proposal
Example
Conclusion and Future Work
Outline
1 Brief Introduction to AOP
2 Problem Statement
Definitions
3 Proposal
Metrics
Formalism
4 Example
Scenario
Metrics
5 Conclusion and Future Work
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
3. Brief Introduction to AOP
Problem Statement
Proposal
Example
Conclusion and Future Work
Aspect-Oriented Programming
AOP reduces scattering and tangling of crosscutting concern
(CCCs) implementations.
Developer specifies behavior (advice).
Advice is composed at specific execution points (join points).
Join points specified via pointcut expressions (PCEs).
Example
execution(* Foo.*(..))
execution(* Foo.methodA())
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
4. Brief Introduction to AOP
Problem Statement
Proposal
Example
Conclusion and Future Work
Aspect-Oriented Programming
AOP reduces scattering and tangling of crosscutting concern
(CCCs) implementations.
Developer specifies behavior (advice).
Advice is composed at specific execution points (join points).
Join points specified via pointcut expressions (PCEs).
Example
execution(* Foo.*(..))
execution(* Foo.methodA())
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
5. Brief Introduction to AOP
Problem Statement
Proposal
Example
Conclusion and Future Work
Aspect-Oriented Programming
AOP reduces scattering and tangling of crosscutting concern
(CCCs) implementations.
Developer specifies behavior (advice).
Advice is composed at specific execution points (join points).
Join points specified via pointcut expressions (PCEs).
Example
execution(* Foo.*(..))
execution(* Foo.methodA())
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
6. Brief Introduction to AOP
Problem Statement
Proposal
Example
Conclusion and Future Work
Aspect-Oriented Programming
AOP reduces scattering and tangling of crosscutting concern
(CCCs) implementations.
Developer specifies behavior (advice).
Advice is composed at specific execution points (join points).
Join points specified via pointcut expressions (PCEs).
Example
execution(* Foo.*(..))
execution(* Foo.methodA())
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
7. Brief Introduction to AOP
Problem Statement
Proposal
Example
Conclusion and Future Work
Aspect-Oriented Programming
AOP reduces scattering and tangling of crosscutting concern
(CCCs) implementations.
Developer specifies behavior (advice).
Advice is composed at specific execution points (join points).
Join points specified via pointcut expressions (PCEs).
Example
execution(* Foo.*(..))
execution(* Foo.methodA())
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
8. Brief Introduction to AOP
Problem Statement
Proposal
Example
Conclusion and Future Work
Aspect-Oriented Programming
AOP reduces scattering and tangling of crosscutting concern
(CCCs) implementations.
Developer specifies behavior (advice).
Advice is composed at specific execution points (join points).
Join points specified via pointcut expressions (PCEs).
Example
execution(* Foo.*(..))
execution(* Foo.methodA())
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
9. Brief Introduction to AOP
Problem Statement
Proposal Definitions
Example
Conclusion and Future Work
The Problem
Constructing optimal PCEs can be difficult.
Fragile Pointcuts
PCEs should capture correct join points not only in the current
version of the base-code but future versions as well.
Capturing true intentions of where a CCC applies may
alleviate fragility.
PCEs often in terms of low-level programming elements.
High-level specifications must be translated.
Question
Can we measure how well a PCE captures a developer’s intentions?
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
10. Brief Introduction to AOP
Problem Statement
Proposal Definitions
Example
Conclusion and Future Work
The Problem
Constructing optimal PCEs can be difficult.
Fragile Pointcuts
PCEs should capture correct join points not only in the current
version of the base-code but future versions as well.
Capturing true intentions of where a CCC applies may
alleviate fragility.
PCEs often in terms of low-level programming elements.
High-level specifications must be translated.
Question
Can we measure how well a PCE captures a developer’s intentions?
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
11. Brief Introduction to AOP
Problem Statement
Proposal Definitions
Example
Conclusion and Future Work
The Problem
Constructing optimal PCEs can be difficult.
Fragile Pointcuts
PCEs should capture correct join points not only in the current
version of the base-code but future versions as well.
Capturing true intentions of where a CCC applies may
alleviate fragility.
PCEs often in terms of low-level programming elements.
High-level specifications must be translated.
Question
Can we measure how well a PCE captures a developer’s intentions?
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
12. Brief Introduction to AOP
Problem Statement
Proposal Definitions
Example
Conclusion and Future Work
The Problem
Constructing optimal PCEs can be difficult.
Fragile Pointcuts
PCEs should capture correct join points not only in the current
version of the base-code but future versions as well.
Capturing true intentions of where a CCC applies may
alleviate fragility.
PCEs often in terms of low-level programming elements.
High-level specifications must be translated.
Question
Can we measure how well a PCE captures a developer’s intentions?
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
13. Brief Introduction to AOP
Problem Statement
Proposal Definitions
Example
Conclusion and Future Work
The Problem
Constructing optimal PCEs can be difficult.
Fragile Pointcuts
PCEs should capture correct join points not only in the current
version of the base-code but future versions as well.
Capturing true intentions of where a CCC applies may
alleviate fragility.
PCEs often in terms of low-level programming elements.
High-level specifications must be translated.
Question
Can we measure how well a PCE captures a developer’s intentions?
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
14. Brief Introduction to AOP
Problem Statement
Proposal Definitions
Example
Conclusion and Future Work
The Problem
Constructing optimal PCEs can be difficult.
Fragile Pointcuts
PCEs should capture correct join points not only in the current
version of the base-code but future versions as well.
Capturing true intentions of where a CCC applies may
alleviate fragility.
PCEs often in terms of low-level programming elements.
High-level specifications must be translated.
Question
Can we measure how well a PCE captures a developer’s intentions?
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
15. Brief Introduction to AOP
Problem Statement
Proposal Definitions
Example
Conclusion and Future Work
Intentions
“High”-level intention: A natural language description of where
CCC applies.
Example
Advise whenever data is sent over a network connection
Low-level intention: A description of where a CCC applies in terms
of structural program element relationships.
Example
Advise calls to methods that write to field networkConn
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
16. Brief Introduction to AOP
Problem Statement
Proposal Definitions
Example
Conclusion and Future Work
Intentions
“High”-level intention: A natural language description of where
CCC applies.
Example
Advise whenever data is sent over a network connection
Low-level intention: A description of where a CCC applies in terms
of structural program element relationships.
Example
Advise calls to methods that write to field networkConn
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
17. Brief Introduction to AOP
Problem Statement
Proposal Definitions
Example
Conclusion and Future Work
Intentions
“High”-level intention: A natural language description of where
CCC applies.
Example
Advise whenever data is sent over a network connection
Low-level intention: A description of where a CCC applies in terms
of structural program element relationships.
Example
Advise calls to methods that write to field networkConn
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
18. Brief Introduction to AOP
Problem Statement
Proposal Definitions
Example
Conclusion and Future Work
Intentions
“High”-level intention: A natural language description of where
CCC applies.
Example
Advise whenever data is sent over a network connection
Low-level intention: A description of where a CCC applies in terms
of structural program element relationships.
Example
Advise calls to methods that write to field networkConn
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
19. Brief Introduction to AOP
Problem Statement
Proposal Definitions
Example
Conclusion and Future Work
Intentions
“High”-level intention: A natural language description of where
CCC applies.
Example
Advise whenever data is sent over a network connection
Low-level intention: A description of where a CCC applies in terms
of structural program element relationships.
Example
Advise calls to methods that write to field networkConn
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
20. Brief Introduction to AOP
Problem Statement
Proposal Definitions
Example
Conclusion and Future Work
Intentions
“High”-level intention: A natural language description of where
CCC applies.
Example
Advise whenever data is sent over a network connection
Low-level intention: A description of where a CCC applies in terms
of structural program element relationships.
Example
Advise calls to methods that write to field networkConn
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
21. Brief Introduction to AOP
Problem Statement
Proposal Definitions
Example
Conclusion and Future Work
Pointcut Expressions
Join point shadow: Base-code corresponding to a join point.
Pointcut: A set of join point shadows.
Conservative Approach
Assume any dynamic condition always evaluates to true.
Example
execution(* x()) ≡ {C.x() {..}, D.x() {..}}
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
22. Brief Introduction to AOP
Problem Statement
Proposal Definitions
Example
Conclusion and Future Work
Pointcut Expressions
Join point shadow: Base-code corresponding to a join point.
Pointcut: A set of join point shadows.
Conservative Approach
Assume any dynamic condition always evaluates to true.
Example
execution(* x()) ≡ {C.x() {..}, D.x() {..}}
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
23. Brief Introduction to AOP
Problem Statement
Proposal Definitions
Example
Conclusion and Future Work
Pointcut Expressions
Join point shadow: Base-code corresponding to a join point.
Pointcut: A set of join point shadows.
Conservative Approach
Assume any dynamic condition always evaluates to true.
Example
execution(* x()) ≡ {C.x() {..}, D.x() {..}}
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
24. Brief Introduction to AOP
Problem Statement
Proposal Definitions
Example
Conclusion and Future Work
Pointcut Expressions
Join point shadow: Base-code corresponding to a join point.
Pointcut: A set of join point shadows.
Conservative Approach
Assume any dynamic condition always evaluates to true.
Example
execution(* x()) ≡ {C.x() {..}, D.x() {..}}
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
25. Brief Introduction to AOP
Problem Statement
Metrics
Proposal
Formalism
Example
Conclusion and Future Work
Metrics: Two Dimensions
Base-code
Intention
Metric I: Coverage
PCE How well does PCE cover
entire intention?
I
Metric II: Precision
How well does PCE
II capture solely the
intention?
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
26. Brief Introduction to AOP
Problem Statement
Metrics
Proposal
Formalism
Example
Conclusion and Future Work
Metrics: Two Dimensions
Base-code
Intention
Metric I: Coverage
PCE How well does PCE cover
entire intention?
I
Metric II: Precision
How well does PCE
II capture solely the
intention?
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
27. Brief Introduction to AOP
Problem Statement
Metrics
Proposal
Formalism
Example
Conclusion and Future Work
Metrics: Two Dimensions
Base-code
Intention
Metric I: Coverage
PCE How well does PCE cover
entire intention?
I
Metric II: Precision
How well does PCE
II capture solely the
intention?
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
28. Brief Introduction to AOP
Problem Statement
Metrics
Proposal
Formalism
Example
Conclusion and Future Work
Intention Matching Approach
Capture rich program element relationships in a concern
graph[1] adapted for AOP.
Express intentions as patterns over finite, acyclic paths in the
graph.
Apply the patterns to the extended concern graph.
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
29. Brief Introduction to AOP
Problem Statement
Metrics
Proposal
Formalism
Example
Conclusion and Future Work
Intention Matching Approach
Capture rich program element relationships in a concern
graph[1] adapted for AOP.
Express intentions as patterns over finite, acyclic paths in the
graph.
Apply the patterns to the extended concern graph.
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
30. Brief Introduction to AOP
Problem Statement
Metrics
Proposal
Formalism
Example
Conclusion and Future Work
Intention Matching Approach
Capture rich program element relationships in a concern
graph[1] adapted for AOP.
Express intentions as patterns over finite, acyclic paths in the
graph.
Apply the patterns to the extended concern graph.
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
31. Brief Introduction to AOP
Problem Statement
Metrics
Proposal
Formalism
Example
Conclusion and Future Work
Metric Formalisms
Formalism
Apce A pointcut expression
π
ˆ A pattern
+
CG P An extended concern graph
Paths(CG + )
P Finite acyclic paths in CG +
P
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M1 (ˆ , Apce ) =
π
|Apce |
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M2 (ˆ , Apce ) =
π
|Match(ˆ , Paths(CG + ))|
π P
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
32. Brief Introduction to AOP
Problem Statement
Metrics
Proposal
Formalism
Example
Conclusion and Future Work
Metric Formalisms
Formalism
Apce A pointcut expression
π
ˆ A pattern
+
CG P An extended concern graph
Paths(CG + )
P Finite acyclic paths in CG +
P
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M1 (ˆ , Apce ) =
π
|Apce |
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M2 (ˆ , Apce ) =
π
|Match(ˆ , Paths(CG + ))|
π P
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
33. Brief Introduction to AOP
Problem Statement
Metrics
Proposal
Formalism
Example
Conclusion and Future Work
Metric Formalisms
Formalism
Apce A pointcut expression
π
ˆ A pattern
+
CG P An extended concern graph
Paths(CG + )
P Finite acyclic paths in CG +
P
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M1 (ˆ , Apce ) =
π
|Apce |
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M2 (ˆ , Apce ) =
π
|Match(ˆ , Paths(CG + ))|
π P
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
34. Brief Introduction to AOP
Problem Statement
Metrics
Proposal
Formalism
Example
Conclusion and Future Work
Metric Formalisms
Formalism
Apce A pointcut expression
π
ˆ A pattern
+
CG P An extended concern graph
Paths(CG + )
P Finite acyclic paths in CG +
P
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M1 (ˆ , Apce ) =
π
|Apce |
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M2 (ˆ , Apce ) =
π
|Match(ˆ , Paths(CG + ))|
π P
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
35. Brief Introduction to AOP
Problem Statement
Metrics
Proposal
Formalism
Example
Conclusion and Future Work
Metric Formalisms
Formalism
Apce A pointcut expression
π
ˆ A pattern
+
CG P An extended concern graph
Paths(CG + )
P Finite acyclic paths in CG +
P
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M1 (ˆ , Apce ) =
π
|Apce |
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M2 (ˆ , Apce ) =
π
|Match(ˆ , Paths(CG + ))|
π P
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
36. Brief Introduction to AOP
Problem Statement
Metrics
Proposal
Formalism
Example
Conclusion and Future Work
Metric Formalisms
Formalism
Apce A pointcut expression
π
ˆ A pattern
+
CG P An extended concern graph
Paths(CG + )
P Finite acyclic paths in CG +
P
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M1 (ˆ , Apce ) =
π
|Apce |
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M2 (ˆ , Apce ) =
π
|Match(ˆ , Paths(CG + ))|
π P
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
37. Brief Introduction to AOP
Problem Statement
Metrics
Proposal
Formalism
Example
Conclusion and Future Work
Metric Formalisms
Formalism
Apce A pointcut expression
π
ˆ A pattern
+
CG P An extended concern graph
Paths(CG + )
P Finite acyclic paths in CG +
P
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M1 (ˆ , Apce ) =
π
|Apce |
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M2 (ˆ , Apce ) =
π
|Match(ˆ , Paths(CG + ))|
π P
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
38. Brief Introduction to AOP
Problem Statement
Metrics
Proposal
Formalism
Example
Conclusion and Future Work
Metric Formalisms
Formalism
Apce A pointcut expression
π
ˆ A pattern
+
CG P An extended concern graph
Paths(CG + )
P Finite acyclic paths in CG +
P
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M1 (ˆ , Apce ) =
π
|Apce |
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M2 (ˆ , Apce ) =
π
|Match(ˆ , Paths(CG + ))|
π P
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
39. Brief Introduction to AOP
Problem Statement
Metrics
Proposal
Formalism
Example
Conclusion and Future Work
Metric Formalisms
Formalism
Apce A pointcut expression
π
ˆ A pattern
+
CG P An extended concern graph
Paths(CG + )
P Finite acyclic paths in CG +
P
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M1 (ˆ , Apce ) =
π
|Apce |
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M2 (ˆ , Apce ) =
π
|Match(ˆ , Paths(CG + ))|
π P
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
40. Brief Introduction to AOP
Problem Statement
Metrics
Proposal
Formalism
Example
Conclusion and Future Work
Metric Formalisms
Formalism
Apce A pointcut expression
π
ˆ A pattern
+
CG P An extended concern graph
Paths(CG + )
P Finite acyclic paths in CG +
P
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M1 (ˆ , Apce ) =
π
|Apce |
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M2 (ˆ , Apce ) =
π
|Match(ˆ , Paths(CG + ))|
π P
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
41. Brief Introduction to AOP
Problem Statement
Metrics
Proposal
Formalism
Example
Conclusion and Future Work
Metric Formalisms
Formalism
Apce A pointcut expression
π
ˆ A pattern
+
CG P An extended concern graph
Paths(CG + )
P Finite acyclic paths in CG +
P
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M1 (ˆ , Apce ) =
π
|Apce |
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M2 (ˆ , Apce ) =
π
|Match(ˆ , Paths(CG + ))|
π P
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
42. Brief Introduction to AOP
Problem Statement
Metrics
Proposal
Formalism
Example
Conclusion and Future Work
Metric Formalisms
Formalism
Apce A pointcut expression
π
ˆ A pattern
+
CG P An extended concern graph
Paths(CG + )
P Finite acyclic paths in CG +
P
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M1 (ˆ , Apce ) =
π
|Apce |
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M2 (ˆ , Apce ) =
π
|Match(ˆ , Paths(CG + ))|
π P
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
43. Brief Introduction to AOP
Problem Statement
Metrics
Proposal
Formalism
Example
Conclusion and Future Work
Metric Formalisms
Formalism
Apce A pointcut expression
π
ˆ A pattern
+
CG P An extended concern graph
Paths(CG + )
P Finite acyclic paths in CG +
P
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M1 (ˆ , Apce ) =
π
|Apce |
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M2 (ˆ , Apce ) =
π
|Match(ˆ , Paths(CG + ))|
π P
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
44. Brief Introduction to AOP
Problem Statement
Scenario
Proposal
Metrics
Example
Conclusion and Future Work
Base-code
package p ;
public class A {
int f ;
void m1 () {
int a = f + 1;
}
void m2 () {
int b = f + 2;
}
void n () {
int c = f + 3;
}
}
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
45. Brief Introduction to AOP
Problem Statement
Scenario
Proposal
Metrics
Example
Conclusion and Future Work
Concern Graph
p
contains
A
declares_method declares_method declares_method
A.m2() declares_field A.n() A.m1()
gets_field gets_field gets_field
A.f
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
46. Brief Introduction to AOP
Problem Statement
Scenario
Proposal
Metrics
Example
Conclusion and Future Work
An Intention
Low-level Intention of where CCC Applies
To advise all method executions that read from field A.f
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
47. Brief Introduction to AOP
Problem Statement
Scenario
Proposal
Metrics
Example
Conclusion and Future Work
An Aspect
package p ;
public aspect B {
before () : execution (* m *(..) ) {
}
}
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
48. Brief Introduction to AOP
Problem Statement
Scenario
Proposal
Metrics
Example
Conclusion and Future Work
Concern Graph
p
contains
A
declares_method declares_method declares_method
A.m2() declares_field A.n() A.m1()
gets_field gets_field gets_field
A.f
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
49. Brief Introduction to AOP
Problem Statement
Scenario
Proposal
Metrics
Example
Conclusion and Future Work
Metric M1
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M1 (ˆ , Apce ) =
π
|Apce |
|{A.m1(), A.m2()} ∩ {A.m1(), A.m2(), A.n()}|
=
|{A.m1(), A.m2()}|
= 1
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
50. Brief Introduction to AOP
Problem Statement
Scenario
Proposal
Metrics
Example
Conclusion and Future Work
Metric M1
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M1 (ˆ , Apce ) =
π
|Apce |
|{A.m1(), A.m2()} ∩ {A.m1(), A.m2(), A.n()}|
=
|{A.m1(), A.m2()}|
= 1
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
51. Brief Introduction to AOP
Problem Statement
Scenario
Proposal
Metrics
Example
Conclusion and Future Work
Metric M1
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M1 (ˆ , Apce ) =
π
|Apce |
|{A.m1(), A.m2()} ∩ {A.m1(), A.m2(), A.n()}|
=
|{A.m1(), A.m2()}|
= 1
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
52. Brief Introduction to AOP
Problem Statement
Scenario
Proposal
Metrics
Example
Conclusion and Future Work
Metric M2
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M2 (ˆ , Apce ) =
π
|Match(ˆ , Paths(CG + ))|
π P
|{A.m1(), A.m2()} ∩ {A.m1(), A.m2(), A.n()}|
=
|{A.m1(), A.m2(), A.n()}|
2
=
3
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
53. Brief Introduction to AOP
Problem Statement
Scenario
Proposal
Metrics
Example
Conclusion and Future Work
Metric M2
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M2 (ˆ , Apce ) =
π
|Match(ˆ , Paths(CG + ))|
π P
|{A.m1(), A.m2()} ∩ {A.m1(), A.m2(), A.n()}|
=
|{A.m1(), A.m2(), A.n()}|
2
=
3
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
54. Brief Introduction to AOP
Problem Statement
Scenario
Proposal
Metrics
Example
Conclusion and Future Work
Metric M2
|Apce ∩ Match(ˆ , Paths(CG + ))|
π P
M2 (ˆ , Apce ) =
π
|Match(ˆ , Paths(CG + ))|
π P
|{A.m1(), A.m2()} ∩ {A.m1(), A.m2(), A.n()}|
=
|{A.m1(), A.m2(), A.n()}|
2
=
3
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
55. Brief Introduction to AOP
Problem Statement
Proposal
Example
Conclusion and Future Work
Conclusion
Capturing true intentions of where a CCC applies may
alleviate fragility.
Would like to measure how well a PCE captures a developer’s
intentions.
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
56. Brief Introduction to AOP
Problem Statement
Proposal
Example
Conclusion and Future Work
Conclusion
Capturing true intentions of where a CCC applies may
alleviate fragility.
Would like to measure how well a PCE captures a developer’s
intentions.
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
57. Brief Introduction to AOP
Problem Statement
Proposal
Example
Conclusion and Future Work
Future Work
Automatic inference of low-level intentions from high-level
ones?
How to encode all high-level intentions?
Do metrics help alleviate fragility?
Implementation/evaluation.
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
58. Brief Introduction to AOP
Problem Statement
Proposal
Example
Conclusion and Future Work
Future Work
Automatic inference of low-level intentions from high-level
ones?
How to encode all high-level intentions?
Do metrics help alleviate fragility?
Implementation/evaluation.
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
59. Brief Introduction to AOP
Problem Statement
Proposal
Example
Conclusion and Future Work
Future Work
Automatic inference of low-level intentions from high-level
ones?
How to encode all high-level intentions?
Do metrics help alleviate fragility?
Implementation/evaluation.
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
60. Brief Introduction to AOP
Problem Statement
Proposal
Example
Conclusion and Future Work
Future Work
Automatic inference of low-level intentions from high-level
ones?
How to encode all high-level intentions?
Do metrics help alleviate fragility?
Implementation/evaluation.
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software
61. Brief Introduction to AOP
Problem Statement
Proposal
Example
Conclusion and Future Work
References
M. P. Robillard and G. C. Murphy.
Concern graphs: finding and describing concerns using
structural program dependencies.
In International Conference on Software Engineering, 2002.
Raffi Khatchadourian, Phil Greenwood, Awais Rashid On the Assessment of Pointcut Design in AO Software