Werkzeuge 18.01.2010 - 13:04
Schlagwörter: Softwareentwicklung, Softwarearchitektur
Während der Softwareentwicklung gehen oft Architektur und Programmcode auseinander. Dadurch erhöht sich der Aufwand für die Pflege und Wartung erheblich, denn kaum jemand kann die nun unverständlich gewordene Software noch nachvollziehen. Mit SonarJ will das Münchener Unternehmen hello2morrow gegensteuern: Das Softwarearchitektur-Werkzeug prüft während der Entwicklung, ob Code und Architektur übereinstimmen.
In der "Made in Germany"-Artikelserie stellt heise Developer Unternehmen aus dem deutschsprachigen Raum vor, die mit innovativen Produkten im Bereich Softwareentwicklung oder angrenzenden Gebieten aufwarten. Diese Hidden Champions der IT-Branche brauchen sich international nicht zu verstecken.
Der Einsatz von SonarJ soll das verhindern. Projektleiter können mit dem Werkzeug die Architektur der geplanten Software definieren und mit Softwaremetriken Zielgrößen für die technische Softwarequalität festlegen. Die Modellierung der Architektur erfolgt grafisch (SonarJ-Architect) in Form einer Matrix, die sich das Unternehmen mittlerweile hat patentieren lassen. Sie besteht aus technischen Layern (zum Beispiel User Interface, Geschäftslogik oder Datenzugriff) und vertikalen Slices.
Die Visualisierung der Architektur und Abhängigkeitsstruktur eines Systems soll den Überblick erleichtern. Wenn also Entwickler bei der Programmierung von der Architektur abweichen, sehen sie rot: SonarJ markiert die betreffenden Codezeilen und überwacht die Einhaltung der Architekturvorgaben – sowohl bei fertigen Java-Systemen als auch während der Entwicklung.
SonarJ visualisiert die Struktur von Java-Systemen (Abb. 1).
Die Beschäftigung mit dem Thema Softwarequalität geht für von Zitzewitz zurück bis in die 90er-Jahre. 1999 war er an einem Projekt für einen Automobilhersteller beteiligt, das die Softwarequalität mit Guidelines und Metriken messen sollte, um sicherzustellen, dass Programmcode und Architektur sich nicht auseinanderentwickeln.
Auf der Basis der Erfahrungen hat er gemeinsam mit zwei weiteren Programmierern die Software SonarJ entwickelt und im Sommer 2005 das Unternehmen hello2morrow in Berg bei München gegründet – den ersten Kunden konnten sie Ende 2005 gewinnen. Im Gründungsjahr gewann die Firma den Preis der Münchener IT-Messe Systems für die "spannendste Innovation". "Viele Unternehmen haben noch gar nicht das Bewusstsein, ihre Software regelmäßig zu messen. Es ist noch viel Überzeugungsarbeit erforderlich", so von Zitzewitz.
Projektleiter können mit dem Werkzeug die Architektur der geplanten Software definieren und mit Softwaremetriken Zielgrößen für die technische Softwarequalität festlegen (Abb. 2).
SonarJ visualisiert und analysiert den Java-Code und Klassen-Files dahingehend, ob sie mit der im Vorfeld definierten logischen Architektur konform sind, und findet in der Architektur nicht vorgesehene und nicht dokumentierte Abhängigkeiten auf Klassen-, Paket- und Modulebene. Ein "Cycle Visualization and Breakup Tool" schlägt Restrukturierungsmaßnahmen vor. Die Korrekturen des von der Architektur abweichenden Codes können Entwickler zunächst über virtuelle Refactorings simulieren, die die Auswirkungen auf das gesamte System darstellen.
Das Werkzeug benötigt kein Repository, sondern nutzt ausschließlich den Speicher. Laut von Zitzewitz kann SonarJ große Projekte analysieren mit mehreren Millionen Codezeilen. Sie lassen sich in Subprojekte, horizontal und vertikal, unterteilen. Gleichzeitig unterstützt das Softwareachitektur-Werkzeug eine schrittweise Sanierung. In den Build-Prozess integriert, liefert der SonarJ-Server regelmäßige Informationen über die Struktur des Softwaresystems.
Darüber hinaus lässt sich mit dem Werkzeug die technische Qualität von fertiger Software prüfen, zum Beispiel von externen Zulieferern auf der Basis statischer Codeanalysen. SonarJ visualisiert die innere Struktur und wertet die Softwaremetriken aus.
SonarJ misst die Qualität von Software anhand von Metriken (Abb. 3)
Auf der nächsten Seite: Perspektive
Themenforum: Java