Softwarewartung

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

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.

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 angemessene Wartbarkeit gelegt wird, kann unnötig hohen Aufwänden für die Softwarewartung vorgebeugt werden. Bei hohen Wartungsaufwänden wird die Softwarewartung in der Regel von einer fest organisierten Gruppe von Mitarbeitern (Wartungsorganisation) in einem geordneten Wartungsprozess betrieben (vgl. Bommer/Spindler/Barr).

Siehe auch[Bearbeiten]

Literatur[Bearbeiten]

  • Ch. Bommer, M. Spindler, V. Barr: Softwarewartung - Grundlagen, Management und Wartungstechniken, dpunkt.verlag, Heidelberg 2008, ISBN 3-89864-482-0
  • Harry Sneed, M. Hasitschka, M.T. Teichmann: Software-Produktmanagement: Wartung und Weiterentwicklung bestehender Anwendungssysteme, dpunkt.verlag, Heidelberg 2005, ISBN 3-89864-274-7
  • A. April, S3m-Model to Evaluate and Improve the Quality of Software Maintenance Process, Shaker Verlag, 2005, ISBN 3-8322-4592-8
  • M.A. Curth, M.L. Giebel: Management der Software-Wartung, Vieweg+Teubner, Wiesbaden 1989, ISBN 3-519-02492-6

Einzelnachweise[Bearbeiten]

  1.  Macario Polo, Mario Piattini, Francisco Ruiz: A Methodology for Software Maintenance. In: Universidad de Castilla (Hrsg.): Advances in Software Maintenance Management. Technologies and Solutions. Idea Group Publishing, LaMancha 2003, ISBN 1591400473, 9, S. 228-229 (http://books.google.at/books?id=yOcIe_VK8DcC, abgerufen am 7. Juli 2012).
  2.  M.M. Lehman: Programs, Life Cycles, and Laws of Software Evolution. In: Proceedings of the IEEE 68. 1980, S. 1060-1076.