[ Pobierz całość w formacie PDF ] .Przy-kład ten udowadnia bardzo istotną tezę tę mianowicie, iż jednym z elementówprogramowania defensywnego może być wybór odpowiedniego językaprogramowania.Autor książki pomija tę kwestię zupełnym milczeniem, ograni-czając się wyłącznie do języka C co jest poniekąd zrozumiałe wobec faktu, iżjęzyk ten był bodaj jedynym powszechnie stosowanym w firmie Microsoft w cza-sach, gdy powstawał oryginał niniejszej książki.Tak się składa, iż moim ulubionym językiem programowania jest Pascal, zktórym związany jestem niemal od samych jego początków (dokładniej od jegopierwszej dostępnej w Polsce implementacji na CDC CYBER 70).Wielokrotniesłyszałem i czytałem, jak programiści posługujący się językiem C++ odmawiająPascalowi miana poważnego języka, ograniczając jego rolę wyłącznie do celówedukacyjnych.Jakby na przekór tym opiniom niedawno ukazała się szósta już wer-sja (opartego na rozbudowanym Pascalu) Delphi, nie to jest jednak najważniejsze:celem moich osobistych wywodów jest zwrócenie uwagi na fakt, iż Pascal jako ta-ki charakteryzuje się znacznie większym stopniem defensywności niż Cczy C++ kto nie wierzy, niech przeanalizuje prezentowane w niniejszej książceprzykłady rozmaitych błędów i zastanowi się, które z nich nie mogłyby wystąpić wPascalu (nie zezwalającym np.na używanie instrukcji przypisania w roli wyrażeń,czy samodzielne definiowanie przeciążonych operatorów).Być może ów argumentw obronie zasłużonego Pascala okaże się komuś pomocny w wyborze pomiędzyDelphi a C++Builderem jako potencjalnymi narzędziami do realizacji określonegoprojektu.I jeszcze jedno: zdecydowaliśmy się na wydanie niniejszej książki, mimo iż jejoryginał powstał przed niemal ośmioma laty.W technologii informatycznej toprzecież cała epoka tymczasem prawie całość prezentowanego materiału wciążzachowuje swą aktualność, co z jednej strony jest dowodem na istnienie pewnychuniwersalnych idei tkwiących u samej istoty tworzenia oprogramowania, z drugiejnatomiast wymaga odrobiny dystansu czytelnika do pewnej szczególnej kwestii.Otóż w sytuacji rozpowszechnienia się systemów operacyjnych wykorzystującychchroniony (protected) tryb pracy procesora (m.in.Windows 9x) wiele błędów pro-gramistycznych prowadzi do wykonywania operacji nielegalnych z punktu widze-nia samej architektury komputera, wskutek czego błędne programy często kończąsię błędem ochrony dostępu, zamiast działać w sposób losowy i (co ważniejsze)destrukcyjny; można zaryzykować stwierdzenie, iż wzrost wspomnianej defen-sywności nie ominął także sprzętu komputerowego.Szczególnie podatnymi naawaryjne zakończenie są programy dokonujące odwoływania się do nie swoichobszarów pamięci lub posługujące się wskaznikami wiszącymi , zerowymi alboniezainicjowanymi.Z treści książki można wywnioskować, iż autor obraca się ra-C:\WINDOWS\Pulpit\Szymon\Niezawodność oprogramowania\r00-1.doc 910 NIEZAWODNOZ OPROGRAMOWANIAczej w kręgu trybu adresowania bezpośredniego (real mode chociaż nie brakwzmianek o błędach ochrony dostępu) , w którym błędy tego rodzaju często prze-chodzą niemal niezauważone.Nie zmienia to oczywiście w niczym faktu, iż pro-gramy przejawiające wspomniane zachowanie są programami ewidentnie błędny-mi, niezależnie od platformy systemowej, na której są uruchamiane.Zagadnienie niezawodności oprogramowania, a tym bardziej metodologiiprogramowania prowadzącej do owej niezawodności wciąż jest zagadnieniemznacznie mniej sformalizowanym niż wiele innych zagadnień algorytmicznych.Niniejsza książka nie pretenduje więc do miana jakiegoś oficjalnego podręcznikana ten temat (taki podręcznik trudno byłoby zrealizować w formie książki o takmałej objętości), stanowi raczej rezultat osobistych (i notabene bardzo pouczają-cych) doświadczeń autora.Jest więc rzeczą naturalną, iż wielu programistów-praktyków mogłoby wzbogacić jej treść o własne uwagi, czy nawet zakwestiono-wać zasadność niektórych poglądów autora.Ciekawi jesteśmy opinii naszychCzytelników w tym względzie i oczekujemy na nie w naszej internetowej księdze go-ści.Zaawansowanym Czytelnikom proponujemy ponadto pouczające doświadcze-nie, polegające na przejrzeniu kodu zródłowego jakiegoś popularnego oprogramowania na przykład Delphi, czy rozmaitych odmian Linuksa i zwrócenie uwagi na tejego fragmenty, których określona postać podyktowana jest względami defensywno-ści oprogramowania.Być może zaowocuje to większą niezawodnością własnego,tworzonego teraz i w przyszłości, oprogramowania.Mamy nadzieję, iż niniejsza książka przyczyni się do wielu sukcesów w walcez plagą dokuczliwych błędów, krążących wciąż po oprogramowaniu i czyhającychna nic nie podejrzewających programistów.Jeżeli przyczyni się ona do uniknięciachociaż jednej nieprzespanej nocy albo zapobieże stracie wakacji, to będzie ozna-czać, że było warto z nadzieją na co pozostajemy.W imieniu wydawnictwaAndrzej Grażyńskiw listopadzie 200110 C:\WINDOWS\Pulpit\Szymon\Niezawodność oprogramowania\r00-1.docPRZEDMOWA DO WYDANIA POLSKIEGO 11C:\WINDOWS\Pulpit\Szymon\Niezawodność oprogramowania\r00-1.doc 11
[ Pobierz całość w formacie PDF ]
zanotowane.pldoc.pisz.plpdf.pisz.plhanula1950.keep.pl
|