Databases Reference
In-Depth Information
compiler-independent; the drawback is that types cannot be resolved because
only one file is investigated. In order to avoid noise that is caused by this, we
additionally identify methods by the count of arguments.
7.4 Checking Patterns at Runtime
In this section we describe our dynamic approach for checking the patterns
discovered through revision history mining.
7.4.1 Pattern Selection and Instrumentation
To aid with the task of choosing the relevant patterns, the user is presented
with a list of mined patterns in an Eclipse view such as the one shown in
Figure 7.2. The list of patterns may be sorted and filtered based on various
ranking criteria described in Section 7.3.3 to better target user efforts. Human
involvement at this stage, however, is optional, because the user may decide to
dynamically check all the patterns discovered through revision history mining.
After the user selects the patterns of interest, the list of relevant methods
for each of the patterns is generated and passed to the instrumenter. We use
JBoss AOP [9], an aspect-oriented framework to insert additional \bookkeep-
ing" code at the method calls relevant for the patterns. However, the task of
pointcut selection is simplified for the user by using a graphical interface. In
addition to the method being called and the place in the code where the call
occurs, values of all actual parameters are also recorded.
Our instrumenter inserts Java bytecode at call sites to each relevant
method that outputs a dynamic event descriptor hT;E;Li each time a rel-
evant call site is hit at runtime, where:
(a) T is a unique timestamp for the method call.
FIGURE 7.2: DynaMine pattern selection view.
 
Search WWH ::




Custom Search