Software-Evolution

Software-Evolution ist eine wissenschaftliche Theorie und erklärt und beschreibt die Veränderlichkeit der Computersoftware.

Vererbung von Eigenschaften der Objekte einer Klasse
Im Gegensatz zum Leben auf dem Planeten Erde ist die Computersoftware nicht durch den Schöpfungsakt eines intelligenten Designers entstanden, sondern hat sich seit den Anfängen der Computergeschichte von selbst entwickelt. Beim Kopieren einer Diskette treten aufgrund von äußeren Einflüssen, z.B. verstellten Leseköpfen, Wackelkontakten, Magnetfeldern, Wetterradars usw. klitzekleine Kopierfehler auf, wodurch die Software ein wenig verändert wird. In den meisten Fällen führt dies zu Funktionsausfällen und Abstürzen, in seltenen Fällen kann aber gemäß dem Infinite-Monkey-Theorem aus einer Datei mit Datenmüll ein ausführbares Programm mit nützlichen Funktionen entstehen.

Mehrfachvererbung zur Unterstützung allgemeiner Fähigkeiten
Hat ein Programm zu viele Bugs und stürzt immerzu ab, wird es nicht vervielfältigt, sondern irgendwann gelöscht, um Speicherplatz für bessere Software freizumachen. Dies bezeichnet sich als „natürliche Selektion“. Die wenigen nützlichen Mutationen finden hingegen eine hohe Verbreitung. Aber auch die nützlichen Programme sind fehlerhaft und stürzen immerzu ab; sie sind gerade mal so nützlich, dass sie gerade so noch vervielfältigt werden. Selten benutzte Funktionen werden mit der Zeit unbrauchbar, weil trotz der sich anhäufenden Fehler das gesamte Programm kopiert wird. Jedes Programm füllt daher genau eine informationstechnische Nische.

Subtyp-Vererbung zur Spezialisierung der Funktionalität einer abstrakten Klasse
Die Entstehung der ersten Computerprogramme setzt voraus, dass irgendwann einmal große Mengen unnützen Datenmülls hin- und herkopiert wurden, wie es in Behörden und Versicherungsunternehmen der Fall ist.

wiki:Software-Evolution wiki-en:Software evolution