Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
2.POdSTaWOWedefinicje
Usterkipowodowanepomył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,żepolatablicindeksowaneodzera.
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