- Softwarealterung
-
Die Softwarealterung ist für Software das Pendant zur Materialermüdung. Im Gegensatz zur allgemeinen Meinung unterliegt auch Software einer besonderen Art von Alterung. Sie hat keinen Verschleiß und auch keine Abnutzung, da sie nur aus digitalen Daten besteht, aber sie hat trotzdem nur eine begrenzte Lebenserwartung.
David Parnas hat erstmals 1994 die Alterung von Software untersucht.
Inhaltsverzeichnis
Gründe für die Alterung
Im Laufe der Zeit ändern sich die Gegebenheiten der Softwareumgebung. Es sind neue Techniken, Anforderungen und Formate entstanden, die bei der Entwicklung nicht vollständig bekannt waren oder vorhergesagt werden konnten. Eine mangelnde Anpassung an diese Gegebenheiten kann zu Problemen, Fehlern oder einfach zu einem verringertem Nutzen des Programmes führen, im Extremfall bis zu dem Punkt, dass das Programm nicht mehr lauffähig ist.
Auf der anderen Seite führen gerade diese notwendigen Anpassungen, Fehlerbehebungen, Erweiterungen des Funktionsumfanges oder andere Änderungen oft zu einem unstrukturierten Programm, einem unübersichtlichen Quelltext und zu neuen Fehlern; genau dies sind die Kennzeichen der Alterung von Software.
Beispiele
Die wohl bekanntesten Beispiele waren das Jahr-2000-Problem und in gewissem Umfang auch die Einführung des Euro. Beim Jahr 2000 stellte sich das Grundsatzproblem, dass viele Programme nur mit zweistelligen Jahreszahlen arbeiteten, hier aber die 00 für 2000 kleiner als die 99 des Vorjahres gewesen wäre, obwohl die Jahreszahl in Wirklichkeit größer war. Viele Programme mussten in diesem Zusammenhang überprüft und angepasst werden, etliche auch durch neue Software abgelöst werden.
Bei der Einführung des Euro stellte sich die Situation oft nicht ganz so kritisch dar, da dies vielfach schon bei der Umstellung zum Jahr 2000 berücksichtigt worden war bzw. oftmals die Einführung einer zusätzlichen Währung bereits im Leistungsumfang der Software enthalten war. Schwierigkeiten ergaben sich nur in Programmen, die ausschließlich mit einer Währung arbeiteten und den Änderungszeitraum überschneidende Berechnungen vornehmen können mussten.
Unter alten Microsoft-Windows-Versionen lag noch das Betriebssystem MS-DOS. Neuere Windows-Versionen sind jedoch fast komplett neu geschrieben worden, um die zugrundeliegende Architektur abzuändern. Solche Neuanfänge lassen sich in vielen Projekten beobachten. Sie resultieren oft daraus, dass der zugrundeliegende Quelltext zu „alt“ ist, um ihn zu überarbeiten und ein kompletter Neustart effizienter scheint.
Verlängerung der Lebenszeit
Man ist der Softwarealterung jedoch nicht bedingungslos ausgeliefert und kann die Lebensdauer einer Software auch bewusst verlängern. Die heute übliche Software-Entwicklung mit Objektorientierung, die letztlich dazu führt, dass jede Funktion ihr eigenes, in sich abgeschlossenes Modul darstellt, eignet sich hierfür besonders, auch wenn sie bei komplexeren Anforderungen zur Unübersichtlichkeit neigt.
Eine andere Möglichkeit ist eine längere Designphase, in der bewusst überlegt wird, welche Funktionen die Software haben wird oder welche Möglichkeiten später noch genutzt werden können. Spätere Änderungen können dann gut eingepasst werden, da sie schon vorher eingeplant wurden. Auch einzelne Restaurierungsarbeiten können helfen. Es besteht immer die Möglichkeit, neuen Code gerade so einzubauen, dass er funktioniert, oder Teile der Software neu zu entwerfen, um neue Funktionen besser einbetten zu können.
Abhängigkeit vom Hersteller
Die Alterung der Software führt dazu, dass der Anwender auch auf Änderungen der Software angewiesen ist. Bei proprietärer Software kann diese nur der ursprüngliche Hersteller liefern, der Nutzer ist damit auch nach dem Kauf von diesem abhängig. Bei Open-Source-Software besteht keine zwingende Abhängigkeit von einem bestimmten Hersteller.
Da man durch die Aktualisierungen an den Hersteller gebunden ist, wird die illegale Nutzung von Software erschwert, da man auch einen Weg braucht, um an die Aktualisierungen der Software zu gelangen. Bei Microsoft Windows sind zum Beispiel einige Updates auf registrierte Benutzer beschränkt.
Quellen
- Harald Gall: Software Wartung und Evolution. 2006, abgerufen am 8. Juni 2007. (Alterung ab S. 14)
- Teo Romera: Software Aging. Abgerufen am 8. Juni 2007.
- Rikard Land: Software Deterioration And Maintainability – A Model Proposal. Abgerufen am 9. August 2009.
- Kalyanaraman Vaidyanathan and Kishor S. Trivedi: Extended Classification of Software Faults Based on Aging. 2001, abgerufen am 8. Juni 2007.
- V. Castelli u. a.: Proactive management of software aging. März 2001, abgerufen am 8. Juni 2007.
Literatur
David Lorge Parnas: Software Aging. In: International Conference on Software Engineering. IEEE Computer Society Press, Sorrento, Italy 1994, ISBN 0-8186-5855-X, S. 279-287 (Artikel: PDF, 789 K, Vortrag: PDF, 168 K).
Wikimedia Foundation.