Softwarewartung
In der Softwaretechnik bezeichnet der Begriff Softwarewartung „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.“ (Definition gemäß IEEE 610.12-1990)
Im weiteren Sinne darf man auch Dienstleistungen und Maßnahmen, die die von der Norm beschriebenen Veränderungen begleiten oder unterstützen, zur Softwarewartung rechnen. Die Softwarewartung dient in der Regel dazu, die Verwendbarkeit und Betriebssicherheit von Software zu erhalten.
1 Arten der Softwarewartung
2 Wartungsaufwand
§Arten der Softwarewartung[Bearbeiten]
Man unterscheidet zwischen korrektiver, perfektionierender und adaptiver Wartung:
korrektive Wartung: die Beseitigung von Fehlern
perfektionierende Wartung: Verbesserung von Attributen wie etwa der Performanz oder der Wartbarkeit. Darunter fällt insbesondere die Bereinigung des Entwurfs oder der Implementierung durch Reengineering (Software), Refactoring usw.
adaptive Wartung: Anpassung der Software an veränderte technische Bedingungen der Umgebung (vgl. IEEE 610.12-1990 und ISO/IEC 12207)
Bei der Beseitigung von Fehlern differenzieren manche Quellen noch zwischen korrektiver und präventiver Wartung, wobei unter präventiver Wartung dann die Behebung von solchen Fehlern verstanden wird, die bekannt, aber beim Anwender noch nicht in Erscheinung getreten sind (vgl. IEEE 610.12-1990).
§Wartungsaufwand[Bearbeiten]
In die Wartung fliesst traditionell der größte Teil des Aufwandes des Software-Lebenszyklus. Der für die Wartung einzurechnende Aufwand steigt darüber hinaus stetig - rechnete man noch in den 1970er Jahren damit, dass der Wartungsaufwand 35 % bis 60 % des Gesamtaufwandes des Softwarelebenszyklusses ausmacht, stieg dieser bis Ende der 1990er Jahre auf 80 % bis 90 %.[1] Dies entspricht den Vorhersagen von Lehman in seinen Gesetzen der Softwareevolution 1980.[2]
Ob und mit wie viel Aufwand Software gewartet werden muss, hängt stark ab von der betreffenden Software (Fehlerdichte, Wartbarkeit), ihrem Einsatz (Fehleroffenbarung durch unterschiedliche Anwendungsszenarien; dem Wunsch, bestimmte Attribute zu verbessern) und der Einsatzdauer (änderndes Umfeld). Bei unternehmenskritischer Software leistet die Softwarewartung in der Regel einen erheblichen Beitrag zur Investitionssicherheit, stellt andererseits aber auch einen erheblichen Kostenfaktor dar. Daher sind Wartungsvereinbarungen bei unternehmenskritischer Software häufig zu finden. Je nach vereinbartem Service Level (vgl. Service Level Agreement) liegen die jährlichen Kosten dabei üblicherweise in der Größenordnung von 10 % bis 30 % der Investitionssumme der Software.
Wenn bereits beim Systementwurf das notwendige Augenmerk auf eine angemess