<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Towards improved Adoption: Effectiveness of Research Tools in the Real World</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Richa Awasthy</string-name>
          <email>richa.awasthy@anu.edu.au</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Shayne Flint</string-name>
          <email>int@anu.edu.au</email>
          <email>shayne.flint@anu.edu.au</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ramesh Sankaranarayana</string-name>
          <email>ramesh@cs.anu.edu.au</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Australian National University</institution>
          ,
          <addr-line>Canberra</addr-line>
          ,
          <country country="AU">Australia</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Research School of Computer Science, Australian National University</institution>
          ,
          <addr-line>Canberra</addr-line>
          ,
          <country country="AU">Australia</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2016</year>
      </pub-date>
      <fpage>20</fpage>
      <lpage>26</lpage>
      <abstract>
        <p>-One of the challenges in the area of software engineering research has been the low rate of adoption by industry of the tools and methods produced by university researchers. We present a model to improve the situation by providing tangible evidence that demonstrates the real-world effectiveness of such tools and methods. A survey of practising software engineers indicates that the approach in the model is valid and applicable. We apply and test the model for providing such evidence and demonstrate its effectiveness in the context of static analysis using FindBugs. This model can be used to analyse the effectiveness of academic research contributions to industry and contribute towards improving their adoption.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        The success of software engineering research in
universities can be measured in terms of the industrial adoption of
methods and tools developed by researchers. Current adoption
rates are low [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and this contributes to a widening gap
between software engineering research and practice. Consider,
for example, code inspections, which according to Fagan’s
law, are effective in reducing errors in software, increasing
productivity and achieving project stability [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Static analysis
tools developed by university researchers help automate the
code inspection process. However, the use of such tools has
not obtained widespread adoption in industry. One reason for
this limited adoption is that researchers often fail to provide
real-world evidence that the methods and tools they develop
are of potential value to industry practitioners [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>One approach to providing such evidence is to conduct
experiments that demonstrate the effectiveness of research
tools in a real-world context. We apply this approach to
analyse the effectiveness of a static analysis tool. In doing
so, we demonstrate that such experimentation can contribute
to closing the gap between research and practice.</p>
      <p>
        The structure of this paper is as follows: Section II provides
the background of our work leading to the proposed model;
Section III presents a survey which shows that real world
evidence can positively influence the decision of software
engineers to use research tools; Section IV explains our
experimental method which uses FindBugs [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] to analyse real
world bugs in Eclipse [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] code; Section V discusses how
simple experiments like ours can encourage more developers
to use tools developed by researchers and thus contribute to
closing the gap between research and practice. Section VI
provides an overview of related research; Section VII presents
conclusions and discusses future research.
      </p>
      <p>
        Since the 1970’s there have been ongoing efforts to increase
the adoption of research outcomes outside of universities [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
As a result of the United States Bayh Dole Act in 1980
[
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], universities began to establish Technology Transfer Offices
(TTOs) to facilitate the transfer of knowledge from universities
to industry [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. However, the effectiveness of TTOs has been
questioned in recent years [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] and there is a need to
look beyond TTOs to improve adoption of academic research
in industry.
      </p>
      <p>
        Researchers in universities are working towards addressing
significant problems. The outcome of their work can be a
tool or method which may or may not achieve wide-spread
industry adoption. A key factor limiting the readiness of these
research outcomes for adoption in industry is a lack of tangible
evidence that they would be effective in practice [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. This
suggests that demonstrating the effectiveness of a tool in
practice can contribute to improved adoption.
      </p>
      <p>
        Figure 1 depicts our model for demonstrating the
realworld effectiveness of research tools and methods. The model
involves 4 steps with intermediate activities. First step is
to identify a problem to address. Step 2 is to develop a
tool or a method to address the problem. The intermediate
iterative activity involved between these 2 steps is the process
of solution formulation, which involves adding new ideas to
the available state of the art. These steps are followed by
iterative testing for validation in Step 3. Step 3 confirms
the readiness of the research outcome for adoption. An idea
should be validated in a practical setting [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] to improve its
adoption. Our model respects this viewpoint and emphasises
the importance of tangible evidence from a practical setting
in Step 4. Researchers should test their research outcomes
in a scenario that involves real world users who are an
important stakeholder for industry to increase the relevance of
the evidence for industry. Demonstrating the effectiveness of
research outcomes in real-world scenario will lead to change
in industry perception and improved adoption of the research
outcomes.
We test the applicability of this model in the static analysis
context by identifying a static analysis tool created by
university researchers and analysing its effectiveness in a real-world
scenario.
      </p>
      <p>University Research
1</p>
      <p>In order to understand the impact of evidence from a
userscenario on real-world decisions to use a research tool, we
conducted an on-line survey of software developers.</p>
      <p>
        The survey uses static analysis as an example and was
prepared and delivered using our university’s online polling
system [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. Participants were invited by email which included
a link to the on-line survey and a participant information
statement. On completion of the survey, we manually analysed
the results.
      </p>
      <p>III.B.1
III.B.2</p>
      <p>III.B.3</p>
      <sec id="sec-1-1">
        <title>A. Participants</title>
        <p>We invited 20 software industry practitioners and around
10 computer science researchers with industry experience in
software development.</p>
      </sec>
      <sec id="sec-1-2">
        <title>B. Survey Questions</title>
        <p>The survey data consisted of responses to the sequence of
questions depicted in Figure 2 and described below.</p>
        <p>1) Software engineering experience: We gathered
information about the level of software development expertise of each
participant so that we can understand any relationship between
experience and use of static analysis tools.</p>
        <p>2) Static analysis knowledge: We asked the following
questions to determine each participant’s level of understanding and
use of static analysis tools.</p>
      </sec>
      <sec id="sec-1-3">
        <title>a) ‘Static analysis is the analysis of computer software</title>
        <p>to find potential bugs without actually executing the
software. Have you heard of static analysis before?’</p>
      </sec>
      <sec id="sec-1-4">
        <title>b) ‘Have you used any automated static analysis tools during software development (e.g. FindBugs, Coverity)?’</title>
        <p>Answers to these questions were used to determine the final
question we asked, as indicated in Figure 2.</p>
        <p>3) The impact of the tangible evidence: At the end of the
survey each participant who has not used static analysis tools
was asked a question to determine the impact that tangible
evidence (that the tool can identify real bugs early in the
software development life-cycle) might have on their approach
to static analysis. The exact question asked depended on their
answers to questions described in Section III-B2. Specifically:
1) Participants who had no knowledge of static analysis were
asked ‘Would our research results interest you in gaining
knowledge of static analysis and adoption of automated
static analysis tools?’.
2) Participants who knew about static analysis but had not
used any static analysis tools (our primary group of
interest) were asked to rate the impact that the following
factors would have on their decision to adopt static
analysis tools. A Likert scale was used with 5 options (No
influence, May be, Likely, Highly Likely, and Definitely).
a) Effectiveness of tool in finding bugs
b) Ease of use
c) Integration of tool to development environment.
d) License type.
e) The availability of tangible evidence that the tool can
identify real bugs early in the software development
life-cycle - before they are reported by users.</p>
      </sec>
      <sec id="sec-1-5">
        <title>C. Analysis of Survey Results</title>
        <p>The response rate for our survey was high with 27 responses
out of 30 invitations. Responses to the survey indicate that
tangible evidence of real-world effectiveness of a tool has
positive impact on decisions to adopt static analysis tools.</p>
        <p>Analysis of the survey results provides the following
specific findings:
1) Software Engineering Experience - As expected,
participants had varied level of experience in software
development. However, we do not find any direct relation
between the experience and usage of tools.
2) Static Analysis Knowledge - Survey results show that
9 participants (33%) had no prior knowledge of static
analysis. It is noteworthy that while the remaining 18
participants knew about static analysis, only 4 of them
had used static analysis tools.
3) Impact of the tangible evidence - Our survey results show
that tangible evidence has a positive impact on decisions
to adopt static analysis tools. Out of the 9 respondents
who had no prior knowledge of static analysis, 8 said that
tangible evidence would interest them in gaining
knowledge of static analysis and adopting automated static
analysis tools. This is a valuable information indicating
that providing evidence of effectiveness could contribute
to improved adoption of research tools in industry.
Of the 14 participants who had knowledge of static
analysis but who had not used any tools, 7 participants
(50%) indicated that tangible evidence would be Highly
Likely or would Definitely influence their decision to
adopt static analysis tools (Figure 3). Another four
participants indicated that such evidence would be Likely
to influence their decision. Considering the response of
three participants as May be, it is possible that they
respond positively, which will add to the percentage of
participants agreeing that tangible evidence will influence
the decision.
4.5
4
3.5
s
tn 3
a
p
i
itc 2.5
r
a
fP 2
o
rbe 1.5
m
uN 1
0.5
0</p>
        <p>None</p>
        <p>May be Likely Highly likely
Positive influence on decisions to adopt static analysis tool
Definitely</p>
        <p>As shown in Figure 4, our results also indicate that other
factors such as Ease of use, IDE integration and License
type have a positive impact on decisions to adopt static
analysis tools. It is interesting to note that under the May
be and Definitely category, the top two influencing factors
are License and Tangible evidence.</p>
        <p>Our results clearly show that tangible evidence is an
important factor in influencing decisions to adopt research tools in
industry.
7
6
ts 5
n
a
iitcp 4
r
a
fop 3
r
e
bm 2
u
N
1
0</p>
        <p>None</p>
        <p>May be Likely Highly likely Definitely</p>
        <p>Influence of the factor</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>IV. APPLICABILITY OF THE MODEL</title>
      <p>
        In order to test the applicability of our proposed model,
we first had to identify an appropriate tool developed by
researchers and a scenario to test its effectiveness. FindBugs
version 3.0 was chosen for our research as according to the
tool’s website, there are few organizations using FindBugs
[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. This indicates low adoption of the tool in software
industry. Also, it is an open-source static analysis tool with
a university’s trademark. We conducted an experiment with
the FindBugs static analysis tool to analyse its effectiveness
in the real world. To analyse the effectiveness in real-world,
we wanted to determine if FindBugs is capable of finding
bugs reported by real users of Eclipse. To do so, we adopted
an approach to establishing a connection between warnings
generated by the FindBugs static analysis tool and field bugs
reported by Eclipse users on Bugzilla [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] that includes the
below steps:
1) Use FindBugs to identify potential bugs in Eclipse class
files.
2) Search the Eclipse bug-tracking system Bugzilla to
identify bug reports that include stack traces.
3) Match the code pointed in Java classes associated with
FindBugs warnings identified in 1) with code pointed by
stack trace associated with the bugs identified in 2).
      </p>
      <sec id="sec-2-1">
        <title>A. FindBugs</title>
        <p>
          FindBugs analyses Java class files to report warnings and
potential errors in the associated source code. The tool
performs analysis on Java class files without needing access to
the source code. It is stable, easy to use, and as mentioned
in [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] has higher precision compared to other tools such as
CodePro Analytix, PMD and UCDetector. It has a low rate
of false positives [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ], and has more than 400 types of bug
classification along with categorization based on severity level.
The analysis is based on bug patterns which are classified
into nine categories: Bad Practice, Correctness,
Experimental, Internationalization, Malicious Code Vulnerability,
Multithreaded Correctness, Performance, Security, and Dodgy Code.
The warnings reported by FindBugs can be further categorised
within the tool as: Scariest (Ranks 1-4), Scary (Ranks 1-9) and
Troubling (Ranks 1-14). The category includes all the bugs
with the ranking mentioned, for example, the ‘Scary’ category
will list the bugs included under the ‘Scariest’ category, as
well.
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>B. Eclipse</title>
        <p>We identified Eclipse as the object of analysis as it is a large
widely used open source project with good records of user
reported bugs over many years and versions of the software.
For our experimentation we focused on the analysis of Eclipse
version 4.4 (Luna) because it was the current version at the
time of our experimentation.</p>
      </sec>
      <sec id="sec-2-3">
        <title>C. Identification of potential bugs</title>
        <p>Java Jars associated with Eclipse versions 4.4 were analysed
using FindBugs version 3.0. Findbugs generated a list of
warnings pertaining to code considered as faulty.</p>
      </sec>
      <sec id="sec-2-4">
        <title>D. Search for user reported bugs</title>
        <p>The Eclipse project uses Bugzilla to track bugs reported
by users. In order to identify bugs that could be associated
with FindBugs warnings, we needed to identify bug reports
that included a documented stack-trace. This was achieved by
performing an advanced Bugzilla search for bugs that satisfied
the following criteria:</p>
      </sec>
      <sec id="sec-2-5">
        <title>Version: 4.4,</title>
      </sec>
      <sec id="sec-2-6">
        <title>Classification: Eclipse,</title>
        <p>Status: NEW, ASSIGNED, VERIFIED 1.</p>
        <p>We then inspected the query results to identify those bug
reports that included a documented stack-trace.</p>
      </sec>
      <sec id="sec-2-7">
        <title>E. Match FindBugs warnings with user reported Bugs</title>
        <p>Our last step was to match warnings generated by FindBugs
(Section IV-C) with user-reported bugs (Section IV-D). This
was achieved using the following steps:
1) For each of the bugs identified using the procedure
described in Section IV-D, we identified the Java class
that was the likely source of the reported bug. This class
was usually the one appearing at the top of the
stacktrace. In some cases, we had to traverse through lower
levels in the stack-trace to find matching classes.
2) We then searched for the above classes in the warnings
generated by FindBugs (Section IV-C) and analysed the
code associated with the warning. We did this by using
the FindBugs class name filter feature to show warnings
related to the class of interest.
3) Finding a matching line of code in the FindBugs warnings
establishes a connection between the warnings generated
by FindBugs and the bugs reported by users.</p>
        <p>1Because our experiment looks at the ability of FindBugs to find bugs that
have not been fixed, we ignore the bugs with CLOSED status. In addition,
we do not consider the possibility of bugs that have been closed incorrectly.</p>
      </sec>
      <sec id="sec-2-8">
        <title>F. Results of the Experiment</title>
      </sec>
      <sec id="sec-2-9">
        <title>1) Analysis of FindBugs warnings for Eclipse version 4.4:</title>
        <p>Our analysis of FindBugs warnings for Eclipse version 4.4
showed that static analysis of Eclipse version 4.4 generated
warnings in the categories of Correctness (652), Bad
Practice (547), Experimental (1), Multithreaded correctness (390),
Security (3), and Dodgy code (55) under the rank range of
Troubling (Rank 1-14), as depicted in Figure 5. We focused
on the Scariest warnings (Rank 1-4), considering them as real
problems requiring attention. There were 82 Scariest warnings
in total. These comprised 81 warnings in the Correctness
category and one in the Multi-threaded correctness category.</p>
        <p>Additional investigation found that warnings in the
Correctness category included a range of coding errors such as
comparisons of incompatible types, null pointer dereferences
and reading of uninitialized variables.</p>
        <p>Dodgy code</p>
        <p>Security
s
g
irnn Multithreaded correctness
a
fryoow Experimental
tgeaC Bad Practice</p>
        <p>Correctness
0
100 200 300 400 500 600 700</p>
        <p>Number of warnings</p>
      </sec>
      <sec id="sec-2-10">
        <title>2) Connection between FindBugs warnings and user re</title>
        <p>ported bugs: Execution of the query described in Section
IV-D resulted in a dataset of 2575 bugs, which included
347 enhancements. We excluded the enhancements from our
analysis. Out of the remaining bugs, we have analysed 1185
bug reports so far, 90 of which included a documented
stacktrace.</p>
        <p>We used the method described in Section IV-E to compare
the stack-trace in these 90 bug reports with the warnings
generated by FindBugs (Section IV-F1). We found that six
of the user reported bugs could be associated with FindBugs
warnings as presented in Table I. The data presented in the
table includes the Bugzilla Bug ID, a description of the bug,
and a description of the warning generated by FindBugs.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>V. DISCUSSION</title>
      <p>The model proposed in this paper considers that in order
to improve the adoption of university research outcomes,
researchers need to demonstrate its effectiveness in a real-world
scenario and think about the value of their research outcomes
beyond the lab boundaries. Our main purpose in conducting
the experiment described was to test the applicability of our
proposed model by analysing the value of a research tool in
industrial practice. Specifically, we evaluated the performance
of the FindBugs static analysis tool by analysing its capability
FindBugs Warning
Method call passes null for nonnull parameterThis method call passes a null value for a
nonnull method parameter. Either the parameter is annotated as a parameter that should
always be nonnull, or analysis has shown that it will always be dereferenced. Bug kind
and pattern: NP - NP NULL PARAM DEREF
Load of known null value. The variable referenced at this point is known to be null due
to an earlier check against null. Although this is valid, it might be a mistake (perhaps
you intended to refer to a different variable, or perhaps the earlier check to see if the
variable is null should have been a check to see if it was nonnull). Bug kind and pattern:
NP - NP LOAD OF KNOWN NULL VALUE
Possible null pointer dereference There is a branch of statement that, if executed,
guarantees that a null value will be dereferenced, which would generate a NullPointerException
when the code is executed. Of course, the problem might be that the branch or statement
is infeasible and that the null pointer exception can’t ever be executed; deciding that is
beyond the ability of FindBugs.</p>
      <p>Bug kind and pattern: NP - NP NULL ON SOME PATH
Non-virtual method call passes null for nonnull parameter A possibly-null value is
passed to a nonnull method parameter. Either the parameter is annotated as a parameter
that should always be nonnull, or analysis has shown that it will always be dereferenced.
Bug kind and pattern: NP - NP NULL PARAM DEREF NONVIRTUAL
Boxing/unboxing to parse a primitive A boxed primitive is created from a String, just to
extract the unboxed primitive value. It is more efficient to just call the static parseXXX
method.</p>
      <p>Bug kind and pattern: Bx - DM BOXED PRIMITIVE FOR PARSING
Possible null pointer dereference There is a branch of statement that, if executed,
guarantees that a null value will be dereferenced, which would generate a NullPointerException
when the code is executed. Of course, the problem might be that the branch or statement
is infeasible and that the null pointer exception can’t ever be executed; deciding that is
beyond the ability of FindBugs.</p>
      <p>Bug kind and pattern: NP - NP NULL ON SOME PATH
Possible null pointer dereference There is a branch of statement that, if executed,
guarantees that a null value will be dereferenced, which would generate a NullPointerException
when the code is executed. Of course, the problem might be that the branch or statement
is infeasible and that the null pointer exception can’t ever be executed; deciding that is
beyond the ability of FindBugs.</p>
      <p>Bug kind and pattern: NP - NP NULL ON SOME PATH
in generating warnings relating to real-world bugs reported by
users of the Eclipse IDE.</p>
      <p>Our results indicate that FindBugs is capable of identifying
bugs that will manifest themselves as bugs reported by users.
Since real-world evidence would influence the decision to
adopt a tool as indicated in the survey results, FindBugs
needs to improve the percentage of such warnings to make
the evidence convincing. Currently, FindBugs does not have
the intelligence to track the bug among the list of false
positives that can manifest. Our research provides improvement
directions to FindBugs in identifying the important bugs from
the warning base by analysing the historical data and user
requirement. FindBugs results can be improved by introducing a
new ‘user-impact’ category to classify the warnings which will
potentially have an impact in the client environment and hence,
need immediate attention. For this, sufficient information from
industrial practice needs to be applied into testing the research
tool.</p>
      <p>The model appears simple but it is challenging for
researchers to identify a scenario and approach users and/or data
to demonstrate the effectiveness of their tool or methods. It
might be difficult for them to find the user-filed data always.
Also, once they have the data to demonstrate the effectiveness,
they need a mechanism to propagate it to industry. Also,
the concern about the relevance of research suggests that
researchers need to think about the relevance of the problem they
are trying to address. These factors indicate that universities
and industry need to start collaborating at an early stage and
consider co-developing whenever possible and feasible. This
can pave a good start towards improving the relevance and
adoption of research outcomes in general, and bridging the
gap between industry and academia.</p>
      <sec id="sec-3-1">
        <title>A. Limitations and Threats to Validity</title>
        <p>Our experiments were limited by the small number of
Eclipse bugs reported with a documented stack-trace. It is
important to note that the ability to analyse only 90 of the
1185 bugs considered reflects a limitation of our approach
and does not reflect a limitation of FindBugs. There are some
limitations to the validity of our experiments:
1) FindBugs does not always point to the exact line number
referred to in the stack trace. It might be possible that
the source of error could be different from the warnings
provided by FindBugs.
2) While it is likely that the FindBugs warnings listed in</p>
        <p>
          Table I are the actual cause of the listed real-world bugs
reported by Eclipse users, we cannot be certain of this.
3) As there is lack of literature detailing the use of static
analysis tools like FindBugs by the Eclipse development
team, a comparison study was not feasible.
4) This test highlights the relevance of static analysis tools, low-adoption rates were due to a lack of awareness of static
though the effectiveness in real-world projects, particu- analysis tools among developers.
larly large scale projects, cannot be confirmed as the sam- None of the work described above analyses the effectiveness
ple size of our survey is small. However, by considering of FindBugs in identifying problems that manifest themselves
the sample sizes of 20 and 18 used in related studies [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ], as real-world bugs reported by users. The experiments
de[
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], we decided to proceed with our sample size of 27 scribed in this paper analyse the connection between warnings
participants. generated by the FindBugs static analysis tool and field defects
5) The conclusion might not be generalised as the results reported by Eclipse users on Bugzilla bringing in client into
are specific to the static analysis context. The proposed the perspective. The experiments test the applicability of our
model needs to be validated regarding the tools in other proposed model in the static analysis context.
phases of software development.
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>VI. RELATED WORK</title>
      <p>
        Adoption of software engineering research outcomes in
industry practice has been a concern [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. There have been
ongoing efforts to improve the adoption of research outcomes
since the 1970’s. However, the efforts mainly focused on
approaches to increase university-industry collaboration for
improving adoption through technology transfer. These efforts
include policy changes leading to establishment of TTOs in
universities and proposing models for effective technology
transfer [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. However, TTOs generally focus on building
collaborative relationships between researchers and industry
[
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] rather than the readiness of research outcomes for
adoption in industry. In this paper we demonstrated how some
simple experiments can analyse the effectiveness of software
engineering research tools in practice. Specifically we analysed
the effectiveness of a static analysis tool.
      </p>
      <p>
        Various experiments have been conducted to demonstrate
the effectiveness of the FindBugs static analysis tool by
showing that it is able to detect the specific problems it has been
designed to detect [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. However, our experiment
has been conducted in unconstrained environment that involves
real-world scenario that has impacted clients. Ruthruff et al.
[
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] involved developers in determining which reports were
useful and which ones were not. This information was used
to filter FindBugs warnings so that only those that developers
found useful were reported. We retrace the user-filed bug to
the warning generated by the static analysis tool. This can
pave way to create an intelligent mechanism to prioritise bugs
based on user-impact.
      </p>
      <p>
        Al Bessey et al. [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] identify several factors that impacted
the industry adoption of their static analysis tool Coverity [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ].
They include trust between the researchers and industry users,
the number of false positives, and the capability of the tool
to provide warnings relating to problems which have had a
significant impact on its users. Our work also confirms that
tool’s capability is important. It also identifies that licensing,
IDE integration and ease of use are significant factors.
      </p>
      <p>
        Johnson et al. [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] investigated the reasons behind the
low adoption rate of static-analysis tools despite their proven
benefits in finding bugs. Their investigations confirmed that
large numbers of false positives is a major factor in low
adoption rates. We note that their findings were based on the
survey of developers who had all used static analysis tools.
This meant that authors were not able to comment on whether
      </p>
    </sec>
    <sec id="sec-5">
      <title>VII. CONCLUSION AND FUTURE WORK</title>
      <p>We have proposed a model to contribute towards improving
the adoption of research tools by industry by demonstrating
the effectiveness of the tool in real world scenario. We have
presented a mechanism which involves a research tool as a
medium of building tangible evidence. A survey of software
developers supports our hypothesis that such tangible evidence
of effectiveness of a tool can have a positive influence on
realworld decisions to adopt static analysis tools.</p>
      <p>Further experiment for testing the applicability of the model
in the static analysis context was conducted. In this
experiment, by establishing a connection between user-reported bugs
and warnings generated by the FindBugs static analysis tool,
we have demonstrated the ability of static analysis tools to
eliminate some defects before software is deployed. However,
the evidence needs to be stronger regarding the number of such
connections in order to be more convincing and improving the
industrial adoption of the tool.</p>
      <p>Future research would present more detailed analysis of
the complete list of the bugs found in Section IV-F2, which
will provide us precise data about the effectiveness of the
tool according to our approach. Our approach also presents
a scenario where industry and university researchers can work
together to create more useful tools. We plan to discuss these
results with the FindBugs development team to explore the
possibility of strengthening the evidence and devising a new
classification user-impact to indicate the warnings that would
manifest in client-environment.</p>
      <p>Finally, we would like to adapt this approach to explore the
effectiveness of research tools involved in other phases of the
software development life-cycle.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>D.</given-names>
            <surname>Rombach</surname>
          </string-name>
          and
          <string-name>
            <given-names>F.</given-names>
            <surname>Seelisch</surname>
          </string-name>
          , “
          <article-title>Balancing agility and formalism in software engineering</article-title>
          ,” B. Meyer,
          <string-name>
            <given-names>J. R.</given-names>
            <surname>Nawrocki</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Walter</surname>
          </string-name>
          , Eds. Berlin, Heidelberg: Springer-Verlag,
          <year>2008</year>
          , ch.
          <source>Formalisms in Software Engineering: Myths Versus Empirical Facts</source>
          , pp.
          <fpage>13</fpage>
          -
          <lpage>25</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>A.</given-names>
            <surname>Endres and H. D. Rombach</surname>
          </string-name>
          ,
          <article-title>A handbook of software and systems engineering: empirical observations, laws and theories</article-title>
          .
          <source>Pearson Education</source>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M.</given-names>
            <surname>Ivarsson</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.</given-names>
            <surname>Gorschek</surname>
          </string-name>
          , “
          <article-title>A method for evaluating rigor and industrial relevance of technology evaluations,” Empirical Software Engineering</article-title>
          , vol.
          <volume>16</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>365</fpage>
          -
          <lpage>395</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4] University of Maryland, “Findbugs,”
          <source>viewed May</source>
          <year>2015</year>
          , http://findbugs.sourceforge.net,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>The</given-names>
            <surname>Eclipse</surname>
          </string-name>
          <string-name>
            <surname>Foundation</surname>
          </string-name>
          , “Eclipse,”
          <source>viewed May</source>
          <year>2015</year>
          , http://www.eclipse.org,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>R.</given-names>
            <surname>Grimaldi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kenney</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Siegel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Wright</surname>
          </string-name>
          , “
          <article-title>30 years after bayh-dole: Reassessing academic entrepreneurship</article-title>
          ,” Research Policy, vol.
          <volume>40</volume>
          , no.
          <issue>8</issue>
          , pp.
          <fpage>1045</fpage>
          -
          <lpage>1057</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>W. H.</given-names>
            <surname>Schacht</surname>
          </string-name>
          , “
          <article-title>Patent ownership and federal research</article-title>
          and
          <string-name>
            <surname>development (R&amp;D)</surname>
          </string-name>
          :
          <article-title>A discussion on the Bayh-Dole act and the Stevenson-Wydler act</article-title>
          .” Congressional Research Service, Library of Congress,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Siegel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. A.</given-names>
            <surname>Waldman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. E.</given-names>
            <surname>Atwater</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A. N.</given-names>
            <surname>Link</surname>
          </string-name>
          , “
          <article-title>Commercial knowledge transfers from universities to firms: improving the effectiveness of university-industry collaboration,”</article-title>
          <source>The Journal of High Technology Management Research</source>
          , vol.
          <volume>14</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>111</fpage>
          -
          <lpage>133</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>J. G.</given-names>
            <surname>Thursby</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Jensen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. C.</given-names>
            <surname>Thursby</surname>
          </string-name>
          , “
          <article-title>Objectives, characteristics and outcomes of university licensing: A survey of major us universities,”</article-title>
          <source>The Journal of Technology Transfer</source>
          , vol.
          <volume>26</volume>
          , no.
          <issue>1-2</issue>
          , pp.
          <fpage>59</fpage>
          -
          <lpage>72</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Siegel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. A.</given-names>
            <surname>Waldman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. E.</given-names>
            <surname>Atwater</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A. N.</given-names>
            <surname>Link</surname>
          </string-name>
          , “
          <article-title>Toward a model of the effective transfer of scientific knowledge from academicians to practitioners: qualitative evidence from the commercialization of university technologies</article-title>
          ,
          <source>” Journal of Engineering and Technology Management</source>
          , vol.
          <volume>21</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>115</fpage>
          -
          <lpage>142</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>R. L.</given-names>
            <surname>Glass</surname>
          </string-name>
          , “
          <article-title>The relationship between theory and practice in software engineering,” Communications of the ACM</article-title>
          , vol.
          <volume>39</volume>
          , no.
          <issue>11</issue>
          , pp.
          <fpage>11</fpage>
          -
          <lpage>13</lpage>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12] The Australian National University, “Anu polling online,
          <source>” viewed July</source>
          <year>2015</year>
          , ¡https://anubis.anu.edu.au/apollo/¿,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>Creative</given-names>
            <surname>Commons</surname>
          </string-name>
          <string-name>
            <surname>License</surname>
          </string-name>
          , “bugzilla,”
          <source>viewed May</source>
          <year>2015</year>
          , https://www.bugzilla.org,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>A. K.</given-names>
            <surname>Tripathi</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Gupta</surname>
          </string-name>
          , “
          <article-title>A controlled experiment to evaluate the effectiveness and the efficiency of four static program analysis tools for java programs</article-title>
          ,”
          <source>in Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering. ACM</source>
          ,
          <year>2014</year>
          , p.
          <fpage>23</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>D.</given-names>
            <surname>Hovemeyer</surname>
          </string-name>
          and
          <string-name>
            <given-names>W.</given-names>
            <surname>Pugh</surname>
          </string-name>
          , “
          <article-title>Finding bugs is easy,” ACM Sigplan Notices</article-title>
          , vol.
          <volume>39</volume>
          , no.
          <issue>12</issue>
          , pp.
          <fpage>92</fpage>
          -
          <lpage>106</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>B.</given-names>
            <surname>Johnson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Song</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Murphy-Hill</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>R.</given-names>
            <surname>Bowdidge</surname>
          </string-name>
          , “
          <article-title>Why don't software developers use static analysis tools to find bugs?” in Software Engineering (ICSE</article-title>
          ),
          <year>2013</year>
          35th International Conference on. IEEE,
          <year>2013</year>
          , pp.
          <fpage>672</fpage>
          -
          <lpage>681</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>L.</given-names>
            <surname>Layman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Williams</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R. S.</given-names>
            <surname>Amant</surname>
          </string-name>
          , “
          <article-title>Toward reducing fault fix time: Understanding developer behavior for the design of automated fault detection tools,” in Empirical Software Engineering</article-title>
          and Measurement,
          <year>2007</year>
          .
          <article-title>ESEM 2007</article-title>
          .
          <article-title>First International Symposium on</article-title>
          . IEEE,
          <year>2007</year>
          , pp.
          <fpage>176</fpage>
          -
          <lpage>185</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>S.</given-names>
            <surname>Beecham</surname>
          </string-name>
          , P. OLeary, I. Richardson,
          <string-name>
            <given-names>S.</given-names>
            <surname>Baker</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Noll</surname>
          </string-name>
          , “
          <article-title>Who are we doing global software engineering research for?</article-title>
          ”
          <source>in 2013 IEEE 8th International Conference on Global Software Engineering. IEEE</source>
          ,
          <year>2013</year>
          , pp.
          <fpage>41</fpage>
          -
          <lpage>50</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>S. L.</given-names>
            <surname>Pfleeger</surname>
          </string-name>
          , “
          <article-title>Understanding and improving technology transfer in software engineering</article-title>
          ,
          <source>” Journal of Systems and Software</source>
          , vol.
          <volume>47</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>111</fpage>
          -
          <lpage>124</lpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Siegel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Veugelers</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Wright</surname>
          </string-name>
          , “
          <article-title>Technology transfer offices and commercialization of university intellectual property: performance and policy implications</article-title>
          ,
          <source>” Oxford Review of Economic Policy</source>
          , vol.
          <volume>23</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>640</fpage>
          -
          <lpage>660</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>N.</given-names>
            <surname>Ayewah</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Pugh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. D.</given-names>
            <surname>Morgenthaler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Penix</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Zhou</surname>
          </string-name>
          , “
          <article-title>Using findbugs on production software,” in Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion</article-title>
          .
          <source>ACM</source>
          ,
          <year>2007</year>
          , pp.
          <fpage>805</fpage>
          -
          <lpage>806</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22] --, “
          <article-title>Evaluating static analysis defect warnings on production software,” in Proceedings of the 7th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering</article-title>
          . ACM,
          <year>2007</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>J. R.</given-names>
            <surname>Ruthruff</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Penix</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. D.</given-names>
            <surname>Morgenthaler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Elbaum</surname>
          </string-name>
          , and G. Rothermel, “
          <article-title>Predicting accurate and actionable static analysis warnings: an experimental approach</article-title>
          ,”
          <source>in Proceedings of the 30th international conference on Software engineering. ACM</source>
          ,
          <year>2008</year>
          , pp.
          <fpage>341</fpage>
          -
          <lpage>350</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bessey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Block</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Chelf</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Chou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Fulton</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Hallem</surname>
          </string-name>
          , C. HenriGros,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kamsky</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>McPeak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and D.</given-names>
            <surname>Engler</surname>
          </string-name>
          , “
          <article-title>A few billion lines of code later: using static analysis to find bugs in the real world,” Communications of the ACM</article-title>
          , vol.
          <volume>53</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>66</fpage>
          -
          <lpage>75</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>Synposys</given-names>
            <surname>Inc</surname>
          </string-name>
          ., “Coverity,”
          <source>viewed May</source>
          <year>2015</year>
          , http://www.coverity.com,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>