blob: 6be73682b71572892dba2c9e9d9209d7d93b158c [file] [log] [blame]
<title>FindBugs&trade; Fact Sheet</title>
<link rel="stylesheet" type="text/css" href="findbugs.css">
<table width="100%"><tr>
<td bgcolor="#b9b9fe" valign="top" align="left" width="20%">
<table width="100%" cellspacing="0" border="0">
<tr><td><a class="sidebar" href="index.html"><img src="umdFindbugs.png" alt="FindBugs"></a></td></tr>
<tr><td><b>Docs and Info</b></td></tr>
<tr><td><font size="-1">&nbsp;<a class="sidebar" href="findbugs2.html">FindBugs 2.0</a></font></td></tr>
<tr><td><font size="-1">&nbsp;<a class="sidebar" href="demo.html">Demo and data</a></font></td></tr>
<tr><td><font size="-1">&nbsp;<a class="sidebar" href="users.html">Users and supporters</a></font></td></tr>
<tr><td><font size="-1">&nbsp;<a class="sidebar" href="">FindBugs blog</a></font></td></tr>
<tr><td><font size="-1">&nbsp;<a class="sidebar" href="factSheet.html">Fact sheet</a></font></td></tr>
<tr><td><font size="-1">&nbsp;<a class="sidebar" href="manual/index.html">Manual</a></font></td></tr>
<tr><td><font size="-1">&nbsp;<a class="sidebar" href="ja/manual/index.html">Manual(ja/&#26085;&#26412;&#35486;)</a></font></td></tr>
<tr><td><font size="-1">&nbsp;<a class="sidebar" href="FAQ.html">FAQ</a></font></td></tr>
<tr><td><font size="-1">&nbsp;<a class="sidebar" href="bugDescriptions.html">Bug descriptions</a></font></td></tr>
<tr><td><font size="-1">&nbsp;<a class="sidebar" href="bugDescriptions_ja.html">Bug descriptions(ja/&#26085;&#26412;&#35486;)</a></font></td></tr>
<tr><td><font size="-1">&nbsp;<a class="sidebar" href="bugDescriptions_fr.html">Bug descriptions(fr)</a></font></td></tr>
<tr><td><font size="-1">&nbsp;<a class="sidebar" href="mailingLists.html">Mailing lists</a></font></td></tr>
<tr><td><font size="-1">&nbsp;<a class="sidebar" href="publications.html">Documents and Publications</a></font></td></tr>
<tr><td><font size="-1">&nbsp;<a class="sidebar" href="links.html">Links</a></font></td></tr>
<tr><td><a class="sidebar" href="downloads.html"><b>Downloads</b></a></td></tr>
<tr><td><a class="sidebar" href=""><b>FindBugs Swag</b></a></td></tr>
<tr><td><font size="-1">&nbsp;<a class="sidebar" href="">Open bugs</a></font></td></tr>
<tr><td><font size="-1">&nbsp;<a class="sidebar" href="reportingBugs.html">Reporting bugs</a></font></td></tr>
<tr><td><font size="-1">&nbsp;<a class="sidebar" href="contributing.html">Contributing</a></font></td></tr>
<tr><td><font size="-1">&nbsp;<a class="sidebar" href="team.html">Dev team</a></font></td></tr>
<tr><td><font size="-1">&nbsp;<a class="sidebar" href="api/index.html">API</a> <a class="sidebar" href="api/overview-summary.html">[no frames]</a></font></td></tr>
<tr><td><font size="-1">&nbsp;<a class="sidebar" href="Changes.html">Change log</a></font></td></tr>
<tr><td><font size="-1">&nbsp;<a class="sidebar" href="">SF project page</a></font></td></tr>
<tr><td><font size="-1">&nbsp;<a class="sidebar" href="">Browse source</a></font></td></tr>
<tr><td><font size="-1">&nbsp;<a class="sidebar" href="">Latest code changes</a></font></td></tr>
<td align="left" valign="top">
<h1>FindBugs&trade; Fact Sheet</h1>
<p> FindBugs looks for bugs in Java programs.&nbsp; It is based
on the concept of <i>bug patterns</i>.&nbsp; A bug pattern is a code
idiom that is often an error.&nbsp; Bug patterns arise for a variety
of reasons:
<li> Difficult language features
<li> Misunderstood API methods
<li> Misunderstood invariants when code is modified during maintenance
<li> Garden variety mistakes: typos, use of the wrong boolean operator
<p> FindBugs uses <i>static analysis</i> to inspect Java bytecode
for occurrences of bug patterns.&nbsp;
Static analysis means that FindBugs can find bugs by simply inspecting
a program's code: executing the program is not necessary.&nbsp;
This makes FindBugs very easy to use: in general, you should be
able to use it to look for bugs in your code within a few minutes of downloading it.&nbsp;
FindBugs works by analyzing Java bytecode (compiled class files),
so you don't even need the program's source code to use it.&nbsp;
Because its analysis is
sometimes imprecise, FindBugs can report <i>false warnings</i>,
which are warnings that do not indicate real errors.&nbsp;
In practice, the rate of false warnings reported by FindBugs
is less than 50%.
FindBugs supports a plugin architecture allowing anyone to add new
bug detectors.&nbsp; The <a href="publications.html">publications page</a>
contains links to articles describing how to write a new detector
for FindBugs.&nbsp; If you are familiar with Java bytecode
you can write a new FindBugs detector in as little as a few minutes.
<p> FindBugs is free software, available under the terms of the
<a href="">Lesser GNU Public License</a>.&nbsp;
It is written in Java, and can be run with any virtual machine compatible
with Sun's JDK 1.5.&nbsp; It can analyze programs written for any version
of Java.&nbsp; FindBugs was originally developed by Bill Pugh and David Hovemeyer.&nbsp;
It is maintained by Bill Pugh, and
a <a href="team.html">team of volunteers</a>.
<p> FindBugs uses <a href="">BCEL</a> to
analyze Java bytecode.&nbsp;
As of version 1.1, FindBugs also supports bug detectors written using
the <a href="">ASM</a> bytecode framework.&nbsp;
FindBugs uses <a href="">dom4j</a>
for XML manipulation.
<hr> <p>
<script language="JavaScript" type="text/javascript">
<!---//hide script from old browsers
document.write( "Last updated "+ document.lastModified + "." );
//end hiding contents --->
<p> Send comments to <a class="sidebar" href=""></a>
<a href=""><img src=";type=5" width="210" height="62" border="0" alt="FindBugs on" /></a>