Thema: Werkzeuge für Software-QS und -Test

10:25 - 11:10

Statische Codeanalyse - nutzlos ohne Codereview?

Daniel Röder, Saxonia Systems AG

Die Bedeutung der statischen Codeanalyse hat in den letzten Jahren stark zugenommen. In der Java Welt sind die beiden Werkzeuge PMD und Checkstyle feste Größen zur Überwachung von Formatierung, Quellcodekonvention, Architektur und Komplexität. Daher werden sie bereits in vielen Projekten eingesetzt und die Regeln auch im Continuous Integration System automatisch ausgeführt.  Die Ergebnisse und der Trend der statischen Codeanalyse werden dabei häufig als Maß für die „Gesundheit“ des Projektes herangezogen. Man kann in diesen Projekten beobachten, wie Entwickler, aufgrund von Zeitdruck oder Unwissenheit, die Verletzungen an den Regeln auf sehr kreative Art und Weise umgehen, um „gesunde“ Projekte zu generieren. Diese „Lösungen“ richten aber oftmals einen größeren Schaden in Bezug auf die Codequalität an, als dies bei einem Verbleiben der Verletzung der Fall gewesen wäre.
In meinem Vortrag möchte ich anhand von praktischen Beispielen zeigen, zu welchen „kreativen“ Lösungen Entwickler kommen können, und was für Schaden dadurch in Bezug auf Codequalität und Wartbarkeit entstehen kann. Damit verdeutliche ich den Nutzen für das Einführen eines Codereview Prozesses. Neben dem grundsätzlichen Vorgehen wird auf die Vor- und Nachteile von Review-Tools hingewiesen und erläutert, welche Chancen sich durch Reviews, auch ohne Toolunterstützung, ergeben können.

Daniel Röder, Saxonia Systems AG

Nach dem Studium der angewandten Informatik an der TU-Chemnitz startete Daniel Röder als Consultant für Java Softwareentwicklung bei der Saxonia Systems AG. Bei zahlreichen Projekten in den Branchen Energiewirtschaft (Vattenfall), Banken & Versicherung (HSH-Nordbank, Bremer Landesbank), Handel (OTTO, Payback) sowie der Halbleiterindustrie (Globalfoundries) konnte er in den vergangenen sieben Jahren vielfältige Erfahrungen zum Thema Codequalität, statische Codeanalyse und Reviewprozesse sammeln, wobei er die Rollen des Lead Developers, Reviewers und Architekten inne hatte.