Grundlagen, Management und Wartungstechniken
Für die Notwendigkeit von Softwarewartung gibt es vor allem zwei Gründe: "ignorant surgery" sowie "lack of movement". Also wenn man die zugrunde liegende Architekturprinzipien der Software nicht kennt und Änderungen vornimmt bzw. wenn man die Software nicht an die sich steht veränderte Umgebung anpasst (neue Betriebsysteme, Bibliotheken etc.).
Was ist Softwarewartung?Softwarewartung ist der Prozess der Änderung, Modifizierung und Aktualisierung von Software entsprechend der Bedürfnisse des Kunden.
Welche Arten von Softwarewartung gibt es?Die unterschiedlichen Arten der Softwarewartung finden jeweils zu unterschiedlichen Anlässen und Zwecken statt. Deine Software muss im Laufe ihres Lebens möglicherweise eine, zwei oder auch alle Arten der Softwarewartung durchlaufen.
Es wird in der Softwarewartung zwischen folgenden vier Kategorien unterschieden:
Korrektive Softwarewartung ist die typische Form der Wartung. Eine korrektive Softwarewartung ist erforderlich, wenn die Software nicht richtig funktioniert. Störungen und Fehler können weitreichende Auswirkungen auf die allgemeine Funktion der Software haben und müssen daher so schnell wie möglich behoben werden.
Präventive SoftwarewartungPräventive Softwarewartung wirft einen Blick in die Zukunft und behebt Probleme, die zum jeweiligen Zeitraum unbedeutend erscheinen, die sich aber zukünftig zu größeren Problemen auswachsen könnten. Diese werden als latente Fehler bezeichnet, die entdeckt und korrigiert werden müssen. So ist garantiert ist, dass sie nicht zu tatsächlichen Störungen führen. Dazu gehört auch die Durchführung erforderlicher Änderungen, Updates und Adaptationen.
Perfektionierende SoftwarewartungPerfektionierende Softwarewartung hat zum Ziel, Software anzupassen, indem kleinere, neue Funktionen hinzugefügt und andere, die irrelevant oder ineffektiv sind, entfernt werden. Es werden aber auch Performannce-Optimierungen und Strukturverbesserungen im Rahmen von Refactoring oder Reengineering durchgeführt.
Adaptive SoftwarewartungZu guter Letzt zielt die adaptive Wartung auf die Anpassung der Software an veränderte technische Bedingungen der Umgebung, wie z.B. neue Betriebssystem- oder Datenbankversionen, aber auch neue Richtlinien und Vorschriften.
Korrektur | Verbesserung | |
Reaktiv | Korrektive Wartung | adaptive Wartung |
Proaktiv | Präventive Wartung | Perfektionierende Wartung |
Quelle: Softwarewartung, dpunkt.verlag, Heidelberg 2008
Am Ende des Tages ist die Definition im Detail aber gar nicht so relevant: Schlussendlich geht es darum, dass im Rahmen der Softwarewartung Code-Anpassungen vorgenommen werden. Diese Anpassungen haben zum einen unterschiedliche Gründe (siehe Tabelle oben) und zum anderen verschiedene Dringlichkeiten, d.h. dass zum Beispiel eine Korrektur (Patch) sofort notwendig sein kann, während eine adaptive Anpassung auch später vorliegen darf.
In der Wartung von Software geht es also darum, diese Anpassungen und unterschiedlichen Dringlichkeiten geeignet zu koordinieren. Softwarewartung ist somit normaler Bestandteil des Software-Entwicklungszyklus (Software Development Life Cycle, SDLC).
Hinweis: Wo liegt eigentlich der Unterschied zwischen Wartung und der Erweiterung/Weiterentwicklung eines Systems? Während die Softwarewartung lediglich einen ursprünglichen Zustand wieder herstellt, führt die Erweiterung zu einem Mehrwert des Systems. Das System kann, gemessen an seiner Umwelt, plötzlich mehr und bietet zusätzliche Funktionalität.