Für die Software-Entwicklung in einer Bundesbehörde hat msg mit einer Open-Source-Lösung ein Tool zur Verbesserung der Qualitätssicherung entwickelt. Das neue Sonar jQAssistant Plugin bildet nun eine Brücke zwischen jQAssistant und SonarQube. Damit wird die Qualitätsüberwachung effektiver und sicherer.
Bei einer komplexen Software mit Dutzenden Anwendungen bilden klare Standards in der Software-Architektur das Rückgrat einer nachhaltigen Entwicklung. Je exakter die Architekturregeln in jeder Code-Zeile und jedem Bauabschnitt (Build) der Software-Artefakte eingehalten werden, desto größer ist die Qualität der Software im täglichen Einsatz. In der Realität arbeiten aber auf einem langjährigen Projekt zur Software-Entwicklung sehr schnell 50 oder mehr Mitarbeiter. Auch wenn sie mithilfe von Tutorials und Checklisten auf die Architekturregeln eingeschworen werden, kommt es regelmäßig zu Verstößen. Einer kontinuierlichen Qualitätssicherung im Entwicklungsprozess kommt daher eine große Bedeutung zu. Denn jede Regelverletzung kann zu Fehlern in der späteren Anwendung führen und treibt die Kosten der Wartung und Weiterentwicklung dauerhaft in die Höhe. Die Fehler können zum Ausfall der gesamten Software führen.
SonarPlugin integriert jQAssistant in SonarQube als zentrale Code-Analyse-Plattform
Bisher erfolgte die Qualitätssicherung üblicherweise im Rahmen eines Continuous-Integration-Prozesses durch manuelle Reviews. Diese traditionellen Ansätze skalieren jedoch nicht, sind zeitaufwendig und oftmals auch nicht zuverlässig. Die grundlegende Idee der Open-Source-Lösung jQAssistant (jQA) ist, bei jedem Build-Vorgang eines Projekts zu prüfen, ob alle Architekturregeln eingehalten werden. jQA ist dafür in das Build-Management-Tool Maven integriert und erstellt automatisch einen Bericht über Regelabweichungen. Stellt jQA Verstöße gegen die Soll-Architektur fest, erhält der Entwickler zusätzlich eine E-Mail, in der ihm der Regelverstoß mitgeteilt wird. Dieser korrigiert seine Programmierfehler und es erfolgt erneut eine automatische Prüfung durch jQA. Zusätzlich lässt sich jQA so konfigurieren, dass der Build-Vorgang bei auftretenden Verstößen abgebrochen wird.
Das von msg entwickelte Sonar jQAssistant Plugin integriert nun diese jQA-Analyseberichte in die SonarQube-Plattform. SonarQube ist ein Analyse-Tool zur kontinuierlichen Überwachung der technischen Qualität von Sourcecode. Es wird häufig im Unternehmensumfeld von Qualitätsverantwortlichen verwendet, um sich an zentraler Stelle einen schnellen und sicheren Überblick über den Stand der Entwicklung zu verschaffen. Hierfür bietet SonarQube umfangreiche Auswertungen und Dashboards. Durch die Integration von jQAssistant erkennen sie neben Fehlern im Programmcode jetzt auch die Einhaltung oder Abweichungen von Architekturregeln.
Das Sonar jQAssistant Plugin schließt eine Lücke zwischen der Architekturüberwachung und der Qualitätssicherung in SonarQube.
Kontinuierliche Analyse der Architekturkonformität
Durch die kontinuierlich im Hintergrund ausgeführte Prüfung seitens jQA wird die Architekturkonformität im laufenden Prozess langfristig gesichert. Manuelle Reviews sind dadurch seltener erforderlich und es kann eine gleichbleibende oder steigende Qualität in jedem Build erreicht werden. Vor allem für langjährige Software-Projekte mit verschiedenen Entwicklern stellt die automatisierte Überwachung der Architekturregeln einen großen Entwicklungsschritt dar. Auf Dauer beugt dies einer schleichenden Erosion der Architektur vor. Erweiterungen können schneller vorgenommen und unerwünschte Seiteneffekte vermieden werden, sodass der Wartungsaufwand sinkt. Die Zuverlässigkeit steigt und damit lassen sich auch mittel- bis langfristig die Kosten reduzieren.
Die von msg entwickelte Lösung mit dem SonarPlugin sorgt dafür, dass jQA noch größere Chancen hat, sich als Standard durchzusetzen. Das SonarPlugin hilft durch die Integration zudem dabei, die praktische Überwachung durch Architekten und Projektleiter effektiver zu gestalten als bisher.