Databases Reference
In-Depth Information
over-approximations may be incomparable in terms of the languages they
accept; that is, we cannot, in general, rank the mined specifications based on
a simulation ordering. Note also that average degree is a relative metric; its
absolute value depends on the number of observable events in the specification.
The results show across the board that precise alias analysis is significant;
the mined specifications appear significantly more permissive under Base alias-
ing than under APFocus. Exterior merge improves over total merge frequently
when using Base aliasing, and occasionally under APFocus aliasing. When us-
ing the most precise APFocus aliasing and exterior merge, the distinction
between past and future abstractions vanishes in these experiments, although
they behave significantly different under Base aliasing.
For some specifications, we were able to track the usage pattern manually
by inspecting the client code. For others, the complexity of the client code
(or even lack of Java source code) prevented us from understanding the client
API usage based on inspection. Based on manual inspection, we were able
to verify that for 5 out of the 14 APIs, the most precise analysis generated
the ideal specification, even with the naive union summarization. These APIs
appear in bold in the table.
We additionally collected specifications with weighted summarization for
each benchmark. We do not report densities obtained by weighted summa-
rization, as the specification density will depend directly on the threshold pa-
rameter provided as input. We note based on inspection that a user-provided
threshold of 1/2 for the weighted union algorithm yields improved specifica-
tions for several APIs. In practice, we expect a user would provide feedback
to iteratively tune the threshold as desired.
We also ran the cluster-based summarization for all specifications. For
several APIs, clustering correctly identified a number of independent usage
patterns of the API in our code base. In particular, the specification obtained
for Cipher using the naive union collector was polluted by calls to irrelevant
methods. Using the combination of clustering and weighted algorithms, we
obtained the \ideal" specication expected by a human.
Figure 6.12 shows the output of our tool for the Signature API. This
API was mined using APFocus/Past/Exterior collector, and summarized us-
[update]
1
[verify]
[initVerify]
2
[update]
[sign]
0
[initSign]
3
FIGURE 6.12: Mined specification for java.security.Signature, obtained with
APFocus/Past/Exterior.
 
Search WWH ::




Custom Search