icancode.de

JArchitect – Software richtig überwachen

Einleitung

Rico Magnucki

Rico Magnucki

21st Century Digital Boy und Blog-Gründer. Studiert naturwissenschaftliche Informatik in Bielefeld. Auf dem Blog ist er der Ansprechpartner für LaTeX, schreibt Tutorials, dreht die Videos für YouTube und durchforstet das Internetz nach spannenden Dingen.


Neuste Artikel

HP Deskjet 3636 – Multitalent zum schmalen Preis 09th April, 2017

NETGEAR AC1750 Smart WLAN-Router im Test 10th January, 2016

Software

JArchitect – Software richtig überwachen

Veröffentlicht am .

Software wird immer größer, funktionaler und komplexer. Das heißt im Umkehrschluss aber auch, dass die Qualitätssicherung einen immer wichtigeren Standpunkt einnimmt. Bei großen Projekt ist der Einstieg in eben diese Qualitätssicherung allerdings ziemlich schwierig. Wo fange ich an? Was kontrolliere ich eigentlich? Wie behalte ich einen Überblick?

Don’t comment bad code — rewrite it!
—Brian W. Kernighan and P. J. Plaugher

An dieser Stelle setzt JArchitect an. Das Tool ist in der Lage, Java Programme bis ins kleinste Detail zu analysieren. Dabei ist es selbst in Java geschrieben, was man ihm leider ansieht. Javaception quasi ;) Das Tool ist sowohl für Windows, als auch für Mac und Linux verfügbar. Dabei sind die Systemvorraussetzungen gut einzuhalten. Auf Linux-Maschinen sollte glibc mindestens in Version 2.13 verfügbar sein. Ansonsten ist es ratsam 2 GB RAM zu haben, da Java sehr RAM-hungrig ist.

Die Zahl der Analysemöglichkeiten ist hoch – sehr hoch. So besteht z.B. die Möglichkeit, die folgenden Dinge zu untersuchen:

  • Code Query Linq
  • Qualitätsmetriken (82 an der Zahl)
  • Vergleich von Builds
  • Diagramme
  • Trend Monitoring
  • Abhängigkeitszyklen
  • Reporting

Aber dazu nachher mehr.

Aktuell ist JArchitect in Version 4.0.0.7500 verfügbar. Mit diesem Release wurde das Dashboard aufgehübscht und Trendmonitoring eingebaut.

Zum Ausprobieren, gibt es eine kostenlose 14-Tage Testversion (full feature). Danach muss tief in die Tasche gegriffen werden. Eine Privatlizenz beläuft sich auf $299. Dafür erhält man JArchitect mit vollem Funktionsumfang. Für Firmen gehen die die Preise schnell in die Höhe. Eine Developer-Lizenz startet beispielsweise bei $549.

Habt ihr ein Open Source Projekt, könnt ihr eine kostenlose Open Source Lizenz von JArchitect anfordern.

Der Funktionsumfang ist dermaßen hoch, dass die fast 300 Dollar definitiv gerechtfertigt sind. Ist euch das zuviel, ist euer Projekt wahrscheinlich auch nicht groß genug, als dass sich die Analyse mit JArchitect lohnt. Das soll jetzt nicht heißen, dass sich das Tool nur für große Projekte eignet. Meiner Meinung nach ist der Aufwand für die Einarbeitung jedoch so hoch, dass es bei kleinen Projekten durchaus sinnvoller ist, die Analyse per Hand zu machen.

Der Start

Aller Anfang ist schwer. So kam ich mir jedenfalls vor, als ich JArchitect das erste Mal ausprobiert habe. Dann habe ich die Dokumentation gefunden und kam doch ziemlich schnell rein.

Für den Anfang reicht es, ein neues Projekt anzulegen und JArchitect mit einer .jar oder .war zu füttern. Anschließend werden die Ordner mit den Dependencies angegeben und schon kann es losgehen. Ihr könnt auch direkt ein IntelliJ, Eclipse, Maven oder Netbeans Projekt laden, dass erspart euch die Angabe der Dependencies. Dabei ist wichtig, dass die entsprechenden Projektdateien vorhanden sind: pom.xml für Maven, .project für Eclipse, project.properties für NetBeans und das .idea Verzeichnis für IntelliJ.

Nach der Analyse solltet ihr ein Ergebnis bekommen, dass in etwas so aussieht.

JArchitect Projekt Übersicht

Von hieraus könnt ihr nun eure Analyse starten und euch ansehen, was ihr verbessern könntet.

Die eigentlich Reports sind dann auch nicht mehr in eine Java GUI gepfropft, sondern werden in einer ansehnlicheren HTML Oberfläche im Browser präsentiert.

JArchitekt Report Sidebar

Um euch den Einstieg zu erleichtern, bietet JArchitect sog. Case Studies an. Dort besteht die Möglichkeit, sich anzusehen, wie große Projekte analysiert werden. Das ist besonders in der Hinsicht sinnvoll, als dass ihr wahrscheinlich gerade kein großes Projekt zur Hand habt, um einen ordentlichen Dependency Graphen zu erstellen. Wenn doch: Umso besser! Unter den Case Studies befinden sich Projekte wie Hibernate und Spring – also definitiv Projekte, die als groß bezeichnet werden dürfen.

JArchitect DependencyGraphView
InternalDependeciesOnGraph
JArchitect Trend Chart

Kleine Projekte

Bei kleinen Projekten wird das Dashboard wahrscheinlich nicht so sonderlich hilfreich sein. Hier sind die Code Metriken interessant.
JArchitect stellt in der aktuellen Version 82 Metriken zur Verfügung. 12 davon beziehen sich direkt auf die Anwendung. Beispielsweise Lines of Code, Lines of Comments, Verhältnis Code zu Kommentaren, Anzahl der Pakete, Anzahl von Methoden und Feldern und Code Coverage.
Auf Projektebene gibt es 18 Metriken. Neben einigen der oben genannten, fallen hier auch Relationale Kohäsion, Instabilität und Abstraktheit rein.
Die übrigen 43 Metriken beziehen sich auf Typen, Methoden und Felder. Ist der Code von sämtlichen Warnungen befreit und wurden alle Hinweise befolgt, kann man davon ausgehen, dass ein sehr ordentliches Projekt vorliegt. Detailliertere Angaben zu den Metriken findet ihr auf der Homepage des Tools.

Plattformunabhängigkeit

Wie oben schon erwähnt, ist JArchitect für alle gängigen Plattformen verfügbar. Nichtsdestotrotz ist die Funktionalität der Windows-Version größer, als die der anderen beiden Plattformen. Das ist ziemlich schade. Woran es genau liegt, kann ich mir auch nicht recht erklären. Die Versionen für Linux und Mac sollen jedoch nachziehen, wie mir vom Team von JArchitect versichert wurde.

Fazit

Ähnlich wie eine neue IDE verfügt JArchitect über eine Vielzahl von Funktionen, Knöpfen und Oberflächen. Nach anfänglichen Startschwierigkeiten muss ich zugeben, dass ich viele Infos, die mir JArchitect ausspuckt, als sehr hilfreich empfinde. Ein paar kleine Abzüge gibt es in der B-Note, da das Tool (noch) nicht für Retina Bildschirme angepasst ist (soll aber kommen). An die Java Oberfläche kann man sich durchaus gewöhnen. Die eigentlichen Reports werden schließlich in einer HTML Oberfläche ausgegeben, die sehr angenehm zu bedienen ist. Die Frage, die sich mir immer wieder aufgedrängt hat, während ich am Testen war: „Schieße ich hier gerade mit Kanonen auf Spatzen?“ Einfach weil die schiere Zahl der Möglichkeiten für die kleinen Nebenprojekte des einzelnen fast schon zu viel sind. Außerdem habe ich es leider nicht hinbekommen, eines meiner Android Projekte damit zu analysieren.

Rico Magnucki

Rico Magnucki

http://magnucki.de

21st Century Digital Boy und Blog-Gründer. Studiert naturwissenschaftliche Informatik in Bielefeld. Auf dem Blog ist er der Ansprechpartner für LaTeX, schreibt Tutorials, dreht die Videos für YouTube und durchforstet das Internetz nach spannenden Dingen.

Navigation