Free Newsletters
Technology & Business Daily

InfoWorld
Log-in | Register

Coverity and Klocwork code analyzers drill deeper

Industry leaders show remarkable scalability and prowess but differ in design philosophy


Much in common

Return to special report

DOWNLOAD PDF

Click here to download InfoWorld's special report Code analyzers


As they perform similar tasks, both products share many aspects. They are driven by the same makefiles or project configuration files that drive a compiler. They build the code base using the compiler and watch the commands issued to the compiler, log them, and then generate a translated equivalent for their own analyzers. In this way, the analyzer is looking through exactly the same code base and files as the compiler. The tools then read through the code as the compiler would and perform the analysis. In both cases, the principal display mechanism for the results is HTML, which is made available via an embedded Web browser. Both products enable developers to make changes to one or more code files and post these changes to the central defects repository. The analysis engine will then comb through the changes and update the defect list, removing references to bugs that have now been remediated. In this way incremental updates to the defect list are possible.

The display of bugs is highly customizable. Due to the likelihood of many defects, the tools can constrain defect lists via a wide variety of filters. Managers can make comments about individual defects, and these comments will follow the defect anywhere it's displayed.

Both products had extensions oriented toward scanning for security holes. However, these options are new extensions that lack the maturity of existing stand-alone security checkers, such as those from Fortify and Secure Software.

Despite these similarities, the products diverged in significant areas.

Klocwork K7 v.7.0.4.15

Klocwork is a company formed 10 years ago by development managers at Nortel Networks to design programming tools that could handle the massive code bases used in telephone switches. Due to the fact that these switches are made up of many millions of lines of code, K7 has robustness and scalability built in. Not only does the analyzer scale easily across oceans of code, but the package contains extensive tools for managing the many results. The central project console has remarkably cogent visual representations of the code base and the exact status of the defect database, as it has changed over time. Extensive drill-down capabilities enable managers to view the entire project on one screen or view the status by project components, modules, files, even down to individual lines of code.

A separate utility presents extraordinary pictorial analysis of the complex relationships between files and functions. This tool is by a wide margin the most impressive code navigation tool I have seen. But beyond the navigational aspects, it can identify odd relationships that would indicate bugs, such as a library of functions making calls to an application -- a definite no-no. This relationship would never be flagged by the analyzer as suspect, because it cannot access this higher-level view.

K7 also has fine reporting capabilities. One click in the management console can generate an extensive PDF file (filters enable managers to include or exclude a wide variety of data), exportable text, or XML files. One option enables defects to be exported to the open source Bugzilla bug-tracking tool.

A key differentiator is that K7 can analyze C, C++, and Java, whereas Coverity's product works only on C and C++. K7 can perform analysis based on Java source code and bytecodes, the latter being Java's form of executable file. If the bytecodes contain debug information, K7 can trace defects back to specific lines of code. If not, it can simply identify that a certain type of bug has been found. This option enables sites that rely on third-party Java components to screen them for possible defects before use and to identify the type of defect to the vendor.

Overall, this is a comprehensive and very impressive package, made available at a remarkably low price.

Coverity Prevent 2.2.2

The Coverity tool emerged from academia; in many ways, it retains the feel of that environment. Whereas Klocwork K7 provides comprehensive analysis tools and a well-designed set of supporting utilities, Coverity Prevent is a pure analyzer with a simple interface. It has no management console. The only way to see what has changed between runs of the analyzer is to run diff -- a programming utility from Unix that identifies what has changed in a source file. Whatever differences it comes up with, that's what's new. Dashboards or other displays of project status are nonexistent.

Andrew Binstock is senior contributing editor of the InfoWorld Test Center.
Continued
« PREVIOUS PAGE | 1 | 2 | 3 | NEXT PAGE » 

 The Bottom Line

Coverity Prevent 2.2.2
Coverity, coverity.com

Good  7.2
criteria score weight
Defect discovery 8 40%
Defect management 5 25%
Configurability 8 15%
Interoperability 8 10%
Value 7 10%

Cost:
Price based on total code size for all projects regardless of number of seats; 500,000 lines of code, $50,000 per year

Platforms:
Windows, Linux, Solaris (SPARC and x86), HP-UX, NetBSD, FreeBSD

Bottom Line:
Coverity Prevent is a highly configurable source analyzer that scales well and runs on numerous platforms. It goes beyond traditional static code analyzers in its discovery of defects but analyzes only C and C++, lacks defect management tools, and provides a constrained view of the kinds of bugs it reports.

About our Reviews and Scoring Methodology

 The Bottom Line

Klocwork K7 v. 7.0.4.15
Klocwork, klocwork.com

Very Good  8.2
criteria score weight
Defect discovery 8 40%
Defect management 9 25%
Configurability 7 15%
Interoperability 8 10%
Value 9 10%

Cost:
$3,995 per user; projects with as many as 500,000 lines of code require at least five seats, larger projects require more seats

Platforms:
Windows, Linux, Solaris

Bottom Line:
Klocwork K7 is a comprehensive analytical suite with excellent defect discovery and an extensive management console. In addition, it provides superior code navigation and analysis tools. K7 works on C, C++, and Java — source and bytecodes — but is limited to mainstream platforms.

About our Reviews and Scoring Methodology


Talkback:

commentPost a Comment

 

MOST COMMENTS

 
 





Solutions to the Toughest IT Challenges in Remote Offices
Though small in size, remote offices face many of the same IT challenges as larger central offices. This Webcast zeroes in on the top line challenges to deliver information that can provide immediate benefits to your business. Sponsor: AMD and Dell

»  Click here to view this Webcast
  Zombie PCs Are Attacking Your LAN
A recent study showed that malware-infected zombie PCs are now a bigger threat to ISPs and Web infrastructure than DoS attacks. As this brand new IT Strategy Guide explains, an increased use of peer-to-peer techniques by the attackers has made it harder to fight back. Download now, compliments of Verio:

»  Click here to download now

- Special Advertising Partners -
WHITE PAPERS
 

» Technology White Papers Library

Technology White Papers by Topic

Technology White Papers E-mail Alert

Find out when the latest white paper is available:
 
 
INFOWORLD MARKETPLACE
 
» BUY A LINK NOW
 
 

Video

 
 
 

Podcasts

 
 
 

 

Columnists

 
 
 

Resource Center


Ads by techwords beta  [See your link here]
 




Sponsored Technology Links

 
 
 HOME  NEWS  BLOGS  PODCASTS  VIDEOS  TECHNOLOGIES  TEST CENTER  EVENTS  CAREERS   About | Advertise | Awards | RSS | Contact Us 

Copyright © 2008, Reprints, Permissions, Licensing, IDG Network, Privacy Policy, Terms of Service.
All Rights reserved. InfoWorld is a leading publisher of technology information and product reviews on topics including viruses,
phishing, worms, firewalls, security, servers, storage, networking, wireless, databases, and web services.

CIO :: ComputerWorld :: CSO :: Demo :: GamePro :: Games.net :: IDG Connect :: IDG World Expo
Industry Standard :: IT World :: JavaWorld :: LinuxWorld :: MacUser :: Macworld :: Network World :: PC World :: Playlist