1<html> 2<head> 3<title>FindBugs™ Fact Sheet</title> 4<link rel="stylesheet" type="text/css" href="findbugs.css"> 5 6</head> 7<body> 8 9<table width="100%"><tr> 10 11 12<td bgcolor="#b9b9fe" valign="top" align="left" width="20%"> 13<table width="100%" cellspacing="0" border="0"> 14<tr><td><a class="sidebar" href="index.html"><img src="umdFindbugs.png" alt="FindBugs"></a></td></tr> 15 16<tr><td> </td></tr> 17 18<tr><td><b>Docs and Info</b></td></tr> 19<tr><td><font size="-1"><a class="sidebar" href="findbugs2.html">FindBugs 2.0</a></font></td></tr> 20<tr><td><font size="-1"><a class="sidebar" href="demo.html">Demo and data</a></font></td></tr> 21<tr><td><font size="-1"><a class="sidebar" href="users.html">Users and supporters</a></font></td></tr> 22<tr><td><font size="-1"><a class="sidebar" href="http://findbugs.blogspot.com/">FindBugs blog</a></font></td></tr> 23<tr><td><font size="-1"><a class="sidebar" href="factSheet.html">Fact sheet</a></font></td></tr> 24<tr><td><font size="-1"><a class="sidebar" href="manual/index.html">Manual</a></font></td></tr> 25<tr><td><font size="-1"><a class="sidebar" href="ja/manual/index.html">Manual(ja/日本語)</a></font></td></tr> 26<tr><td><font size="-1"><a class="sidebar" href="FAQ.html">FAQ</a></font></td></tr> 27<tr><td><font size="-1"><a class="sidebar" href="bugDescriptions.html">Bug descriptions</a></font></td></tr> 28<tr><td><font size="-1"><a class="sidebar" href="mailingLists.html">Mailing lists</a></font></td></tr> 29<tr><td><font size="-1"><a class="sidebar" href="publications.html">Documents and Publications</a></font></td></tr> 30<tr><td><font size="-1"><a class="sidebar" href="links.html">Links</a></font></td></tr> 31 32<tr><td> </td></tr> 33 34<tr><td><a class="sidebar" href="downloads.html"><b>Downloads</b></a></td></tr> 35 36<tr><td> </td></tr> 37 38<tr><td><a class="sidebar" href="http://www.cafeshops.com/findbugs"><b>FindBugs Swag</b></a></td></tr> 39 40<tr><td> </td></tr> 41 42<tr><td><b>Development</b></td></tr> 43<tr><td><font size="-1"><a class="sidebar" href="http://sourceforge.net/tracker/?group_id=96405">Open bugs</a></font></td></tr> 44<tr><td><font size="-1"><a class="sidebar" href="reportingBugs.html">Reporting bugs</a></font></td></tr> 45<tr><td><font size="-1"><a class="sidebar" href="contributing.html">Contributing</a></font></td></tr> 46<tr><td><font size="-1"><a class="sidebar" href="team.html">Dev team</a></font></td></tr> 47<tr><td><font size="-1"><a class="sidebar" href="api/index.html">API</a> <a class="sidebar" href="api/overview-summary.html">[no frames]</a></font></td></tr> 48<tr><td><font size="-1"><a class="sidebar" href="Changes.html">Change log</a></font></td></tr> 49<tr><td><font size="-1"><a class="sidebar" href="http://sourceforge.net/projects/findbugs">SF project page</a></font></td></tr> 50<tr><td><font size="-1"><a class="sidebar" href="http://code.google.com/p/findbugs/source/browse/">Browse source</a></font></td></tr> 51<tr><td><font size="-1"><a class="sidebar" href="http://code.google.com/p/findbugs/source/list">Latest code changes</a></font></td></tr> 52</table> 53</td> 54 55<td align="left" valign="top"> 56 57<h1>FindBugs™ Fact Sheet</h1> 58 59<p> FindBugs looks for bugs in Java programs. It is based 60on the concept of <i>bug patterns</i>. A bug pattern is a code 61idiom that is often an error. Bug patterns arise for a variety 62of reasons: 63</p> 64 65<ul> 66<li> Difficult language features 67<li> Misunderstood API methods 68<li> Misunderstood invariants when code is modified during maintenance 69<li> Garden variety mistakes: typos, use of the wrong boolean operator 70</ul> 71 72<p> FindBugs uses <i>static analysis</i> to inspect Java bytecode 73for occurrences of bug patterns. 74Static analysis means that FindBugs can find bugs by simply inspecting 75a program's code: executing the program is not necessary. 76This makes FindBugs very easy to use: in general, you should be 77able to use it to look for bugs in your code within a few minutes of downloading it. 78FindBugs works by analyzing Java bytecode (compiled class files), 79so you don't even need the program's source code to use it. 80Because its analysis is 81sometimes imprecise, FindBugs can report <i>false warnings</i>, 82which are warnings that do not indicate real errors. 83In practice, the rate of false warnings reported by FindBugs 84is less than 50%. 85</p> 86 87<p> 88FindBugs supports a plugin architecture allowing anyone to add new 89bug detectors. The <a href="publications.html">publications page</a> 90contains links to articles describing how to write a new detector 91for FindBugs. If you are familiar with Java bytecode 92you can write a new FindBugs detector in as little as a few minutes. 93</p> 94 95<p> FindBugs is free software, available under the terms of the 96<a href="http://www.gnu.org/copyleft/lesser.html">Lesser GNU Public License</a>. 97It is written in Java, and can be run with any virtual machine compatible 98with Sun's JDK 1.5. It can analyze programs written for any version 99of Java. FindBugs was originally developed by Bill Pugh and David Hovemeyer. 100It is maintained by Bill Pugh, and 101a <a href="team.html">team of volunteers</a>. 102</p> 103 104<p> FindBugs uses <a href="http://jakarta.apache.org/bcel/">BCEL</a> to 105analyze Java bytecode. 106As of version 1.1, FindBugs also supports bug detectors written using 107the <a href="http://asm.objectweb.org/">ASM</a> bytecode framework. 108FindBugs uses <a href="http://dom4j.org/">dom4j</a> 109for XML manipulation. 110</p> 111 112 113<hr> <p> 114<script language="JavaScript" type="text/javascript"> 115<!---//hide script from old browsers 116document.write( "Last updated "+ document.lastModified + "." ); 117//end hiding contents ---> 118</script> 119<p> Send comments to <a class="sidebar" href="mailto:findbugs@cs.umd.edu">findbugs@cs.umd.edu</a> 120<p> 121<A href="http://sourceforge.net"><IMG src="http://sourceforge.net/sflogo.php?group_id=96405&type=5" width="210" height="62" border="0" alt="SourceForge.net Logo" /></A> 122 123</td> 124 125</tr></table> 126 127</body> 128</html> 129