Wissen

Obwohl Software im Prinzip keine Abnutzungserscheinungen aufweist, existiert der Begriff der Softwarealterung. Eine Software kann aus unterschiedlichen Gründen altern. Zum einen kann der Einsatzzweck eines Softwareprogramms hinfällig werden. Zum andern können sich die technischen Rahmenbedingungen für den Einsatz einer Software ändern.
Dies ist beispielsweise durch den aktuellen Trend zu mobilen Endgeräten zu beobachten. Softwareprogramme, die keinen Zugang für mobile Endgeräte bieten, müssen in vielen Fällen ersetzt oder angepasst werden.

Daraus ergeben sich die Gesetze der Softwareevolution, die von Meir “Manny” Lehman so formuliert wurden:

  • Gesetz der fortdauernden Änderung
  • Gesetz der zunehmenden Komplexität
  • Gesetz der abnehmenden Qualität
  • Gesetz der sinkenden Produktivität
  • Gesetz des begrenzten Wachstums

Gesetz der fortdauernden Änderung

Das Gesetz der fortdauernden Änderung beschreibt, dass Softwareprogramme reale Abläufe und Objekte abbilden. Sollten sich diese Abläufe oder Objekte ändern, muss das Softwareprogramm entsprechend angepasst werden, um weiterhin einen Mehrwert für den Anwender zu liefern.

Gesetz der zunehmenden Komplexität

Das Gesetz der zunehmenden Komplexität besagt, dass durch die fortlaufenden Änderungen an Softwareprogrammen die reale Systemarchitektur immer weniger zur ursprünglich konzipierten Architektur passt. Dadurch steigt die Komplexität des Systems.

Gesetz der abnehmenden Qualität

Das Gesetz der abnehmenden Qualität beschreibt, dass im selben Maße, wie die Komplexität steigt, die Qualität sinkt. Da Wartungs und Änderungsaufgaben in der Regel nicht optimal umgesetzt werden, entstehen Inkonsistenzen im Programmcode.

Gesetz der sinkenden Produktivität

Das Gesetz der sinkenden Produktivität ergibt sich aus der steigenden Komplexität und der abnehmenden Qualität. Beides führt dazu, dass Wartungsaufgaben zeitintensiver werden.

Gesetz des begrenzten Wachstums

Letztlich führt die sinkende Produktivität zu immer länger dauernden Wartungsaufgaben. Aus diesem Grund wird die funktionale Erweiterung des Softwareprogramms unattraktiv. Das Wachstum des Softwareprogramms nimmt stetig ab und kommt da durch irgendwann zum Erliegen.