On the Assessment of Pointcut Design in Evolving Aspect-Oriented Software

643 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
643
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

On the Assessment of Pointcut Design in Evolving Aspect-Oriented Software

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×