Databases Reference
In-Depth Information
Step 1: Mining software repositories
CVS
histories
extract revisions
Revision
database
mine likely patterns
Likely
patterns
present for review
Eclipse
pattern view
Step 2: Dynamic program analysis
Confirmed
patterns
Instrumented
program
run instrumented program; load dynamic results into Eclipse
Eclipse dynamic
results view
Pattern
violations
FIGURE 7.1: Architecture of DynaMine. The first row represents revision
history mining. The second row represents dynamic analysis.
(b) Mine the revision database for likely usage and error patterns.
(c) Present mining results to the user in an Eclipse plugin for assessment.
(d) Generate instrumentation for patterns deemed relevant and selected by
the user through DynaMine's Eclipse plugin.
(e) Run the instrumented program and dynamic data are collected and post-
processed by dynamic checkers.
(f) Dynamic pattern violation statistics are collected and presented to the
user in Eclipse.
Steps (d){(f) above can be performed in a loop; once dynamic information
about patterns is obtained, the user may decide to augment the patterns and
re-instrument the application.
7.3 Mining Usage Patterns
In this section we describe our mining approach. We start by providing
the terms we use in our discussion of mining. Next we lay out our general
algorithmic approach that is based on the Apriori algorithm [1, 30] that is
commonly used in data mining for applications such as market basket analysis.
The algorithm uses a set of transactions such as store item purchases as its
input and produces as its output (a) frequent purchasing patterns (\items X,
Y , and Z are purchased together") and (b) strong association rules (\a person
who bought item X is likely to buy item Y ").
However, the classical Apriori algorithm has a serious drawback. The al-
gorithm runtime can be exponential in the number of items. Our \items"
Search WWH ::




Custom Search