InfoQ

News

Current Status of Java Static Analysis Tools

Posted by Rob Thornton on Nov 14, 2006 06:01 AM

Community
Java
Topics
Debugging,
Build systems
Tags
Eclipse TPTP,
IntelliJ IDEA,
Checkstyle,
PMD,
FindBugs,
Project Jackpot

Static analysis tools help developers locate potential problems in their code. Static analysis is an inspection of code without executing it, looking for problems as varied as misunderstood APIs to use of the wrong boolean operators. This post summarizes the six of the leading tools and discusses the current trends in static analysis tools.

Gregg Sporar gives an overview of FindBugs, Checkstyle, PMD, Intellij IDEA's Inspections, Eclipse Testing and Performance Tools Platform, and Netbeans Project Jackpot. He summarizes his findings in this table:

Name Free? Examines Scriptable? Automatically Apply Fixes? Java API? Other extensions
FindBugs Yes Byte code Yes No Yes No
Checkstyle Yes Source Yes No Yes No
PMD Yes Source Yes No Yes XPath
IntelliJ IDEA No Source Yes Yes Yes No
Eclipse TPTP Yes Source No? Yes Yes Templates
NetBeans Project Jackpot Yes Source Planned Yes Yes Rule language

He sees three trends coming in the world of static analysis tools. The first is that these tools are increasing being integrated into IDEs. Intellij IDEA has had these tools for awhile, but recently Eclipse and Netbeans have picked them up with Eclipse TPTP and Project Jackpot. The second is that the tools within the IDEs are gaining the ability to automatically fix the discovered problems. The last trend, is that the tools are becoming scriptable, in the sense that you can create your own definitions for bugs.

2 comments

Reply

Hammurapi by Nikolay Kolev Posted Nov 14, 2006 1:21 PM
Eclipse TPTP by paul browne Posted Nov 24, 2006 5:33 AM
  1. Back to top

    Hammurapi

    Nov 14, 2006 1:21 PM by Nikolay Kolev

    Another tool worth mentioning is Hammurapi.

  2. Back to top

    Eclipse TPTP

    Nov 24, 2006 5:33 AM by paul browne

    While there is a good intro to the Eclipse Test and Performance Project here , does anybody know of an article outlining how to use TPTP for Enterprise Java apps? Paul , Technology in Plain English

Exclusive Content

Measuring Agile in the Enterprise: 5 Success Factors for Large-Scale Agile Adoption

Michael Mah analyzes the development process in 5 companies: 2 Agile (one of them BMC) and 3 classic. He presents the factors which contributed to the success of BMC's Agile adoption.

Tom Preston-Werner on Powerset, GitHub, Ruby and Erlang

In this interview filmed at RubyFringe 2008, Tom Preston-Werner talks about how both Powerset and GitHub use Ruby and Erlang, as well as tools like Fuzed, god, and more.

David Laribee on Alt.NET and its Mission

David Laribee discusses the purpose of ALT.NET, its mission and future.

Discover RailsKits and Stop Writing Redundant Code

Ruby on Rails has become a popular Ruby framework for creating web applications in recent years. An aspect of creating a web application is the need to repeatedly create the same base functionality.

A Formal Performance Tuning Methodology: Wait-Based Tuning

Steven Haines talks about tackling web application performance tuning by proposing a method called wait-based tuning.

Shaw and Fowler About Forging a New Alliance

Shaw and Fowler talk about the need for a new relationship between the business department and the IT department. Studies have shown that projects mostly fail due to miscommunication between the two.

How to GET a Cup of Coffee

In this article, Jim Webber, Savas Parastatidis and Ian Robinson show how to drive an application's flow through the use of hypermedia in a RESTful application.

Archaeopteryx: A Ruby MIDI Generator

Eccentric artist turned overnight anti-celebrity, Giles Bowkett captures the heart and soul of RubyFringe as he demonstrates his revolutionary Archaeopteryx MIDI drum pattern generator.