Codequalität in Alt- und Wartungsprojekten

Codequalität in Alt- und Wartungsprojekten


In jedem neuen Softwareprojekt wird, oder zumindest sollte es so sein, der Qualitätssicherung von Beginn an ein hoher Stellenwert zugeschrieben. Dies umfasst nicht nur eine hohe Testabdeckung der fachlichen Logik, sondern spiegelt sich auch im Aufbau des Quellcodes selbst wider. Qualitätssicherung in Alt- und Wartungsprojekten, die bereits ein Jahrzehnt oder länger existieren, ist hingegen eine zeitintensive Mammutaufgabe, deren Einführung gut überlegt sein will. Allgemeine Probleme und erste Lösungsansätze mit Checkstyle, PMD und einem Code Formatter stehen im Fokus des ersten Teils dieser Artikelserie.

Sobald alle Stories abgeschlossen, Features programmiert, Testfälle bestanden sind und die Software erfolgreich beim Kunden ihren Dienst verrichtet, beginnt die längste und wohl zäheste Phase im Softwareleben: die Wartung. Diese ist meist durch das Beheben von Fehlern gekennzeichnet (Abb. 1). Dabei kann zu Beginn noch auf das umfassende Fachwissen der ursprünglichen Entwickler zurückgegriffen werden, die nicht nur bestimmte Architekturentscheidungen getroffen haben, sondern auch die fachliche Qualifikation besitzen, auftretende Fehler schnell zu identifizieren und zu beheben. Mit der Zeit jedoch geht dieses Wissen verloren, sei es durch die Bearbeitung von zahlreichen neuen Projekten oder durch die Fluktuation bei den Mitarbeitern selbst. Neue, motivierte Entwickler kommen mit der nun schon in die Jahre gekommenen Software in Kontakt und müssen die aktuellen Fehler bearbeiten oder sogar neue Erweiterungen implementieren und testen.

Artikelserie

Teil 1: Erste Lösungsansätze mit Checkstyle, PMD und einem Code Formatter

Teil 2: Höhere Testabdeckung mit Mockito

winter_1.eps_fmt1.jpgAbb. 1: Lebenszyklus der Software, unterteilt in Entwicklung und Wartung

Never change a running system

Am einfachsten und für die neuen Mitarbeiter wahrscheinlich auch am reizvollsten wäre eine komplette Neuimplementierung der Anwendung. Nicht nur könnte man so alle alten Fehler korrigieren; es bestünde auch noch die Möglichkeit, moderne Technologien einzusetzen, neue Frameworks zu evaluieren und aktuelle Entwurfsmuster (Design-Patterns) in die Architektur mit einfließen zu lassen. Insgesamt, so die Intention, würde die Anwendung schneller reagieren, besser aussehen, Erweiterungen wären einfacher zu realisieren und das verloren gegangene Fachwissen im Unternehmen wäre wiederhergestellt.

Die Realität sieht jedoch anders aus. Anwendungen, die bereits seit Jahren erfolgreich und ohne größere Probleme in...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang