Softwarewartung

Grundlagen, Management und Wartungstechniken

Definition

Der Begriff der Softwarewartung wird oft unterschiedlich verstanden und daher ist es nicht so leicht eine klare, allgemeingültige Definition zu finden. In der, zwar inzwischen zurückgezogenen Norm [IEEE 610.12-1990], wird Wartung beschrieben als „die Veränderung eines Softwareprodukts nach dessen Auslieferung, um Fehler zu beheben, Performanz oder andere Attribute zu verbessern oder Anpassungen an die veränderte Umgebung vorzunehmen.“

Es wird in der Softwarewartung also zwischen folgenden Kategorien unterschieden:

Die korrektive Wartung bezieht sich dabei auf das klassische beseitigen von Fehlern, genauso wie die präventive Wartung, mit dem Unterschied selbst erkannte Fehler zu beheben, bevor sie der Anwender bemerkt hat.

Unter perfektionierender Wartung versteht man nebst Performanz-Optimierungen, insbesondere Strukturverbesserungen im Rahmen von beispielsweise Refactoring oder Reengineering.

Zu guter Letzt zielt die adaptive Wartung auf die Anpassung der Software an veränderte technische Bedingungen der Umgebung, wie z.B. neue Betriebssystem- oder Datenbankversion.

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 sofort notwendig sein kann (Patch), 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: dringende Korrekturen erfolgen sofort (Patch), Verbesserungen können oft etwas Warten und neue Funktionen erfolgen erst mit der nächsten Version.

Insofern hat Softwarewartung sehr viel mit der Lebenszyklusbetrachtung von Software zu tun.

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.