Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Wprowadzenie
9
wogólnościpoprawnościoprogramowanianiemożnaokreślićmetodąsprawdzaniawarto-
ściwyjściowych(pozakończeniuprogramu),ponieważprogramniemusisięzakończyć.
Dominującąrolęzaczynaodgrywaćtakiatrybut,jakniezawodność,anawetbezpie-
czeństwo.Oprogramowaniepowinnozawszewykazywaćakceptowalnedziałanie,nawet
wtedy,gdypewnaczęśćsystemulubużywanysprzętulegnieawariialbogdyzostaną
dostarczoneniedozwolonelubsprzecznedane.Wżadnymwypadku,zwyjątkiemzaniku
zasilanialubinnychpoważnychzdarzeń,oprogramowanieniepowinnodopuścićdo
gwałtownegozaprzestaniadziałaniasystemu,leczumożliwićmustopniowąutratęfunk-
cjonalności(ang.gracefuldegradationofperformance).
Systemmadziałaćnieskończeniedługo,dlategopowinienmiećmożliwośćdyna-
micznejrekonfiguracji,pozwalającejnapoprawianiepotencjalnychdefektówiadaptację
dozmiennychwymagań.Innymrozwiązaniemjestkorzystanieznowejwersjiprogramu
dostarczonejużytkownikowiprzezproducentazamniejsząopłatą(ang.upgrade).Mimo
żewymaganiateznaneprzynajmniejoddziesięciulat,współczesnejęzykiiichimple-
mentacjeniezapewniajązadowalającegorozwiązaniatychzagadnień,zwłaszczagdycho-
dziodynamicznąrekonfiguracjęprogramów.
Następnyetapewolucjito„oprogramowaniejakoskładowasystemówniejednorod-
nych”.Częśćsystemumogąstanowićkomputeryzoprogramowaniemwłącznie,inną
częśćurządzeniatechniczne,anawetludzie.Rozwiązanieproblemuniejestjużokreślo-
newyłącznieprzezoprogramowanie.Jegoczęśćjestprzekazywanaludziomluburzą-
dzeniomtechnicznym,arozłożenieobciążeńmożesięzmieniaćstosowniedomożliwości
jednostekuczestniczących.Takiesystemymająinteresującewłaściwości:
Niemożnawnichdokładnieokreślićczęścirozwiązaniaproblemuwykonywanej
przezoprogramowanie,ponieważzastosowanyalgorytmnieobejmujecałościpro-
blemuipotrafipoprawnierozwiązaćtylkopewneprzypadki.
Jestkilkawariantówprzyjęciaodpowiedzialnościzapoprawnośćwynikówtakiego
systemu,m.in.oprogramowanieniepowinnopodejmowaćostatecznejdecyzjinp.
ożyciulubśmierciwprzypadkachmedycznych,wojskowychlubwsystemachko-
munikacji,nawetjeśliwykonujewiększączęśćzadania.Wwieluzastosowaniach
podejmowaniedecyzjibezwspomagającegooprogramowanianiejestmożliwe,na-
tomiastwspomnianedecyzjenatyletrudne,żesystemzapewneniezdołaich
podjąć.Powstajetutajswoistainterakcjaczłowiekazkomputerem,którazpunktu
widzeniazastosowaniastanowinierozerwalnącałość,np.pilotwspółczesnegosa-
molotuwspółpracujerównocześniezwielomasystemamipokładowymi,azespół
chirurgówprzeprowadzaskomplikowanąoperacjęwspomaganąkomputerem.
Powyższerozważaniamogąposłużyćjakowskazówkidowłaściwegospojrzeniana
współpracęczłowiekmaszynawśrodowiskachprogramowych.Terazmożnapodsumo-
waćstanwiedzywdziedziniejęzykówprogramowaniaorazichśrodowiskiokreślić,jakie
problemywciążnierozwiązane.
Każdypostępwmetodologii,którymożnawykorzystać,należyuwzględnićwprzy-
szłychwersjachjęzykówlubwnowowytworzonychpreprocesorachczyinnychnarzę-