Jede Software hat eine Architektur!

Kontinuierliche Überprüfung

Sonargraph Quality bietet die Möglichkeit, jederzeit die komplette Analyse eines Systems inklusive Quellcode als so genannten „Snapshot“ in einer Datenbank abzulegen. Dazu wird bei der Installation des Tools eine lokale PostgreSQL-Datenbank installiert und konfiguriert. Mehrere dieser Snapshots, die zu demselben analysierten System gehören, bilden eine Time Series. Der neueste Snapshot wird, falls vorhanden, beim Öffnen eines gespeicherten Systems ebenfalls geladen. Mithilfe der View SNAPSHOTS kann man die einzelnen Snapshots eines Systems managen (d. h. Anlegen, Löschen und Im- bzw. Exportieren). Einer Time Series liegt ein einheitliches Qualitätsmodell zu Grunde, das bestimmt, welche Metriken berechnet werden und welche Grenzwerte dafür gelten sollen. Man kann diese Qualitätsmodelle für die gesamte Time Series ändern (sog. Migration). Der größte Nutzwert der Time Series liegt darin, dass man die Veränderungen zwischen den einzelnen Snapshots sichtbar machen kann. Dies geschieht z. B. in der Metrics-View (Abb. 5).

Abb. 5: Time-Series-Vergleichsansicht. (Vergrößern)

Hier kann man erkennen, wie sich die Metriken im Vergleich zu einem beliebigen anderen Snapshot verändert haben (Hervorhebung von Verbesserungen und Verschlechterungen). Es ist z. B. über Ant/Maven-Skripte möglich, diese Snapshots regelmäßig automatisch zu erstellen und einen Report über die neuesten Änderungen zu erzeugen (idealerweise im Rahmen des Continuous Build). Dadurch kann ein Qualitätssicherungsbeauftragter im Projekt sofort erkennen, ob sich die Implementierung von der vorgegebenen Architektur entfernt hat und entsprechend gegensteuern.

Natürlich lassen sich die Snapshots nicht nur auf einer lokalen Datenbank speichern, sondern auf jeder beliebigen PostgresDB, die von Sonargraph Quality erreichbar ist. In der Dokumentation wird allerdings darauf hingewiesen, dass die Snapshots bei großen Systemen erheblichen Speicherplatz benötigen können, je nachdem ob der Quellcode mit abgelegt wird oder nicht. Daher können sie, ähnlich eines Log-File Roll-Over, regelmäßig automatisch im Rahmen der Erstellung neuer Snapshots gelöscht werden.

Integration in Sonar

Werden bereits mithilfe des von SonarSource angebotenen Tools Sonar Qualitätsanalysen einer Software durchgeführt, bietet sich die Nutzung des Sonargraph Plug-ins an, um die Ergebnisse der Sonargraph-Analyse in Sonar zu integrieren. Die Namensähnlichkeit zu Sonargraph ist übrigens laut hello2morrow reiner Zufall [2]. Mithilfe des Plug-ins kann ein Großteil der von Sonargraph berechneten Metriken und Analysen in Sonar sichtbar gemacht und Veränderungen über die Zeit beobachtet werden. Dazu bietet das Plug-in drei Widgets an: Structural Debt Index, Architecture und Relative Package Cyclicity. Der Funktionsumfang entspricht grob dem des Dashboards in Sonargraph [3]. Um diese Analysedaten zu berechnen, wird ein Maven Plug-in in den Build der zu analysierenden Software aufgenommen. Dieses muss vor der eigentlichen Sonar-Analyse laufen und bereitet die von Sonargraph ermittelten Daten für Sonar auf. Für das Plug-in fallen keine weiteren Lizenzkosten an.

Kommentare

Schreibe einen Kommentar

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