Hallo,
Nachdem wir den TE erfolgreich vertrieben haben
Noch ein praktischer Tipp:
Bei allen Daten die von Aussen kommen (Datenpakete, Eingaben, Sensoren) zuerst eine Plausibilitätsprüfung machen. Sind die Daten ausserhalb des gültigen Bereichs muss man gar nicht erst rechnen und Unter/Überläufe oder Divisionen mit 0 riskieren, welche dann zu komplett falschen Resultaten führen können.
(Dies war der Trick von SASSER, da wurde ein zu grosser Datenblock gesendet, welcher dann, ohne Grössenüberprüfung in einen zu kleinen Puffer kopiert wurde.)
Entsprechend kann es auch sinnvoll sein, die Resultate einer Berechnung zu Überprüfen.
Eine entsprechende Prüfung sollte auch an den Grenzen von Modulen stattfinden.
Traue keinen Daten, auch wenn du dich selbst verrechnet hast!
Wichtig ist auch Unter/Überläufe schon bei der Entwicklung zu erkennen. Dies wird gerne bei Ausdrücken wie
(a*b)/c
übersehen. Das Resultat liegt im Bereich der Variablen, aber das Produkt a*b kann den Bereich überschreiten.
Hier hilft eben auch der Rangecheck. welcher überprüfen kann, dass a und b keine zu grossen Werte annehmen können.
Damit bekommt man schon einmal relativ stabile Software hin, welche nicht blöd rumrechnet und dadurch zu Abstürzen führt.
MfG Peter(TOO)
Lesezeichen