Tool-Radar: Hammurapi 5

Pavlo Baron

Zum historischen Hintergrund: Hammurapi bzw. Hammurabi war ein Herrscher Babylons, der sich u.a. als Gesetzgeber mit einem eigenen Codex verewigt hatte. Seine Gesetze sowie der Prozess, deren Einführung und Kontrolle dienten vielen Folgezivilisationen als Vorlage. Auch die Hammurapi Group bediente sich für die Code-Governance dieser Vorlage.

Bereits vor mehreren Jahren bot es sich an, Java-Code-Reviews mithilfe von Hammurapi 3 zu automatisieren. Ob im Rahmen der kontinuierlichen Qualitätssicherung oder bei einmaligen Initial-Reviews, unterstützte das Tool auf der Suche nach versteckten Problemstellen und bei der Messung und Überwachung unterschiedlicher Codemetriken. Der Toolschwerpunkt lag damals auf Java und der recht tiefen Analyse unterschiedlicher Codequalitätsmerkmale wie DPMO (Defects per Million Opportunities). Eine Möglichkeit zur Anreicherung mit eigenen Inspektoren rundete den Funktionsumfang ab. Noch immer kann man mit Hammurapi 3 arbeiten, wenn man allerdings auf die seit Java 1.4 eingeführten Spracherweiterungen verzichten kann. Diese Version wird weiterhin auf der Herstellerwebsite angeboten.

Pavel Vlasov, der Entwickler von Hammurapi, hatte dann mit der Ankündigung von Hamurapi 4 die entsprechenden sprachlichen Anpassungen (Java 1.5+) sowie Review-Möglichkeit weiterer Sprachen bzw. Content-Typen wie SQL etc. anvisiert. Es passierte jedoch lange kaum etwas, bis das Warten dann in Form von Hammurapi 5 endlich sein Ende gefunden hatte. Hammurapi 5 schickt sich an, eine ganze Code-Governance-Plattform zu sein bzw. zu werden. Aus einem zentralen Tool wurde nun ein so genanntes Componentry, das diverse Entwicklungen um den Hammurapi herum umfasst.

Zunächst liegt mit Mesopotamia eine Code-Repository-Verwaltung vor, die unabhängig von der Quellsprache eine abstrakte Codedarstellung in der Datenbank ablegt und als Objektgraphen anbietet. Die so genannten Scans werden von Hammurapi eingelesen bzw. analysiert und die dazugehörigen Sourceeinheiten bzw. Sprachelemente durch diverse, erweiterbare Inspektoren geschickt, die in ihrer Standardform auf einer JSR-94-fähigen Rules Engine namens „Hammurapi Rules“ basieren. Diese Inspektoren melden Warnungen, Verletzungen sowie Metriken an den Hammurapi, der die Ergebnisse sammelt und in einem Webreport bereitstellt. Alle „Teile“, die an dem Code-Governance-Prozess beteiligt sind, sind auch separat nutzbar – die Rules Engine sowie das Mesopotamia, das zumindest auf den ersten Blick in der Nutzung und im Vorgehen komfortabler aussieht als eine klassische AST-basierte Codeanalyse.

Geschrieben von
Pavlo Baron
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.