Warum muss eine Software weiterentwickelbar sein?

6 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Du meinst das Kriterium

Wartbarkeit: Verstehbarkeit und ( möglichst risikolose ) Abänderbarkeit

Hintergrund:

Software ist i.A. zu komplex, als dass man erwarten könnte, darin nie Fehler zu finden. Werden solche Fehler entdeckt, muss Code abgeändert werden, sie zu beheben. Das aber ist - mit vertretbarem Risiko - nicht möglich, wenn der Code so geschrieben ist, dass man seine Logik kaum versteht.

Aber selbst wenn keine Fehler gefunden werden, wird es immer wieder notwendig sein, ein ständig genutztes Anwendungssystem neuen Anforderungen anzupassen. Auch das ist nur möglich, wenn der Code, aus dem die das System darstellenden Programme bestehen, hinreichend gut verständlich ist (man sagt: hinreichend gut wartbar ist).

Genau genommen kann ein Anwendungssystem nur dann gut wartbar sein, wenn nicht nur der Code gut verstehbar ist, sondern darüber hinaus auch Dokumente existieren, die beschreiben, was genau das System denn zu leisten hat. Wenn sie fehlen - oder ihr Inhalt nur noch teilweise aktuell ist - kann es extrem schwierig sein, die Anwendung neuen Anforderungen anzupassen. Was aber, wenn z.B. ein neues Gesetz solche Abänderung erfordert? Oder ein neuer Prozess im Unternehmen ohne Abänderung des Systems gar nicht eingeführt werden kann? 

In erster Linie um Sicherheitslücken zu schließen.

Denn alles im Umfeld verändert sich. 

Schadsoftware ist aggressiv und verändert sich ebenfalls ständig.

Und Updates von kompatiblen Programmen oder Hardware Komponenten müssen ebenfalls kompatibilisiert und optimiert werden. Damit die Software auch in Zukunft effizient und flüssig läuft. 

Das ganze in der Wettbewerbsfähigkeit einzustufen, ist nicht verkehrt, finde ich persönlich allerdings etwas ungenau ;) 

Kommt auf das Aufgabengebiet an. Eine Software, die eine automatisierte Fertigungsstraße für seit Jahrzehnten unveränderte Standardteile steuert, kann auch jahrzehntelang ohne jede Änderung laufen. Im Gegenteil, hier wird kaum einer auf die Idee kommen, an einer zuverlässig laufenden Software irgendwas zu verändern - das Ergebnis kann nur schlechter sein als der Ist-Zustand.

Ansonsten gilt: Die Anforderungen ändern sich oder können sich zumindest ändern; bei Software, die Informationen über ein Netzwerk austauscht, können Sicherheitslücken bekannt werden - das dürften schon die wichtigsten Punkte sein.

Was möchtest Du wissen?