Strict Standards: Declaration of action_plugin_siteexport_ajax::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /homepages/24/d93998614/htdocs/www.hammurapi.com/dokuwiki/lib/plugins/siteexport/action/ajax.php on line 17

Strict Standards: Declaration of action_plugin_siteexport_startup::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /homepages/24/d93998614/htdocs/www.hammurapi.com/dokuwiki/lib/plugins/siteexport/action/startup.php on line 39

Strict Standards: Declaration of action_plugin_tag::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /homepages/24/d93998614/htdocs/www.hammurapi.com/dokuwiki/lib/plugins/tag/action.php on line 117

Strict Standards: Declaration of action_plugin_jcapture::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /homepages/24/d93998614/htdocs/www.hammurapi.com/dokuwiki/lib/plugins/jcapture/action.php on line 47

Strict Standards: Declaration of action_plugin_statistics::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /homepages/24/d93998614/htdocs/www.hammurapi.com/dokuwiki/lib/plugins/statistics/action.php on line 51

Strict Standards: Declaration of action_plugin_keywords::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /homepages/24/d93998614/htdocs/www.hammurapi.com/dokuwiki/lib/plugins/keywords/action.php on line 65

Warning: ob_start(): function 'compress_handler' not found or invalid function name in /homepages/24/d93998614/htdocs/www.hammurapi.com/mantis/core.php on line 39

SYSTEM WARNING: Cannot modify header information - headers already sent by (output started at /homepages/24/d93998614/htdocs/www.hammurapi.com/dokuwiki/lib/plugins/siteexport/action/ajax.php:17)

Hammurapi [Hammurapi Group]

Hammurapi

This is the home page of Hammurapi 6. The previous version of Hammurapi - 5.7.0 - is here.

Version

6.3.0

This release features core API, configuration editors and reporters. It doesn't contain language modules and inspector sets. The “out-of-the-box” release cannot be used for automated reviews, it is intended to be used by language module developers.

License

Value proposition

Automated code quality governance reduces TCO for software intensive systems by enforcing development guidelines and detecting potential problems with minimal overhead for the development organization.

Resources

Concepts

Hammurapi is a code review framework, which allows to build different code review solutions. Code is not necessary a source file written in some programming language, it can be anything that can be represented as an object model - database schema obtained from JDBC connection metadata, XML files, JMS or J2EE server configuration obtained through administration API, … you name it.

The picture above shows steps in the code review process. The process takes source code as input and produces a code quality report as output. Sections below describe each step in the process.

Parse

This step in the process takes source code (e.g. .java files) and constructs object model (e.g. abstract semantic graph in the case of Java) which is more suitable for analysis than “raw” sources.

Parsing is performed by Language modules. Language module is a Java library.

Review

During the review step the source model is traversed and individual model elements are inspected for compliance with development guidelines. Inspection is performed by Java classes called inspectors. Inspectors are organized into inspector sets. Inspectors report observations. There are four types of observations:

  • Annotation - HTML fragment which is included into model element's report page.
  • Measurement - Name value pair, e.g. cyclomatic complexity = 10
  • Violation - (Potential) problem with the code. E.g. empty catch block.
  • Warning - A problem with executing the review, e.g. misconfiguration, or exception.

Render

During this step the model, inspector set, and observations are rendered by Reporters to produce a report. In the standalone embodiment the report produced in HTML format, in the plug-in embodiment some observations types (Violations and Warnings) are reported using IDE API's.

Solution components

  • Language modules parse sources into a model for review.
  • Inspectors and inspector sets review the model.
  • Reporters produce reports.
  • Component configuration file defines review configuration - modules, inspector sets for modules, and reporters.
  • Hammurapi Core API defines configuration model and interfaces to assemble different review configurations.

Process

  • Create/reuse language module.
  • Create inspectors and inspector set.
  • Create component configuration - use Hammurapi Review Model editor with Component root object.
Last modified: 2010/04/02 19:32 by Pavel Vlasov
   
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Hammurapi Group