Niezawodnosc oprogramowania.pdf
(
604 KB
)
Pobierz
C:\Andrzej\PDF\NiezawodnoϾ oprogramowania\1 strona.cdr
IDZ DO
PRZYK£ADO
WY ROZDZIA£
Niezawodnoæ
oprogramowania
Autor: Steve Maguire
T³umaczenie: Andrzej Gra¿yñski
ISBN: 83-7197-429-9
Tytu³ orygina³u:
SPIS TRECI
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
Writing solid code: Microsoft's
techniques for
developing bug-free C programs
Format: B5, stron: oko³o 400
TWÓJ KOSZYK
To w³anie programista mo¿e w znacznym stopniu przyczyniæ siê do tego,
i¿ wykrywanie b³êdów i walka z nimi stan¹ siê zadaniami ³atwiejszymi i bardziej
skutecznymi -- tê w³anie tezê Autor stara siê udowodniæ w niniejszej ksi¹¿ce,
ilustruj¹c swe wywody konkretnymi przyk³adami.
Niektóre ze wskazówek i zaleceñ zawartych w treci niniejszej ksi¹¿ki sprzeciwiaj¹ siê
wielu powszechnie przyjêtym praktykom programowania i jako takie prowokowaæ
mog¹ do stwierdzeñ w rodzaju nikt tak nie pisze lub wszyscy ³ami¹ tê regu³ê.
Warto wówczas zastanowiæ siê nad przyczyn¹ -- je¿eli nikt tak nie pisze, to dlaczego?
Czy przypadkiem stare nawyki nie okazuj¹ siê silniejsze od racjonalnoci?
Odpowied na te i inne pytania Czytelnik znajdzie w tej ksi¹¿ce.
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
SPIS TRECI
5
Przedmowa do wydania polskiego...................................................................9
Wstp ...............................................................................................................15
Dwa najwaniejsze pytania............................................................................................................16
Nazewnictwo.................................................................................................................................17
Rozdział 1. Hipotetyczny kompilator ...........................................................21
Poznaj swój jzyk programowania................................................................................................23
Poyteczne Narzdzie — Lint.......................................................................................................27
To tylko kosmetyczne zmiany.......................................................................................................27
Nigdy wicej błdów.....................................................................................................................28
Rozdział 2. Sprawdzaj samego siebie ...........................................................31
Przypowie'( o dwóch wersjach.....................................................................................................32
Asercje...........................................................................................................................................33
„Niezdefiniowane” oznacza „nieprzewidywalne”.........................................................................36
Zagadkowe asercje.........................................................................................................................37
Kompatybilno'( kontrolowana......................................................................................................39
Gdy niemoliwe staje si moliwe................................................................................................43
Nic o nas bez nas...........................................................................................................................45
Co dwa algorytmy, to nie jeden.....................................................................................................48
Usuwaj błdy jak najwcze'niej......................................................................................................52
Rozdział 3. Ufortyfikuj swoje podsystemy...................................................59
Jest bł9d, nie ma błdu...................................................................................................................60
Zutylizuj swoje 'mieci...................................................................................................................62
Jestem ju gdzie indziej.................................................................................................................66
Kontroluj wykorzystanie pamici..................................................................................................69
Spójrz na to, czego nie wida(........................................................................................................72
Wybieraj rozs9dnie........................................................................................................................76
Szybki czy bezbłdny....................................................................................................................77
Teraz lub pó=niej...........................................................................................................................77
6
NIEZAWODNO OPROGRAMOWANIA
Rozdział 4. Jak wykonuje si Twój kod .......................................................81
Uwiarygodnij swój kod..................................................................................................................82
Przetestuj wszystkie rozgałzienia.................................................................................................83
>ywotne znaczenie przepływu danych..........................................................................................85
Czy czego' nie przeoczyłe'...........................................................................................................87
Spróbuj, a polubisz........................................................................................................................88
Rozdział 5. Niekomunikatywne interfejsy ...................................................91
getchar() zwraca liczb, nie znak...................................................................................................92
realloc() a gospodarka pamici9....................................................................................................94
Uniwersalny meneder pamici.....................................................................................................96
Nieprecyzyjne parametry...............................................................................................................98
Fałszywy alarm............................................................................................................................101
Czytanie pomidzy wierszami.....................................................................................................103
Ostrzegaj przed niebezpieczeCstwem..........................................................................................105
Diabeł tkwi w szczegółach..........................................................................................................108
Rozdział 6. Ryzykowny biznes ....................................................................111
int intowi nierówny......................................................................................................................112
Nadmiar i niedomiar....................................................................................................................116
„Projekt” czy „prawie projekt”....................................................................................................118
Po prostu robi9, co do nich naley...............................................................................................120
Przecie to to samo......................................................................................................................124
?: to take if..................................................................................................................................125
Precz z redundancj9.....................................................................................................................128
Wysokie ryzyko, bez odwrotu.....................................................................................................129
Przeklta niespójno'(...................................................................................................................133
Nie przypisuj zmiennym informacji diagnostycznych................................................................135
Nie warto ryzykowa(...................................................................................................................137
Rozdział 7. Dramaturgia rzemiosła ............................................................141
Szybko'(, szybko'(.....................................................................................................................142
Złodziej otwieraj9cy zamek kluczem nie przestaje by( złodziejem............................................144
Kademu według potrzeb............................................................................................................146
Nie uzewntrzniaj prywatnych informacji...................................................................................148
Funkcje-pasoyty.........................................................................................................................150
Programistyczne 'rubokrty........................................................................................................153
Syndrom APL..............................................................................................................................155
Bez udziwnieC, prosz.................................................................................................................156
Na 'mietnik z tymi wszystkimi trikami.......................................................................................158
Rozdział 8. Reszta jest kwesti/ nawyków...................................................163
Hokus-pokus, nie ma błdu.........................................................................................................163
Zrób dzi', co masz zrobi( jutro....................................................................................................165
Doktora!!!....................................................................................................................................166
Je'li działa, nie poprawiaj............................................................................................................167
Funkcja z wozu, koniom lej.......................................................................................................169
Elastyczno'( rodzi błdy.............................................................................................................169
Spróbuj.........................................................................................................................................171
Kwity Harmonogram..................................................................................................................172
„Tester” — nazwa w sam raz dla testera.....................................................................................173
Programista zawinił, testera powiesili.........................................................................................175
Zdefiniuj swe priorytety...............................................................................................................176
SPIS TRECI
7
Epilog.............................................................................................................181
Dodatek A Lista kontrolna kodowania ......................................................183
Dodatek B Podprogramy zarz/dzania pamici/ .......................................189
Dodatek C Odpowiedzi ................................................................................197
Skorowidz......................................................................................................225
JAK WYKONUJE SI TWÓJ KOD
81
Omawiane w poprzednich rozdziałach metody „automatycznego” wykrywania
błdów — asercje, testy integralno ci podsystemów, itp. — stanowi" narzdzia
niezwykle u#yteczne i znaczenie ich naprawd trudno przeceni$, jednak#e w nie-
których przypadkach okazuj" si one zupełnie „nieczułe” na błdy wystpuj"ce w
testowanym kodzie. Przyczyna tego stanu rzeczy jest tyle# oczywista, co banalna;
wyja nijmy j" na (bliskim ka#demu z nas) przykładzie zabezpieczenia domu czy
mieszkania.
Otó# najbardziej nawet wymy lne zabezpieczenie drzwi i okien oka#e si zu-
pełnie nieprzydatne w sytuacji, gdy złodziej dostanie si do domu np. przez klap
w dachu, czy te# otworzy sobie drzwi dorobionym kluczem. Podobnie, najwra#-
liwszy nawet czujnik wstrz"sowy zamontowany skrycie w magnetowidzie czy
komputerze nie uchroni przez kradzie#" np. drogocennej kolekcji obrazów. W
obydwu tych przypadkach zagro#enie pojawia si bowiem poza obszarami, na mo-
nitorowanie których zorientowane s" urz"dzenia alarmowe.
Na identycznej zasadzie, najbardziej nawet wymy lne asercje, czy jeszcze bar-
dziej zaawansowane fragmenty kodu testuj"ce wystpowanie spodziewanych wa-
runków, s" co warte jedynie wtedy, gdy w ogóle zostaj" wykonane! Brak alarmu
ze strony okre lonej asercji niekoniecznie wiadczy o spełnieniu testowanego przez
t asercj warunku, ale mo#e by$ tak#e wynikiem jej pominicia; podobnie punkt
przerwania spowoduje zatrzymanie wykonywania programu jedynie wtedy, gdy
wykonana zostanie instrukcja, na której punkt ten ustawiono.
Wyja nia to poniek"d, dlaczego niektóre błdy potrafi" skutecznie wymyka$
si (niczym sprytne szczury) najgstszej nawet sieci asercji czy punktów przerwa/,
które tym samym stanowi" tylko dodatkowy kłopot dla programisty, a tak#e powo-
duj" dodatkow" komplikacj i tak przewa#nie ju# zło#onego kodu.
81
Plik z chomika:
janowiec
Inne pliki z tego folderu:
Asembler dla procesorow Intel Vademecum profesjonalisty.pdf
(400 KB)
Asembler cwiczenia praktyczne.pdf
(358 KB)
Architektura systemow zarzadzania przedsiebiorstwem Wzorce projektowe.pdf
(829 KB)
Architektura oprogramowania Metody oceny oraz analiza przypadkow.pdf
(429 KB)
Aplikacje w Visual C++ 2005 Przyklady.pdf
(296 KB)
Inne foldery tego chomika:
PHP
Zgłoś jeśli
naruszono regulamin