Databases Reference
In-Depth Information
TAB LE 7.2: Method Calls Added across Different Re visions
File Revision Added method calls
Foo : java 1.12 o1 : addListener
o1 : removeListener
Bar : java 1.47 o2 : addListener
o2 : removeListener
System : out : println
Baz : java 1.23 o3 : addListener
o3 : removeListener
list : iterator
iter : hasNext
iter : next
Qux : java 1.41 o4 : addListener
1.42 o4 : removeListener
This observation is supported in part by anecdotal evidence and also by
recent research into the nature of software changes [36] and is further discussed
in Section 7.3.3. To make the discussion in the rest of this section concrete,
we present the categories of patterns discovered with our mining approach.
Matching method pairs represent two method calls that must be
precisely matched on all paths through the program.
State machines are patterns that involve calling more than two meth-
ods on the same object and can be captured with a finite automaton.
More complex patterns are all other patterns that fall outside the
categories above and involve multiple related objects.
The categories of patterns above are listed in the order of frequency of high-
likelihood pattern in our experiments.
7.2.2 System Overview
We conclude this section by summarizing how the various stages of Dy-
naMine processing work when applied to a new application. All of the steps
involved in mining and dynamic program testing are accessible to the user
from within custom Eclipse views. A diagram representing the architecture of
DynaMine is shown in Figure 7.1.
(a) Pre-process revision history, compute method calls that have been in-
serted, and store this information in a database.
 
Search WWH ::




Custom Search