Treść książki
Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
2.POdSTaWOWedefinicje
Usterkisąpowodowanepomyłkamiprogramistów.Usterkamożesprawić,żesystem
niewykonazakładanejczynności.Przykłademusterkimożebyćnp.błędnyoperatorre-
lacyjnywinstrukcjiwarunkowej,np.if(x>0)zamiastif(x>=0).
błąd(ang.error)–nieprawidłowystanwewnętrznyprogramu(wg[7])
awaria(ang.failure)–widocznenazewnątrzodchyleniemodułulubsystemuod
oczekiwanegozachowanialubrezultatudziałania(wg[26])
Niektóreźródła(np.[13])traktująbłądjakoformęawarii.Wtakimprzypadkuawa-
rianiekonieczniemusidaćosobieznaćwwidocznysposób(bostanprogramujestjego
wewnętrznąkonfiguracją).Wykrywaniebłędnychstanówjestowieletrudniejszeniżwy-
krywaniehzwykłych”awarii,gdyżteostatniezwyklemożnadostrzecgołymokiem.Błędy
iawarieobjawiająsiępodczaswykonywaniatestów,copośrednioumożliwiaodkrycie
usterkiwkodzie.Samymusuwaniemusterekzajmujesiędebugowanie.
debugowanie(ang.debugging)–proceswyszukiwania,analizowaniaiusuwaniaprzy-
czynbłędówiawariioprogramowania
Jednausterkamożespowodowaćjedenlubwięcejbłędówlubawarii.Jednaawaria
możebyćspowodowanajednąlubwięcejusterkami.Częstoodniesienieawariidokonkret-
nejusterkijesttrudne.Terozważaniadoprowadziłydostworzeniamodeluusterka/awaria,
któryopisujesekwencjęzdarzeń,jakiemusząnastąpić,abyzaobserwowaćawarię.Model
tennosinazwęmodeluRIP
,odpierwszychliterangielskichsłów:reachability,infectionipro-
pagation.Wjęzykupolskimczasamimodeltennazywasięmodelemusterka–błąd–awaria.
modelRIP(ang.RIPmodel)–modelopisującytrzykrokiprowadzącedoobserwacji
awarii.Krokiteto:
•osiągalność(ang.reachability)–miejscewprogramie,którezawierausterkę,musi
zostaćosiągnięte;
•infekcja(ang.infection)–powykonaniuniepoprawnejinstrukcjistanprogramu
musiprzyjąćnieprawidłowąwartość;
•propagacja(ang.propagation)–zainfekowanystanmusipropagowaćsięiwywołać
nieprawidłowewyjścielubinnezewnętrznezachowaniesięprogramu.
Wystąpieniebłęduniezawszemusioznaczaćwystąpienieawarii.Rozważmypro-
grammającyzazadaniesortowaćtablicęTmetodąbąbelkową.Jegopseudokodjest
przedstawionynalistingu2.1.Zakładamy,żepolatablicsąindeksowaneodzera.
Wlinii4.programzawierausterkę.Pętlapowinnaprzebiegaćodirównego0,nie
1.RozważmynastępującedwawykonaniaprogramuSortBąbelkowewkontekściemo-
deluRIP:
SortBąbelkowe((1,4,3,6,2))
SortBąbelkowe((5,2,7,1,4))
26