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

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

  • 1.
    On the Assessmentof 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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 toAOP 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