• gforce9
    #326
    Ezeket az összeadódási dolgokat meg hibahalmozást egy programkódnak kutya kötelessége megfelelően kezelni. Sőt jól megírt program kritikus rendszerek esetén nem csak ezt tudja, hanem az esetek zömében még azt is meg tudja állapítani, ha a hardveres környezete rossz.

    Ne keverd össze pl.: egy böngésző működéség egy olyan gépen, ami dugig van fullfüggetlen - egymással nem vagy csak minimálisan kommunikáló - hardver és szoftvergyártók termékeivel. Ez egy olyan feladat, ahol a biztonság szempontjai mások, mert tesztelhetetlen a környezet. Nyilvánvalóan olyan széles a hardver és szofverpaletta amit tartalmazhat egy gép, hogy képtelenség minden környezetben tesztelni és mindenre felkészülni.

    Egy célfeladatnál lehetőség van mindenre felkészülni és a megvalósítás gondolkodásmódja is más. Egy kritikus rendszernél pl. egy inputot a programozó fel sem tételezi, hogy hibátlan. Eleve beépíti a rendszerbe kizárásokkal egy olyan input bekerülését amit a rendszer lekezelni nem tud. Egy büngészőben egy űrlapba ha beütsz egy kínai írásjelet, lehet elhasal rajta az annak feldolgozásáért felelős program. Ilyen eset viszont kritikus rendszernél elő sem fordulhat. Ha mégis, az emberi beletáplált hiba.

    Ha egy bonyolult számításnál van egy output aminek van egy +/- tűrése, hogy milyen eredményt kell adjon, akkor az összes programrészt úgy kell megírni, hogy ebbe beleférjen. Ez a módszer nemcsak programozásnál, de egy egyszerű géptervezésnél is gyakorlatban is használatban van.