Klocwork provides the most comprehensive set of capabilities for enabling developers to customize Klocwork's analysis for C, C++ and Java to meet their unique organizational, regulatory or code base requirements.
The foundation for this capability is a high-level declarative language that allows developers to easily extend Klocwork's extensive built-in library by adding their own checkers using one of two types of language frameworks:
- Abstract Syntax Tree (AST) checkers are used when the checker doesn't require runtime state to evaluate an error condition and can be found entirely within the source tree
- Example AST checker: Classes must not place calls to virtual member functions within constructors or destructors
- Data flow checkers require knowledge of the code's runtime state and complex data flow across function call boundaries in order to create effective analysis
- Example data flow checker: The collection returned by the Arrays.asList() method is immutable and must not be modified - any attempt to modify it will throw a runtime exception.
Checker development can be done through the Checker Studio
product module which provides developers with the following feature set:
- Design support through comprehensive documentation of the available APIs, sample checkers, and tutorials for creating new checkers
- Development support through the availability of a checker development tool chain to navigate the Klocwork-generated AST, allowing developers to more easily implement checkers
- Deployment support through a simplified, "one button" checker deployment that introduces an automated "push model" for deploying custom checkers to the developer's desktop.
The third capability provided by Klocwork is the Checker Exchange
, which is a customer forum for open source checker development where users can browse available custom checkers, download the source code for checkers they want, and contribute enhancements or checkers of their own. Source code for several families of checkers developed by Klocwork have been made available starting with MISRA, COM and Symbian analysis.
Last Updated ( Friday, 26 April 2013 02:20 )