Table of Contents

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:

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

Process