Aspect Mining

An emerging research domain

               Prof. Kim Mens
 Département d’Ingénierie Informatique (INGI)
  ...
Aspect Mining
    an emerging research domain
•   Motivation
•   Preliminaries
    •   formal concept analysis
    •   fan...
Aspect Mining
    an emerging research domain
•   Motivation
•   Preliminaries
    •   formal concept analysis
    •   fan...
Need for aspect mining



•   Aspects offer a better separation of concerns
    by solving the problems of “scattering” an...
Three open research
 problems in AOP




      “Aspect Mining”


                        5
Aspect Mining
    an emerging research domain
•   Motivation
•   Preliminaries
    •   formal concept analysis
    •   fan...
Aspect Mining
    an emerging research domain
•   Motivation
•   Preliminaries
    •   formal concept analysis
    •   fan...
Formal Concept Analysis (FCA)
•   Starts from
    •   a set of elements
    •   a set of properties of those elements

•  ...
FCA : Elements and Properties

               object-                         static   dynamic
                          f...
FCA : Concepts

            object-                         static   dynamic
                       functional   logic
   ...
FCA : Concepts

            object-                         static   dynamic
                       functional   logic
   ...
FCA : Concepts

            object-                         static   dynamic
                       functional   logic
   ...
FCA : Concepts

            object-                         static   dynamic
                       functional   logic
   ...
FCA : Concepts

            object-                         static   dynamic
                       functional   logic
   ...
FCA : Concepts

            object-                         static   dynamic
                       functional   logic
   ...
FCA : Concepts

            object-                         static   dynamic
                       functional   logic
   ...
FCA : Concept Lattice




  Concept hierarchy
based on containment
  relation between
      concepts.
                    ...
“Mined” Concepts
                    Properties shared by
                     all languages (none)


                    ...
Concept Lattice
 with sparse labeling


                     object-oriented   dynamic typing



      Java, C++          ...
Aspect Mining
    an emerging research domain
•   Motivation
•   Preliminaries
    •   formal concept analysis
    •   fan...
Fan-in
•   Fan-in metric [Henderson-Sellers]
    counts the number of locations from which
                               ...
Fan-In Example
Fan-in of a method m =
   the number of distinct method             
   interface A{
                      ...
Aspect Mining
    an emerging research domain
•   Motivation
•   Preliminaries
    •   formal concept analysis
    •   fan...
Aspect Mining Techniques
•   Aspect mining is an emerging research domain
    •   Several aspect mining techniques are bei...
Some references
•   A qualitative comparison of three aspect mining techniques
    M. Ceccato, M. Marin, K. Mens, L. Moone...
3 Aspect Mining Techniques
• Identifier analysis
    •   Approach : Use FCA to group classes/methods with similar names
   ...
Case study
•   Applied each technique to same case study
•   JHotDraw
    •   Framework for 2D graphics ~ 18,000NCLOC
    ...
Aspect Mining
  an emerging research domain
• Motivation
• Preliminaries
  •   formal concept analysis
  •   fan-in
• Thre...
“Identifier analysis”
•   Idea: Use FCA to group program entities with
    similar names
    •   Elements : classes and met...
Identifier analysis approach
1. Generate the formal context
  Elements, properties & incidence relation
2. Concept Analysis...
1. Generate formal context
•   Elements
    •   all classes and methods in analyzed program
    •   except test classes, a...
2. Concept Analysis
                  groups entities with similar identifiers

                                           ...
3. Filtering
•   Irrelevant elements and properties already filtered
    •   substrings with little meaning or that are too...
4. Manually inspect concepts
•   Use DelfSTof, our Conceptual Code Mining tool
•   Browse code of concept elements
    •  ...
DelfSTof, our Conceptual
    Code Mining tool




                           35
Case study : JHotDraw
•   2193 elements and 507 properties
•   230 concepts were discovered in 31 seconds
    •   when usi...
Case study : JHotDraw
Selection of results of identifier analysis experiment
Crosscutting                                  ...
Aspect Mining
    an emerging research domain
•   Motivation
•   Preliminaries
    •   formal concept analysis
    •   fan...
“Dynamic analysis”

    Aspect Mining
        through
Formal Concept Analysis
           of
   Execution Traces




Based ...
Why execution traces?
 We are interested in mining those crosscutting concerns
  that are associated to a not well modula...
Rough trace analysis output
 Dynamic analysis produces a relation between :
   Elements = methods (computational units)
...
Dynamic Analysis
 The concept specific for a given feature is labeled by the
  corresponding scenario.
 The most specific ...
Interpretation of the lattice
•   A potential aspect is detected when the existing
    modularity fails in dividing requir...
A small case study :
        Dijkstra algorithm
•   Small size application (1068 LOC) easy to analyze
•   Many features: i...
DocOption     GraphCanvas   Options     GraphAlgorithm


                   Draw


Documentation
                         ...
GraphAlgorithm.unlock()
                                                         GraphAlgorithm.lock()
                   ...
Case study : JHotDraw
•   27 elements (use cases)
    draw a rectangle, draw a line with the scribble tool, create a
     ...
Case study : JHotDraw
 Summary of results of dynamic analysis experiment
      Aspect            Concepts   Methods CH.ifa...
Aspect Mining
    an emerging research domain
•   Motivation
•   Preliminaries
    •   formal concept analysis
    •   fan...
“Fan-in analysis”


                     Identifying Aspects
                            using
                       Fan-...
Why fan-in analysis?
Fan-in analysis can help us to identify :
•   Scattered code relying on some common functionality, e....
Identification steps
1. Automatic computation of fan-in metric
  for all methods in analysed application
2. Filtering the r...
Case study : JHotDraw
        •   Threshold fan-in : 10
        •   7% of total # methods kept
        •   other filters re...
Case study : JHotDraw
Concern type                 #                             Seed’s description
                      ...
Aspect Mining
    an emerging research domain
•   Motivation
•   Preliminaries
    •   formal concept analysis
    •   fan...
Comparing the techniques
•   Case study : JHotDraw
•   Qualitative comparison of identified aspects
    •   Identified aspec...
Results of the comparison (1)
•   A selection of detected concerns in JHotDraw

                           Fan-in        I...
Results of the comparison (2)
 • Observer, Undo, Persistence
    •   concerns reported by all 3 techniques
    •   corresp...
Results of the comparison (3)
•   Contract Enforcement / Consistent Behavior
    •   E.g., common functionality for checki...
Results of the comparison (4)
•   Manage Handles
    •   Partly detected by identifier analysis
        •   methods with id...
Limitations of the techniques
•   Identifier analysis
    •   fails in absence of good naming conventions
    •   too many ...
Combining the techniques
•   Techniques rely on orthogonal properties
    •   suggests possibility of useful combinations,...
Future work
•   More detailed comparison
    of quality of discovered aspects

•   Comparison with other aspect mining tec...
Aspect Mining
    an emerging research domain
•   Motivation
•   Preliminaries
    •   formal concept analysis
    •   fan...
Aspect mining...
•   is a promising new research area
•   can be (partly) automated with fairly simple
    techniques
    ...
Upcoming SlideShare
Loading in …5
×

Aspect Mining - An emerging research domain

1,147 views

Published on

Presentation on Aspect Mining for GroepT in Leuven, Belgium

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

  • Be the first to like this

No Downloads
Views
Total views
1,147
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
22
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Aspect Mining - An emerging research domain

  1. 1. Aspect Mining An emerging research domain Prof. Kim Mens Département d’Ingénierie Informatique (INGI) Université catholique de Louvain (UCL) http://www.info.ucl.ac.be/~km 1
  2. 2. Aspect Mining an emerging research domain • Motivation • Preliminaries • formal concept analysis • fan-in • Three aspect mining techniques • identifier analysis • dynamic analysis • fan-in analysis • comparison • Conclusion 2
  3. 3. Aspect Mining an emerging research domain • Motivation • Preliminaries • formal concept analysis • fan-in • Three aspect mining techniques • identifier analysis • dynamic analysis • fan-in analysis • comparison • Conclusion 3
  4. 4. Need for aspect mining • Aspects offer a better separation of concerns by solving the problems of “scattering” and “tangling” • But what if we have (non AO) legacy code how can we migrate it to an AOP solution? • Need for aspect mining • aspect identification : how to find all code relevant to some crosscutting concern • aspect refactoring : and turn it into an aspect • with the help of automated software tools 4
  5. 5. Three open research problems in AOP “Aspect Mining” 5
  6. 6. Aspect Mining an emerging research domain • Motivation • Preliminaries • formal concept analysis • fan-in • Three aspect mining techniques • identifier analysis • dynamic analysis • fan-in analysis • comparison • Conclusion 6
  7. 7. Aspect Mining an emerging research domain • Motivation • Preliminaries • formal concept analysis • fan-in • Three aspect mining techniques • identifier analysis • dynamic analysis • fan-in analysis • comparison • Conclusion 7
  8. 8. Formal Concept Analysis (FCA) • Starts from • a set of elements • a set of properties of those elements • Determines concepts • Maximal groups of elements and properties • Group: • Every element of the concept has those properties • Every property of the concept holds for those elements • Maximal • No other element (outside the concept) has those same properties • No other property (outside the concept) is shared by all 8
  9. 9. FCA : Elements and Properties object- static dynamic functional logic oriented typing typing C++ X - - X - Java X - - X - Smalltalk X - - - X Scheme - X - - X Prolog - - X - X 9
  10. 10. FCA : Concepts object- static dynamic functional logic oriented typing typing C++ - - X - X Java X - - X - X Smalltalk - - - X Scheme - X - - X Prolog - - X - X 10
  11. 11. FCA : Concepts object- static dynamic functional logic oriented typing typing C++ - - X - X Java X - - X - X Smalltalk - - - X Scheme - X - - X X Prolog - - X - 11
  12. 12. FCA : Concepts object- static dynamic functional logic oriented typing typing C++ - X - - X Java X - - X - Smalltalk X - - - X Scheme - X - - X X Prolog - - X - 12
  13. 13. FCA : Concepts object- static dynamic functional logic oriented typing typing C++ - X - - X Java X - - X - Smalltalk X - - - X Scheme - X - - X X Prolog - - X - 13
  14. 14. FCA : Concepts object- static dynamic functional logic oriented typing typing C++ - X - - X Java X - - X - Smalltalk X - - - X Scheme - X - - X Prolog - - X - X 14
  15. 15. FCA : Concepts object- static dynamic functional logic oriented typing typing C++ - X - - X Java X - - X - Smalltalk X - - - X Scheme - X - - X Prolog - - X - X 15
  16. 16. FCA : Concepts object- static dynamic functional logic oriented typing typing C++ - X - - X Java X - - X - Smalltalk X - - - X Scheme - X - - X Prolog - - X - X 16
  17. 17. FCA : Concept Lattice Concept hierarchy based on containment relation between concepts. 17
  18. 18. “Mined” Concepts Properties shared by all languages (none) Languages with OO languages dynamic typing Static. typed Dynam. typed Dynam. typed Dynam. typed OO languages OO languages funct. languages logic languages Languages having all properties (none) 18
  19. 19. Concept Lattice with sparse labeling object-oriented dynamic typing Java, C++ Smalltalk Scheme Prolog static typing functional logic the labeling algorithm detects for each concept its most specific elements and properties. 19
  20. 20. Aspect Mining an emerging research domain • Motivation • Preliminaries • formal concept analysis • fan-in • Three aspect mining techniques • identifier analysis • dynamic analysis • fan-in analysis • comparison • Conclusion 20
  21. 21. Fan-in • Fan-in metric [Henderson-Sellers] counts the number of locations from which module / control is passed into a module method • Fan-in metric for OOP • applied to method M • number of distinct method bodies that can invoke M • What about polymorphism? • one call-site can affect the fan-in of several methods • a call to M contributes to the fan-in of M but also of all its overriding methods as well as all methods it overrides • this interpretation corresponds to the standard behavior of the “search for references” feature of the Eclipse IDE 21
  22. 22. Fan-In Example Fan-in of a method m = the number of distinct method interface A{ public void m(); bodies that can invoke m } class B implements A { public void m() {}; } Method Caller set Fan-in class C1 extends B { public void m() {}; A.m {D.f1, D.f2, D.f3} 3 } B.m {D.f1, D.f2, D.f3, C2.m} 4 class C2 extends B { C1.m {D.f1, D.f2, D.f3} 3 public void m() { super.m(); }; C2.m {D.f1, D.f2} 2 } class D { void f1(A a) { a.m(); } void f2(B b) { b.m(); } void f3(C1 c) { c.m(); } } 22
  23. 23. Aspect Mining an emerging research domain • Motivation • Preliminaries • formal concept analysis • fan-in • Three aspect mining techniques • identifier analysis • dynamic analysis • fan-in analysis • comparison • Conclusion 23
  24. 24. Aspect Mining Techniques • Aspect mining is an emerging research domain • Several aspect mining techniques are being proposed • Based on pattern matching, clone detection, logic reasoning, concept analysis, clustering, fan-in analysis, program slicing... • We will focus on three specific techniques • Two based on formal concept analysis : • Identifier analysis • Dynamic analysis • One based on fan-in metric : • Fan-in analysis 24
  25. 25. Some references • A qualitative comparison of three aspect mining techniques M. Ceccato, M. Marin, K. Mens, L. Moonen, P. Tonella, T. Tourwé Int’l Working Conference on Program Comprehension 2005 • Mining aspectual views using formal concept analysis T. Tourwé, K. Mens Int’l workshop on Source-Code Analysis and Manipulation 2004 • Aspect mining through the formal concept analysis of execution traces P. Tonella, M. Ceccato IEEE Working Conference on Reverse Engineering 2004 • Identifying aspects using fan-in analysis M. Marin, A. van Deursen, L. Moonen IEEE Working Conference on Reverse Engineering 2004 25
  26. 26. 3 Aspect Mining Techniques • Identifier analysis • Approach : Use FCA to group classes/methods with similar names • Motivation : In absence of real AOP support, (OO) developers often rely on naming conventions • Dynamic analysis • Approach : Use FCA to relate methods to the use case scenarios in which they appear • Motivation : Methods used in different scenarios may represent a crosscutting concern • Fan-in analysis • Approach : Look for methods with a high fan-in value • Motivation : Methods that are being invoked from “all over the place” indicate a kind of scattering 26
  27. 27. Case study • Applied each technique to same case study • JHotDraw • Framework for 2D graphics ~ 18,000NCLOC • Open source (jhotdraw.org) • Rather well designed (design patterns) • shows relevance of aspect mining even for well-designed cases • Qualitative comparison of identified aspects 27
  28. 28. Aspect Mining an emerging research domain • Motivation • Preliminaries • formal concept analysis • fan-in • Three aspect mining techniques • identifier analysis • dynamic analysis • fan-in analysis • comparison • Conclusion 28
  29. 29. “Identifier analysis” • Idea: Use FCA to group program entities with similar names • Elements : classes and methods • Properties : substrings of the elements’ names • Only considering crosscutting groups • Approach relies on naming conventions • Primary means to associated related but distant program entities, in absence of designated AOP constructs • Especially for object-oriented software • polymorphism, intention-revealing names, design patterns, ... • Joint work with Dr. Tom Tourwé (CWI) 29
  30. 30. Identifier analysis approach 1. Generate the formal context Elements, properties & incidence relation 2. Concept Analysis Calculate the formal concepts (& organise them into a concept lattice) 3. Filtering Remove irrelevant concepts • too small • not scattered 4. Manually inspect concepts Are they really an aspect or crosscutting concern? 30
  31. 31. 1. Generate formal context • Elements • all classes and methods in analyzed program • except test classes, accessor methods (produce too much noise) • Properties • all “relevant” substrings of the elements’ names • Based on where uppercases occur in an element’s name • createUndoActivity → { create, undo, activity } • Filter substrings that produce too much noise • Uses stemming algorithm to map substrings to same ‘stem’ • Incidence relation : an element has a property if it has the substring in its name 31
  32. 32. 2. Concept Analysis groups entities with similar identifiers figure drawing request remove update change event … drawingRequestUpdate(DrawingChangeEvent e) - X X - X - - … figureRequestRemove(FigureChangeEvent e) X - X X - - - … figureRequestUpdate(FigureChangeEvent e) X - X - X - - … figureRequestRemove(FigureChangeEvent e) X - X X - - - … figureRequestUpdate(FigureChangeEvent e) X - X - X - - … … … … X … … … … … 32
  33. 33. 3. Filtering • Irrelevant elements and properties already filtered • substrings with little meaning or that are too small • test classes and methods, accessor methods • Extra filtering • Drop top & bottom concept when empty • Drop concepts with too few elements (less than 4) • Drop concepts where classes and methods are not ‘scattered’ • should be in at least 2 different unrelated class hierarchies 33
  34. 34. 4. Manually inspect concepts • Use DelfSTof, our Conceptual Code Mining tool • Browse code of concept elements • Does a discovered concept really present an aspect or crosscutting concern? • Is the code really similar? • Or do the elements ‘accidentally’ have a similar name? • Group concepts that seem to address a similar concern • Persistence : file / storable / load / register 34
  35. 35. DelfSTof, our Conceptual Code Mining tool 35
  36. 36. Case study : JHotDraw • 2193 elements and 507 properties • 230 concepts were discovered in 31 seconds • when using a threshold of 4 for minimum number of elements • with threshold 10 : 100 concepts ; similar execution time • 41 crosscutting concerns identified • after (laborous) manual analysis of the concepts • three kinds : • traditional aspects (observer, undo, persistence) • crosscutting business logic (drawing figures, moving figures) • Java-specific concerns (iterating over collections) 36
  37. 37. Case study : JHotDraw Selection of results of identifier analysis experiment Crosscutting Some Concept(s) #elements concern elements change / check / figureChanged(e) / Observer 67 / 14 / 65 /12 checkDamage() / listener / release createDesktopListener() createUndoActivity() / Undo undo / redo 53 / 14 redo() Visitor visit 12 visit(FigureVisitor) file / storable / registerFileFilters(c) / Persistence 15 / 5 / 8 / 7 readStorable() / load / register loadRegisteredImages Drawing draw 112 draw(g) moveBy(x,y) Moving figures move 36 moveSelection(dx,dy) iterator() Iterating iterator 5 listIterator() 37
  38. 38. Aspect Mining an emerging research domain • Motivation • Preliminaries • formal concept analysis • fan-in • Three aspect mining techniques • identifier analysis • dynamic analysis • fan-in analysis • comparison • Conclusion 38
  39. 39. “Dynamic analysis” Aspect Mining through Formal Concept Analysis of Execution Traces Based on a presentation by Mariano Ceccato & Paolo Tonella (ITC-irst) 39
  40. 40. Why execution traces?  We are interested in mining those crosscutting concerns that are associated to a not well modularized system requirements Use-cases specify system requirements  Execution traces are the result of use-case executions  Trace 1 Scenario 1 (feature a) Trace 2 Scenario 2 (feature b) … … Trace N Scenario N Run Application (feature z) 40
  41. 41. Rough trace analysis output  Dynamic analysis produces a relation between :  Elements = methods (computational units)  Properties = scenarios (use-cases)  Relation R = in scenario s the method m is executed  The table can be too big to be manually inspected or analyzed  We need a way to extract knowledge from it  Use FCA (with sparse labeling) Computational Units Scenarios method1 method2 method3 method4 scenario1 x x x scenario2 x x x scenario3 x x 41
  42. 42. Dynamic Analysis  The concept specific for a given feature is labeled by the corresponding scenario.  The most specific method for a concept are the ones in its label.  “Dynamic analysis” focusses on those concepts that have both scenarios and methods in their labels Top meth meth meth meth C3 C2 1 2 3 4 scen1 x x x C1 FCA scen2 C0 x x x scen3 x x Bottom Concept lattice with sparse labeling 42
  43. 43. Interpretation of the lattice • A potential aspect is detected when the existing modularity fails in dividing requirements • It happens when: • The specific methods for a use-case come from different classes (scattering). • The same class defines specific methods for more than one use-case (tangling). DocOption GraphCanvas Options GraphAlgorithm Draw Documentation Algorithm 43
  44. 44. A small case study : Dijkstra algorithm • Small size application (1068 LOC) easy to analyze • Many features: interesting case study 44
  45. 45. DocOption GraphCanvas Options GraphAlgorithm Draw Documentation Algorithm 45
  46. 46. GraphAlgorithm.unlock() GraphAlgorithm.lock() Options.unlock() Options.lock() GraphCanvas.lock() GraphCanvas.unlock() GraphCanvas.runalg() GraphCanvas.detailsDijkstra(Graphics,int,int) GraphCanvas.endstepalg(Graphics) GraphCanvas.detailsalg(Graphics,int,int) Discovered aspect : “locking” GraphCanvas.endstepDijkstra(Graphics) - tangled GraphCanvas.stepalg() GraphCanvas.reset() - scattered GraphCanvas.nextstep() - can be associated a well-defined functionality GraphCanvas.clear() GraphCanvas.showexample() - but is not main functionality (“algorithm”) GraphCanvas.initalg() GraphCanvas.run() DocOption GraphCanvas Options GraphAlgorithm Draw Documentation Algorithm 46
  47. 47. Case study : JHotDraw • 27 elements (use cases) draw a rectangle, draw a line with the scribble tool, create a connector between two figures, ... • 1262 properties JHotDraw methods executed by running the scenarios • concept lattice with 1514 nodes • 11 were classified as use-case specific aspects • 56 as generic aspects • these were revisited manually to determine plausible aspects • that can be associated to a single well-defined functionality • that is not the main functionality of the involved classes 47
  48. 48. Case study : JHotDraw Summary of results of dynamic analysis experiment Aspect Concepts Methods CH.ifa.draw.figures: EllipseFigure.basicMoveBy(int,int) Undo 2 36 PolyLineFigure.basicMoveBy(int,int) RectangleFigure.basicMoveBy(int,int) Bring to front 1 3 RoundRectangleFigure.basicMoveBy(int,int) Send to back 1 3 TextFigure.moveBy(int,int) Connect text 1 18 CH.ifa.draw.standard: AbstractFigure.moveBy(int,int) Persistence 1 30 DecoratorFigure.moveBy(int,int) Manage Handles 4 60 Move figure 1 7 Command executability 1 25 Connect figures 1 55 Figure observer 4 11 Add text 1 26 Add URL to figure 1 10 48
  49. 49. Aspect Mining an emerging research domain • Motivation • Preliminaries • formal concept analysis • fan-in • Three aspect mining techniques • identifier analysis • dynamic analysis • fan-in analysis • comparison • Conclusion 49
  50. 50. “Fan-in analysis” Identifying Aspects using Fan-in Analysis Based on a presentation by Marius Marin, Leon Moonen & Arie van Deursen (TUDelft) 50
  51. 51. Why fan-in analysis? Fan-in analysis can help us to identify : • Scattered code relying on some common functionality, e.g., persistence • Tangled code, needed in various places, e.g. logging • Some design patterns generate high fan-in values, e.g. Observer, Visitor write(StorableOutput) implementations calls StorableOutput.writeStorable(Storable) Write to a storable output in JHotDraw 51
  52. 52. Identification steps 1. Automatic computation of fan-in metric for all methods in analysed application 2. Filtering the results • Methods with fan-in < 10 • Getters & setters (name get*/set* and returns/sets a reference) • Utility methods 3. Largely manual analysis • Call sites • Naming conventions used • Implementation Eclipse • Comments in source code plug-in 52
  53. 53. Case study : JHotDraw • Threshold fan-in : 10 • 7% of total # methods kept • other filters removed another 50% • getters / setters • utility methods • 52% of remaining methods were manually classified as aspect seeds 53
  54. 54. Case study : JHotDraw Concern type # Seed’s description Methods implementing the consistent behavior shared by different callers, such Consistent behavior 4 as checking/refreshing figures/views affected by executing a command. Method implementing a contract that needs to be enforced, such as checking Contract enforcement 4 the reference to the editorʼs active view before executing a command. Methods checking whether a command is undoable/redoable + undo method in Undo 1 the superclass, which is invoked from the overriding methods in subclasses. Methods implementing functionality common to persistent elements, such as Persistence & resurrection 1 read/write operations for primitive types wrappers (like Double, Integer) which are referenced by the scattered implementations of persistence/resurrection. Command design pattern 1 The execute method in the command classes and command constructors. The observersʼ manipulation methods and notify methods in classes acting as Observer design pattern 1 subject. The compositeʼs methods for manipulating child components, such as adding a Composite design pattern 2 new child. Decorator design pattern 1 Methods in the decorator that pass the calls on to the decorated components. Methods that manipulate the reference from the adapter(Handle) to the Adapter design pattern 1 adaptee(Figure). 54
  55. 55. Aspect Mining an emerging research domain • Motivation • Preliminaries • formal concept analysis • fan-in • Three aspect mining techniques • identifier analysis • dynamic analysis • fan-in analysis • comparison • Conclusion 55
  56. 56. Comparing the techniques • Case study : JHotDraw • Qualitative comparison of identified aspects • Identified aspects : discovered / discarded / missed • Quality and level of detail of discovered information • Weaknesses and limitations of each of the techniques • Complementarity and opportunities for combination 56
  57. 57. Results of the comparison (1) • A selection of detected concerns in JHotDraw Fan-in Identifier Dynamic Concern analysis Analysis Analysis Observer + + + Consistent Behavior / + - - Contract Enforcement Command Execution + + - Bring to front / - - + Send to back Manage Handles - + + Move Figures + (discarded) + + 57
  58. 58. Results of the comparison (2) • Observer, Undo, Persistence • concerns reported by all 3 techniques • correspond to well-known aspects or functionality for which AOP is natural solution • surprisingly few concerns were detected by all techniques => need for a combined technique • Bring to front / Send to back • not detected by fan-in analysis (fan-in value too low) • not detected by identifier analysis (#elements < threshold) • detected by dynamic analysis (corresponds to specific use-case scenario) 58
  59. 59. Results of the comparison (3) • Contract Enforcement / Consistent Behavior • E.g., common functionality for checking preconditions • Found by fan-in because many calls to ‘check’ methods • Identifier analysis misses cases when no common naming scheme • Also missed by dynamic analysis • Command execution • could be seen as particular case of Contract Enforcement • all execute methods need to check that an active view exists • found by identifier analysis (and fan-in analysis) 59
  60. 60. Results of the comparison (4) • Manage Handles • Partly detected by identifier analysis • methods with identifier ‘handle’ appearing in their name • missed specific methods north(), south(), east(), west() • Partly detected by dynamic analysis • detected specific methods • and some (not all) of the handle methods • Missed by fan-in analysis: calls too specific • similar but distinct calls instead of one single called method with high fan-in 60
  61. 61. Limitations of the techniques • Identifier analysis • fails in absence of good naming conventions • too many and too detailed results => better grouping / filtering needed • Dynamic analysis • fails for functionality present in all execution traces • completeness depends on coverage by scenarios • Fan-in analysis • only crosscutting with large extent • false negatives due to filtering • All require quite some manual work 61
  62. 62. Combining the techniques • Techniques rely on orthogonal properties • suggests possibility of useful combinations, to • Increase coverage • by taking the union of discovered results (fan-in + dynamic) • Complete the discovered aspect “seeds” • with more methods relevant to the aspect (<= identifier analysis) • Provide more coarse-grained aspects • e.g., grouping of identifier analysis concepts (<= fan-in / dynamic) • Discard irrelevant concepts 62
  63. 63. Future work • More detailed comparison of quality of discovered aspects • Comparison with other aspect mining techniques • Multi-technique tool • fan-in, FCA, clone detection, slicing, ... • to obtain a higher degree of automation • and better quality of results • JHotDraw as common benchmark • Aspect refactoring 63
  64. 64. Aspect Mining an emerging research domain • Motivation • Preliminaries • formal concept analysis • fan-in • Three aspect mining techniques • identifier analysis • dynamic analysis • fan-in analysis • comparison • Conclusion 64
  65. 65. Aspect mining... • is a promising new research area • can be (partly) automated with fairly simple techniques and combinations thereof • is only the first step... But most of all... it’s fun :-) 65

×