Ein Ausgangsstand für die Weiterentwicklung
Statische Codeanalysen untersuchen Quelltext auf festgelegte Regeln. Bei einer gewachsenen Anwendung können dabei zahlreiche bereits vorhandene Auffälligkeiten erscheinen, beispielsweise sehr umfangreiche Methoden oder problematische Abhängigkeiten. Würde jede solche Meldung sofort die weitere Entwicklung blockieren, müssten zunächst sämtliche Altbefunde bearbeitet werden.
Eine Baseline erfasst stattdessen den bewusst akzeptierten Ausgangsbestand. Neue Analysen können bekannte Meldungen von zusätzlichen Befunden unterscheiden. Die bekannten Probleme bleiben vorhanden; ihre Aufnahme in die Baseline ist eine Entscheidung über die weitere Bearbeitung, keine Behebung.
Die Identität eines Befunds
Ein Vergleich nur anhand der Zeilennummer wäre instabil. Schon ein zusätzlicher Kommentar am Dateianfang verschiebt nachfolgende Meldungen. Der Befund müsste dann erneut geprüft werden, obwohl sich an seiner Ursache nichts geändert hat.
Eine inhaltliche Kennung kann die verletzte Regel, die betroffene Klasse oder Methode und weitere Merkmale zusammenführen. Bei Methoden helfen auch die Parametertypen, gleichnamige Überladungen zu unterscheiden. Relative Dateipfade verhindern, dass verschiedene Arbeitsverzeichnisse der Entwickler allein zu anderen Kennungen führen.
Eine Datei verschieben oder eine Klasse umbenennen
Eine Dateiverschiebung verändert den Speicherort, aber nicht zwangsläufig die betroffene Klasse. Eine Umbenennung verändert dagegen auch deren Namen. Diese Fälle benötigen unterschiedliche Informationen. Ein Dateipfad kann Bestandteil einer Befundkennung sein; eine ergänzende Identität des deklarierten Codeelements kann den Bezug über eine reine Verschiebung hinweg erhalten.
Bei einer Umbenennung hilft die Versionsverwaltung, alte und neue Dateien miteinander in Verbindung zu bringen. Zusätzlich wird betrachtet, welche Codeelemente in der neuen Fassung vorhanden sind. Daraus können Vorschläge für die Übernahme bisheriger Zuordnungen entstehen.
Die Übernahme darf nicht allein auf einer ähnlichen Schreibweise beruhen. Wird eine große Klasse in zwei kleinere aufgeteilt, kommen mehrere Nachfolger infrage. Dann bleibt die Zuordnung zunächst offen, statt einen davon willkürlich als Fortsetzung zu behandeln.
Mehrdeutigkeit sichtbar lassen
Eine offene Zuordnung ist fachlich hilfreicher als eine scheinbar vollständige, aber falsche Übernahme. Die Prüfung kann zeigen, welcher bisherige Befund betroffen ist und welche Kandidaten als Nachfolger infrage kommen. Die Entscheidung wird anschließend bewusst bestätigt und dokumentiert.
Auch mehrere gleichartige Meldungen innerhalb derselben Methode erfordern zusätzliche Unterscheidung. Zwei ähnliche Fundstellen sind nicht schon deshalb derselbe Befund, weil Regel und Methodenname übereinstimmen. Der Vergleich muss berücksichtigen, ob er sich auf eine ganze Deklaration oder auf ein bestimmtes Vorkommen im Quelltext bezieht.
| Änderung | Zu prüfen |
|---|---|
| Kommentar verschiebt die Zeilen | Regel und Codeelement bleiben gleich. |
| Datei wird verschoben | Pfadänderung und erhaltene Deklaration unterscheiden. |
| Klasse erhält einen neuen Namen | Bezug zur bisherigen Deklaration gezielt bestätigen. |
| Klasse wird aufgeteilt | Mehrere mögliche Nachfolger nicht automatisch gleichsetzen. |
Die Baseline kontrolliert pflegen
Eine vollständige Neuerfassung nach jedem fehlgeschlagenen Prüflauf würde auch neue Verschlechterungen in den akzeptierten Bestand aufnehmen. Die Baseline verlöre damit ihre Funktion als Vergleichsgrundlage. Änderungen daran gehören deshalb ebenso in die Durchsicht wie Änderungen am eigentlichen Quelltext.
Für eine Übernahme sind der alte Bezug, die neue Zuordnung und der Anlass hilfreich. Nicht mehr vorhandene Meldungen können ebenfalls überprüft werden: Wurde die Ursache behoben, der betroffene Code entfernt oder lediglich die Regel abgeschaltet? Diese Unterschiede sollten im Ergebnis erkennbar bleiben.
Qualitätsregeln schrittweise einführen
Für eine Modernisierung lassen sich neue Verschlechterungen früh begrenzen, während vorhandene Befunde gezielt nach Risiko und Änderungsbedarf bearbeitet werden. Dafür werden passende Regeln, der akzeptierte Ausgangsstand und die Zuständigkeit für spätere Baseline-Änderungen vereinbart.
Der Nutzen liegt in einem nachvollziehbaren Vergleich: Bekannte Probleme bleiben sichtbar, neue Befunde werden nicht durch eine pauschale Aktualisierung verborgen, und strukturelle Umbauten führen zu überprüfbaren Zuordnungen.