Avatar von amnesie
  • amnesie

mehr als 1000 Beiträge seit 28.05.2003

Re: Der Coder läuft mit dem Kopf so lange gegen die Wand, bis er die Tür findet?

Gernotius schrieb am 03.03.2021 12:00:

Was hier im Artikel beschrieben ist, hat mit solider Ingenieursarbeit nichts zu tun. Das ist mehr "Try and Error!".

Sichere, fehlerfreie Software wird z.B. zuerst in F* formuliert. Dann läßt man daß über einen Solver (z.B. Z3) laufen, der sämtliche Kombinationen von 'state', die ein Programm einnehmen kann, systematisch absucht. Und wenn da keine Endlosschleifen im Graphen sind ("Programm hängt!") und keine undefinierten Referenzen, Abzweigungen nach Nirgendwo ("Bluescreen"), dann kann das zumindest als "fehlerfrei" und "stabil" klassifiziert werden.

Das mag für bestimmte Typen von Software gut funktionieren, für die Mehrheit aller Anwendungen taugt das nicht. Unter anderem weil sich das Problem nicht mehr als State Machine formulieren lässt. Bzw die State Machine dort zwar vorhanden und vielleicht auch sehr einfach ist, aber die Probleme bzw die Komplexität in den Übergängen bzw den einzelnen States liegt. Oder in der Tatsache, dass du viele parallele State Machines, die du teilweise über Prozess und Rechner Grenzen hinweg synchronisieren musst.

Und dann gibt's Probleme, die man gar nicht damit lösen kann. Beispielsweise Regressions im CSS entdecken.

Ob es das tut, was es soll, klärt man dann über Unittests ab.

Na, also doch wieder das gute alte Handwerk ...

Bewerten
- +