SlideShare una empresa de Scribd logo
1 de 61
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Announcement Letter Synopsys Summer Internship Program
Announcement Letter Synopsys Summer Internship ProgramAnnouncement Letter Synopsys Summer Internship Program
Announcement Letter Synopsys Summer Internship Programchairperson
 
Code Craftsmanship Checklist
Code Craftsmanship ChecklistCode Craftsmanship Checklist
Code Craftsmanship ChecklistRyan Polk
 
Managing eLearning Projects
Managing eLearning ProjectsManaging eLearning Projects
Managing eLearning ProjectsGus Prestera
 
Defence: A multi-dimensional compositional approach for business process (sem...
Defence: A multi-dimensional compositional approach for business process (sem...Defence: A multi-dimensional compositional approach for business process (sem...
Defence: A multi-dimensional compositional approach for business process (sem...Ang Chen
 
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)siouxhotornot
 
BC: Improvement of Knowledge Sourcing and Provision
BC: Improvement of Knowledge Sourcing and ProvisionBC: Improvement of Knowledge Sourcing and Provision
BC: Improvement of Knowledge Sourcing and Provisionjscheuring
 
Business Process Modeling Notation Fundamentals
Business Process Modeling Notation FundamentalsBusiness Process Modeling Notation Fundamentals
Business Process Modeling Notation FundamentalsMustafa Jarrar
 
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)siouxhotornot
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architecturesMajong DevJfu
 
Applying UML and Patterns (CH1, 6, 9, 10)
Applying UML and Patterns (CH1, 6, 9, 10)Applying UML and Patterns (CH1, 6, 9, 10)
Applying UML and Patterns (CH1, 6, 9, 10)Jamie (Taka) Wang
 
Togaf 9 template architecture vision
Togaf 9 template   architecture visionTogaf 9 template   architecture vision
Togaf 9 template architecture visionKris Manzera
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingtuanvu8292
 
2012 icse program comprehension
2012 icse program comprehension2012 icse program comprehension
2012 icse program comprehensionWalid Maalej
 
Scr Position Paper For Chi 04 Workshop
Scr Position Paper For Chi 04 WorkshopScr Position Paper For Chi 04 Workshop
Scr Position Paper For Chi 04 WorkshopArnold Rudorfer
 
Letters of Intent
Letters of IntentLetters of Intent
Letters of Intentcrysatal16
 
Ba course content intensive
Ba course content intensiveBa course content intensive
Ba course content intensiveCGI Federal
 

La actualidad más candente (20)

Bdd Introduction
Bdd IntroductionBdd Introduction
Bdd Introduction
 
Announcement Letter Synopsys Summer Internship Program
Announcement Letter Synopsys Summer Internship ProgramAnnouncement Letter Synopsys Summer Internship Program
Announcement Letter Synopsys Summer Internship Program
 
5 Quality
5 Quality5 Quality
5 Quality
 
Code Craftsmanship Checklist
Code Craftsmanship ChecklistCode Craftsmanship Checklist
Code Craftsmanship Checklist
 
Managing eLearning Projects
Managing eLearning ProjectsManaging eLearning Projects
Managing eLearning Projects
 
Mdestypicalgoodbad
MdestypicalgoodbadMdestypicalgoodbad
Mdestypicalgoodbad
 
Defence: A multi-dimensional compositional approach for business process (sem...
Defence: A multi-dimensional compositional approach for business process (sem...Defence: A multi-dimensional compositional approach for business process (sem...
Defence: A multi-dimensional compositional approach for business process (sem...
 
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
 
BC: Improvement of Knowledge Sourcing and Provision
BC: Improvement of Knowledge Sourcing and ProvisionBC: Improvement of Knowledge Sourcing and Provision
BC: Improvement of Knowledge Sourcing and Provision
 
Business Process Modeling Notation Fundamentals
Business Process Modeling Notation FundamentalsBusiness Process Modeling Notation Fundamentals
Business Process Modeling Notation Fundamentals
 
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architectures
 
Applying UML and Patterns (CH1, 6, 9, 10)
Applying UML and Patterns (CH1, 6, 9, 10)Applying UML and Patterns (CH1, 6, 9, 10)
Applying UML and Patterns (CH1, 6, 9, 10)
 
Togaf 9 template architecture vision
Togaf 9 template   architecture visionTogaf 9 template   architecture vision
Togaf 9 template architecture vision
 
D11 Define Review
D11 Define ReviewD11 Define Review
D11 Define Review
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
2012 icse program comprehension
2012 icse program comprehension2012 icse program comprehension
2012 icse program comprehension
 
Scr Position Paper For Chi 04 Workshop
Scr Position Paper For Chi 04 WorkshopScr Position Paper For Chi 04 Workshop
Scr Position Paper For Chi 04 Workshop
 
Letters of Intent
Letters of IntentLetters of Intent
Letters of Intent
 
Ba course content intensive
Ba course content intensiveBa course content intensive
Ba course content intensive
 

Destacado

The Case For Open Source Charity
The Case For Open Source CharityThe Case For Open Source Charity
The Case For Open Source Charityopen source Charity
 
Who lives in a house like this gr
Who lives in a house like this grWho lives in a house like this gr
Who lives in a house like this grdimgaloutzis1
 
Great Paintings
Great PaintingsGreat Paintings
Great Paintings***
 
Turgutreis
TurgutreisTurgutreis
Turgutreis***
 
Health Quality AND Patient & Family Rights
Health Quality AND Patient & Family RightsHealth Quality AND Patient & Family Rights
Health Quality AND Patient & Family RightsGamal ElDin Soliman
 
JCI SQE Standards by Dr.Mahboob ali khan
JCI SQE Standards by Dr.Mahboob ali khan JCI SQE Standards by Dr.Mahboob ali khan
JCI SQE Standards by Dr.Mahboob ali khan Healthcare consultant
 
Managing Patient & Family Rights and Responsibilities
Managing Patient & Family Rights and Responsibilities  Managing Patient & Family Rights and Responsibilities
Managing Patient & Family Rights and Responsibilities Ahmad Thanin
 
Chapter 2 Patient Safety and Risk Management
Chapter 2 Patient Safety and Risk ManagementChapter 2 Patient Safety and Risk Management
Chapter 2 Patient Safety and Risk Managementczvelasco4248
 
JCI Chapter Management
JCI Chapter ManagementJCI Chapter Management
JCI Chapter Managementnstoll
 
International patient safety rems lecture
International patient safety rems lectureInternational patient safety rems lecture
International patient safety rems lectureMEEQAT HOSPITAL
 
Accreditation standards for Ayurveda Hospitals
Accreditation standards for Ayurveda HospitalsAccreditation standards for Ayurveda Hospitals
Accreditation standards for Ayurveda HospitalsDr.Surendra Chaudhary
 
Access to care and continuity of care
Access to care and continuity of careAccess to care and continuity of care
Access to care and continuity of careDralaa Holiel , Ph.D
 
Quality Management Orientation Program
Quality Management Orientation ProgramQuality Management Orientation Program
Quality Management Orientation ProgramKaye Tacuel, RN
 

Destacado (20)

The Case For Open Source Charity
The Case For Open Source CharityThe Case For Open Source Charity
The Case For Open Source Charity
 
Who lives in a house like this gr
Who lives in a house like this grWho lives in a house like this gr
Who lives in a house like this gr
 
Great Paintings
Great PaintingsGreat Paintings
Great Paintings
 
Cheryl davenport-presentation-(leics-hwb)-final
Cheryl davenport-presentation-(leics-hwb)-finalCheryl davenport-presentation-(leics-hwb)-final
Cheryl davenport-presentation-(leics-hwb)-final
 
Turgutreis
TurgutreisTurgutreis
Turgutreis
 
Info2india
Info2indiaInfo2india
Info2india
 
Health Quality AND Patient & Family Rights
Health Quality AND Patient & Family RightsHealth Quality AND Patient & Family Rights
Health Quality AND Patient & Family Rights
 
JCI SQE Standards by Dr.Mahboob ali khan
JCI SQE Standards by Dr.Mahboob ali khan JCI SQE Standards by Dr.Mahboob ali khan
JCI SQE Standards by Dr.Mahboob ali khan
 
Managing Patient & Family Rights and Responsibilities
Managing Patient & Family Rights and Responsibilities  Managing Patient & Family Rights and Responsibilities
Managing Patient & Family Rights and Responsibilities
 
Chapter 2 Patient Safety and Risk Management
Chapter 2 Patient Safety and Risk ManagementChapter 2 Patient Safety and Risk Management
Chapter 2 Patient Safety and Risk Management
 
JCI Chapter Management
JCI Chapter ManagementJCI Chapter Management
JCI Chapter Management
 
Ipsg
IpsgIpsg
Ipsg
 
International patient safety rems lecture
International patient safety rems lectureInternational patient safety rems lecture
International patient safety rems lecture
 
International patient safety goals
International patient safety goals International patient safety goals
International patient safety goals
 
Professional CV
Professional CVProfessional CV
Professional CV
 
Risk management
Risk managementRisk management
Risk management
 
Accreditation standards for Ayurveda Hospitals
Accreditation standards for Ayurveda HospitalsAccreditation standards for Ayurveda Hospitals
Accreditation standards for Ayurveda Hospitals
 
Access to care and continuity of care
Access to care and continuity of careAccess to care and continuity of care
Access to care and continuity of care
 
JCIA 5th edition key elements
JCIA 5th edition key elementsJCIA 5th edition key elements
JCIA 5th edition key elements
 
Quality Management Orientation Program
Quality Management Orientation ProgramQuality Management Orientation Program
Quality Management Orientation Program
 

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

Rejuvenate Pointcut: A Tool for Pointcut Expression Recovery in Evolving Aspe...
Rejuvenate Pointcut: A Tool for Pointcut Expression Recovery in Evolving Aspe...Rejuvenate Pointcut: A Tool for Pointcut Expression Recovery in Evolving Aspe...
Rejuvenate Pointcut: A Tool for Pointcut Expression Recovery in Evolving Aspe...Raffi Khatchadourian
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)stanbridge
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)stanbridge
 
Pnp Agile Tech Ed India
Pnp Agile Tech Ed IndiaPnp Agile Tech Ed India
Pnp Agile Tech Ed Indiarsnarayanan
 
Organizing Design-Driven Development Using Rational Requirements Composer
Organizing Design-Driven Development Using Rational Requirements ComposerOrganizing Design-Driven Development Using Rational Requirements Composer
Organizing Design-Driven Development Using Rational Requirements ComposerKurt Solarte
 
Aspect Oriented Software Development
Aspect Oriented Software DevelopmentAspect Oriented Software Development
Aspect Oriented Software DevelopmentJignesh Patel
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_contextMajong DevJfu
 
CodeValue Architecture Next 2018 - Executive track dilemmas and solutions in...
CodeValue Architecture Next 2018 - Executive track  dilemmas and solutions in...CodeValue Architecture Next 2018 - Executive track  dilemmas and solutions in...
CodeValue Architecture Next 2018 - Executive track dilemmas and solutions in...Erez PEDRO
 
An Introduction to Software Performance Engineering
An Introduction to Software Performance EngineeringAn Introduction to Software Performance Engineering
An Introduction to Software Performance EngineeringCorrelsense
 
Introducing CMMI and REQM/RD
Introducing CMMI and REQM/RDIntroducing CMMI and REQM/RD
Introducing CMMI and REQM/RDMihai Dan Nadas
 
A Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere toolsA Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere toolsProlifics
 
02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt02_Architectures_In_Context.ppt
02_Architectures_In_Context.pptRohanBorgalli
 
Resume: DevOps/Technology Architect - Satya Prakash
Resume: DevOps/Technology Architect   -  Satya PrakashResume: DevOps/Technology Architect   -  Satya Prakash
Resume: DevOps/Technology Architect - Satya PrakashSatyaPrakash454
 
Chapter # 1.pdf
Chapter # 1.pdfChapter # 1.pdf
Chapter # 1.pdfUmar Riaz
 
Enhancing the Software Effort Prediction Accuracy using Reduced Number of Cos...
Enhancing the Software Effort Prediction Accuracy using Reduced Number of Cos...Enhancing the Software Effort Prediction Accuracy using Reduced Number of Cos...
Enhancing the Software Effort Prediction Accuracy using Reduced Number of Cos...IRJET Journal
 
Software development lifecycle_release_management
Software development lifecycle_release_managementSoftware development lifecycle_release_management
Software development lifecycle_release_managementnetdbncku
 

Similar a On the Assessment of Pointcut Design in Evolving Aspect-Oriented Software (20)

Rejuvenate Pointcut: A Tool for Pointcut Expression Recovery in Evolving Aspe...
Rejuvenate Pointcut: A Tool for Pointcut Expression Recovery in Evolving Aspe...Rejuvenate Pointcut: A Tool for Pointcut Expression Recovery in Evolving Aspe...
Rejuvenate Pointcut: A Tool for Pointcut Expression Recovery in Evolving Aspe...
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)
 
Pnp Agile Tech Ed India
Pnp Agile Tech Ed IndiaPnp Agile Tech Ed India
Pnp Agile Tech Ed India
 
PLM - ERP integration
PLM - ERP integrationPLM - ERP integration
PLM - ERP integration
 
Organizing Design-Driven Development Using Rational Requirements Composer
Organizing Design-Driven Development Using Rational Requirements ComposerOrganizing Design-Driven Development Using Rational Requirements Composer
Organizing Design-Driven Development Using Rational Requirements Composer
 
Aspect Oriented Software Development
Aspect Oriented Software DevelopmentAspect Oriented Software Development
Aspect Oriented Software Development
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
 
CodeValue Architecture Next 2018 - Executive track dilemmas and solutions in...
CodeValue Architecture Next 2018 - Executive track  dilemmas and solutions in...CodeValue Architecture Next 2018 - Executive track  dilemmas and solutions in...
CodeValue Architecture Next 2018 - Executive track dilemmas and solutions in...
 
An Introduction to Software Performance Engineering
An Introduction to Software Performance EngineeringAn Introduction to Software Performance Engineering
An Introduction to Software Performance Engineering
 
Introducing CMMI and REQM/RD
Introducing CMMI and REQM/RDIntroducing CMMI and REQM/RD
Introducing CMMI and REQM/RD
 
A Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere toolsA Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere tools
 
02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt
 
Resume: DevOps/Technology Architect - Satya Prakash
Resume: DevOps/Technology Architect   -  Satya PrakashResume: DevOps/Technology Architect   -  Satya Prakash
Resume: DevOps/Technology Architect - Satya Prakash
 
Sunanda_Nemala
Sunanda_NemalaSunanda_Nemala
Sunanda_Nemala
 
Chapter # 1.pdf
Chapter # 1.pdfChapter # 1.pdf
Chapter # 1.pdf
 
Feasible
FeasibleFeasible
Feasible
 
Enhancing the Software Effort Prediction Accuracy using Reduced Number of Cos...
Enhancing the Software Effort Prediction Accuracy using Reduced Number of Cos...Enhancing the Software Effort Prediction Accuracy using Reduced Number of Cos...
Enhancing the Software Effort Prediction Accuracy using Reduced Number of Cos...
 
CV_Venkatesh_Vaikunthe
CV_Venkatesh_VaikuntheCV_Venkatesh_Vaikunthe
CV_Venkatesh_Vaikunthe
 
Software development lifecycle_release_management
Software development lifecycle_release_managementSoftware development lifecycle_release_management
Software development lifecycle_release_management
 

Más de Raffi Khatchadourian

Towards Safe Automated Refactoring of Imperative Deep Learning Programs to Gr...
Towards Safe Automated Refactoring of Imperative Deep Learning Programs to Gr...Towards Safe Automated Refactoring of Imperative Deep Learning Programs to Gr...
Towards Safe Automated Refactoring of Imperative Deep Learning Programs to Gr...Raffi Khatchadourian
 
Automated Evolution of Feature Logging Statement Levels Using Git Histories a...
Automated Evolution of Feature Logging Statement Levels Using Git Histories a...Automated Evolution of Feature Logging Statement Levels Using Git Histories a...
Automated Evolution of Feature Logging Statement Levels Using Git Histories a...Raffi Khatchadourian
 
A Tool for Rejuvenating Feature Logging Levels via Git Histories and Degree o...
A Tool for Rejuvenating Feature Logging Levels via Git Histories and Degree o...A Tool for Rejuvenating Feature Logging Levels via Git Histories and Degree o...
A Tool for Rejuvenating Feature Logging Levels via Git Histories and Degree o...Raffi Khatchadourian
 
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...Raffi Khatchadourian
 
Actor Concurrency Bugs: A Comprehensive Study on Symptoms, Root Causes, API U...
Actor Concurrency Bugs: A Comprehensive Study on Symptoms, Root Causes, API U...Actor Concurrency Bugs: A Comprehensive Study on Symptoms, Root Causes, API U...
Actor Concurrency Bugs: A Comprehensive Study on Symptoms, Root Causes, API U...Raffi Khatchadourian
 
An Empirical Study of Refactorings and Technical Debt in Machine Learning Sys...
An Empirical Study of Refactorings and Technical Debt in Machine Learning Sys...An Empirical Study of Refactorings and Technical Debt in Machine Learning Sys...
An Empirical Study of Refactorings and Technical Debt in Machine Learning Sys...Raffi Khatchadourian
 
Automated Evolution of Feature Logging Statement Levels Using Git Histories a...
Automated Evolution of Feature Logging Statement Levels Using Git Histories a...Automated Evolution of Feature Logging Statement Levels Using Git Histories a...
Automated Evolution of Feature Logging Statement Levels Using Git Histories a...Raffi Khatchadourian
 
An Empirical Study on the Use and Misuse of Java 8 Streams
An Empirical Study on the Use and Misuse of Java 8 StreamsAn Empirical Study on the Use and Misuse of Java 8 Streams
An Empirical Study on the Use and Misuse of Java 8 StreamsRaffi Khatchadourian
 
Safe Automated Refactoring for Intelligent Parallelization of Java 8 Streams
Safe Automated Refactoring for Intelligent Parallelization of Java 8 StreamsSafe Automated Refactoring for Intelligent Parallelization of Java 8 Streams
Safe Automated Refactoring for Intelligent Parallelization of Java 8 StreamsRaffi Khatchadourian
 
Safe Automated Refactoring for Intelligent Parallelization of Java 8 Streams
Safe Automated Refactoring for Intelligent Parallelization of Java 8 StreamsSafe Automated Refactoring for Intelligent Parallelization of Java 8 Streams
Safe Automated Refactoring for Intelligent Parallelization of Java 8 StreamsRaffi Khatchadourian
 
A Brief Introduction to Type Constraints
A Brief Introduction to Type ConstraintsA Brief Introduction to Type Constraints
A Brief Introduction to Type ConstraintsRaffi Khatchadourian
 
Safe Automated Refactoring for Intelligent Parallelization of Java 8 Streams ...
Safe Automated Refactoring for Intelligent Parallelization of Java 8 Streams ...Safe Automated Refactoring for Intelligent Parallelization of Java 8 Streams ...
Safe Automated Refactoring for Intelligent Parallelization of Java 8 Streams ...Raffi Khatchadourian
 
A Tool for Optimizing Java 8 Stream Software via Automated Refactoring
A Tool for Optimizing Java 8 Stream Software via Automated RefactoringA Tool for Optimizing Java 8 Stream Software via Automated Refactoring
A Tool for Optimizing Java 8 Stream Software via Automated RefactoringRaffi Khatchadourian
 
Porting the NetBeans Java 8 Enhanced For Loop Lambda Expression Refactoring t...
Porting the NetBeans Java 8 Enhanced For Loop Lambda Expression Refactoring t...Porting the NetBeans Java 8 Enhanced For Loop Lambda Expression Refactoring t...
Porting the NetBeans Java 8 Enhanced For Loop Lambda Expression Refactoring t...Raffi Khatchadourian
 
Towards Safe Refactoring for Intelligent Parallelization of Java 8 Streams
Towards Safe Refactoring for Intelligent Parallelization of Java 8 StreamsTowards Safe Refactoring for Intelligent Parallelization of Java 8 Streams
Towards Safe Refactoring for Intelligent Parallelization of Java 8 StreamsRaffi Khatchadourian
 
Proactive Empirical Assessment of New Language Feature Adoption via Automated...
Proactive Empirical Assessment of New Language Feature Adoption via Automated...Proactive Empirical Assessment of New Language Feature Adoption via Automated...
Proactive Empirical Assessment of New Language Feature Adoption via Automated...Raffi Khatchadourian
 
Defaultification Refactoring: A Tool for Automatically Converting Java Method...
Defaultification Refactoring: A Tool for Automatically Converting Java Method...Defaultification Refactoring: A Tool for Automatically Converting Java Method...
Defaultification Refactoring: A Tool for Automatically Converting Java Method...Raffi Khatchadourian
 
Defaultification Refactoring: A Tool for Automatically Converting Java Method...
Defaultification Refactoring: A Tool for Automatically Converting Java Method...Defaultification Refactoring: A Tool for Automatically Converting Java Method...
Defaultification Refactoring: A Tool for Automatically Converting Java Method...Raffi Khatchadourian
 
Automated Refactoring of Legacy Java Software to Default Methods Talk at ICSE...
Automated Refactoring of Legacy Java Software to Default Methods Talk at ICSE...Automated Refactoring of Legacy Java Software to Default Methods Talk at ICSE...
Automated Refactoring of Legacy Java Software to Default Methods Talk at ICSE...Raffi Khatchadourian
 
Poster on Automated Refactoring of Legacy Java Software to Default Methods
Poster on Automated Refactoring of Legacy Java Software to Default MethodsPoster on Automated Refactoring of Legacy Java Software to Default Methods
Poster on Automated Refactoring of Legacy Java Software to Default MethodsRaffi Khatchadourian
 

Más de Raffi Khatchadourian (20)

Towards Safe Automated Refactoring of Imperative Deep Learning Programs to Gr...
Towards Safe Automated Refactoring of Imperative Deep Learning Programs to Gr...Towards Safe Automated Refactoring of Imperative Deep Learning Programs to Gr...
Towards Safe Automated Refactoring of Imperative Deep Learning Programs to Gr...
 
Automated Evolution of Feature Logging Statement Levels Using Git Histories a...
Automated Evolution of Feature Logging Statement Levels Using Git Histories a...Automated Evolution of Feature Logging Statement Levels Using Git Histories a...
Automated Evolution of Feature Logging Statement Levels Using Git Histories a...
 
A Tool for Rejuvenating Feature Logging Levels via Git Histories and Degree o...
A Tool for Rejuvenating Feature Logging Levels via Git Histories and Degree o...A Tool for Rejuvenating Feature Logging Levels via Git Histories and Degree o...
A Tool for Rejuvenating Feature Logging Levels via Git Histories and Degree o...
 
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
 
Actor Concurrency Bugs: A Comprehensive Study on Symptoms, Root Causes, API U...
Actor Concurrency Bugs: A Comprehensive Study on Symptoms, Root Causes, API U...Actor Concurrency Bugs: A Comprehensive Study on Symptoms, Root Causes, API U...
Actor Concurrency Bugs: A Comprehensive Study on Symptoms, Root Causes, API U...
 
An Empirical Study of Refactorings and Technical Debt in Machine Learning Sys...
An Empirical Study of Refactorings and Technical Debt in Machine Learning Sys...An Empirical Study of Refactorings and Technical Debt in Machine Learning Sys...
An Empirical Study of Refactorings and Technical Debt in Machine Learning Sys...
 
Automated Evolution of Feature Logging Statement Levels Using Git Histories a...
Automated Evolution of Feature Logging Statement Levels Using Git Histories a...Automated Evolution of Feature Logging Statement Levels Using Git Histories a...
Automated Evolution of Feature Logging Statement Levels Using Git Histories a...
 
An Empirical Study on the Use and Misuse of Java 8 Streams
An Empirical Study on the Use and Misuse of Java 8 StreamsAn Empirical Study on the Use and Misuse of Java 8 Streams
An Empirical Study on the Use and Misuse of Java 8 Streams
 
Safe Automated Refactoring for Intelligent Parallelization of Java 8 Streams
Safe Automated Refactoring for Intelligent Parallelization of Java 8 StreamsSafe Automated Refactoring for Intelligent Parallelization of Java 8 Streams
Safe Automated Refactoring for Intelligent Parallelization of Java 8 Streams
 
Safe Automated Refactoring for Intelligent Parallelization of Java 8 Streams
Safe Automated Refactoring for Intelligent Parallelization of Java 8 StreamsSafe Automated Refactoring for Intelligent Parallelization of Java 8 Streams
Safe Automated Refactoring for Intelligent Parallelization of Java 8 Streams
 
A Brief Introduction to Type Constraints
A Brief Introduction to Type ConstraintsA Brief Introduction to Type Constraints
A Brief Introduction to Type Constraints
 
Safe Automated Refactoring for Intelligent Parallelization of Java 8 Streams ...
Safe Automated Refactoring for Intelligent Parallelization of Java 8 Streams ...Safe Automated Refactoring for Intelligent Parallelization of Java 8 Streams ...
Safe Automated Refactoring for Intelligent Parallelization of Java 8 Streams ...
 
A Tool for Optimizing Java 8 Stream Software via Automated Refactoring
A Tool for Optimizing Java 8 Stream Software via Automated RefactoringA Tool for Optimizing Java 8 Stream Software via Automated Refactoring
A Tool for Optimizing Java 8 Stream Software via Automated Refactoring
 
Porting the NetBeans Java 8 Enhanced For Loop Lambda Expression Refactoring t...
Porting the NetBeans Java 8 Enhanced For Loop Lambda Expression Refactoring t...Porting the NetBeans Java 8 Enhanced For Loop Lambda Expression Refactoring t...
Porting the NetBeans Java 8 Enhanced For Loop Lambda Expression Refactoring t...
 
Towards Safe Refactoring for Intelligent Parallelization of Java 8 Streams
Towards Safe Refactoring for Intelligent Parallelization of Java 8 StreamsTowards Safe Refactoring for Intelligent Parallelization of Java 8 Streams
Towards Safe Refactoring for Intelligent Parallelization of Java 8 Streams
 
Proactive Empirical Assessment of New Language Feature Adoption via Automated...
Proactive Empirical Assessment of New Language Feature Adoption via Automated...Proactive Empirical Assessment of New Language Feature Adoption via Automated...
Proactive Empirical Assessment of New Language Feature Adoption via Automated...
 
Defaultification Refactoring: A Tool for Automatically Converting Java Method...
Defaultification Refactoring: A Tool for Automatically Converting Java Method...Defaultification Refactoring: A Tool for Automatically Converting Java Method...
Defaultification Refactoring: A Tool for Automatically Converting Java Method...
 
Defaultification Refactoring: A Tool for Automatically Converting Java Method...
Defaultification Refactoring: A Tool for Automatically Converting Java Method...Defaultification Refactoring: A Tool for Automatically Converting Java Method...
Defaultification Refactoring: A Tool for Automatically Converting Java Method...
 
Automated Refactoring of Legacy Java Software to Default Methods Talk at ICSE...
Automated Refactoring of Legacy Java Software to Default Methods Talk at ICSE...Automated Refactoring of Legacy Java Software to Default Methods Talk at ICSE...
Automated Refactoring of Legacy Java Software to Default Methods Talk at ICSE...
 
Poster on Automated Refactoring of Legacy Java Software to Default Methods
Poster on Automated Refactoring of Legacy Java Software to Default MethodsPoster on Automated Refactoring of Legacy Java Software to Default Methods
Poster on Automated Refactoring of Legacy Java Software to Default Methods
 

Último

Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 

Último (20)

Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 

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

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