free poker money

MOŻLIWOŚĆ ŚLEDZENIA

Możliwość śledzenia charakteryzuje więk­szość profesjonalnych translatorów. Programista wskazuje w tekście pro­gramu, za pomocą specjalnie do tego przeznaczonych instrukcji, które zmienne i w jakich fragmentach programu mają być śledzone. W wyniku tego, w trakcie wykonania,, program wypisuje wszystkie zmiany, wartości wszystkich śledzonych’zmiennych. Dzięki temu mamy możliwość dokład­nego zbadania, co się dzieje ze zmiennymi w czasie pracy programu.  Siedzenie, tak jak opisano je wyżej, ma charakter pasywny – po wy­konaniu programu otrzymujemy’protokół śledzenia/po czym,’na podsta­wie analizy .wyników działania programu oraz .wyników śledzenia, usu­wamy błędy.

LICZBA ZESTAWÓW DANYCH

Liczba zestawów danych testujących zależy,nie tylko od stopnia skom­plikowania programu, lecz także od wagi problemu rozwiązywanego za jego pomocą. Dokładność testowania^ powinna wzrastać, jeśli program będzie stosowany często, w długim okresie, lub będzie wykonywał szcze­gólnie odpowiedzialne zadania (np. sterowanie procesem technologicznym fabryki lub rozliczanie operacji bankowych). Jak widzimy, wskazówki służące do określenia liczby i.zakresu danych testowych są dosyć ogólne. Uzupełnimy je więc kilkoma (również ogólny­mi) zasadami dobrego testowania.Jednym z najprostszych > mechanizmów .ułatwiających wykrywanie błędów jest możliwość śledzenia wartości, jakie w czasie wykonywania programu przymują zmienne.

ŻADNE Z PODEJŚĆ DO TESTOWANIA

Żadne z wymienionych podejść do testowania nie jest w pełni zadowa­lające. Wyczerpujące testowanie względem specyfikacji, ‘aczkolwiek meto­dologicznie poprawne, jest z reguły nierealne z powodu liczby możliwych kombinacji danych wejściowych. Wyczerpujące natomiast testowanie ścieżek jest zarówno metodologicznie niezadowalające (ponieważ po pierw­sze kod programu może być niezgodny ze specyfikacją, a po,drugie ścieżka działająca poprawnie dla jednego zestawu wartości danych, może okazać się zawodna przy (innych), jak i nierealne z tego samego powodu co po­przednie. Zatem w praktyce staramy się stosować rozsądny kompromis między obydwoma strategiami, zadowalając się równocześnie testowaniem nie wyczerpującym wszystkich możliwości programu.

SYSTEMATYCZNE POSTĘPOWANIE

Podział ciągu na podciągi jest bardziej skomplikowany. Wymaga sprawdzania kolejnych elementów — poczynając:od początku, oraz- od’ końca, czy znajdują się po właściwej stronie wartownika.’’Jeżeli nie — następuje zamiana‘ elementów;miejscami. Postępując systematycznie i zamieniając kolejne fragmenty specyfikacji na instrukcje języka programowania/ otrzymaliśmy pełny-tekst procedury, wykonującej szybkie sortowanie tablicy (lub jej fragmentu).Metoda kolejnych uściśleń nie jest jedyną metodą projektowania pro­gramów. Jej odwrotnością jest metoda wstępująca (lub, przez analogię, możemy powiedzieć — metoda .kolejnych uogólnień). .Postępując ,w myśl jej zasad, rozpoczynamy od, kodowania niewielkich fragmentów progra­mu, po czym łączymy te fragmenty kolejno w. większe całości. Jest jednak pewne, że aby stosować, metodę wstępującą,,musimy wcześniej zanalizo­wać problem, i podzielić go na podproblemy.

KOLEJNOŚĆ POSTĘPOWANIA

Stosując metodę kolejnych uściśleń, postępujemy w następujący spo­sób:  Formułujemy zadanie:-„napisać-program, który jest’rozwiązaniem problemu X”.  Oceniamy, czy potrafimy napisać program będący rozwiązaniem postawianego problemu wyłącznie za pomocą elementarnych konstrukcji wybranego języka programowania. Jeżeli tak, to czynimy to i na  tym kończymy proces komponowania programu.       Jeżeli program jest tak złożony, że stosowanie wyłącznie, konstrukcji elementarnych prowadzi do utraty ,kontroli nad; całością: przedsięwzięcia, lub jeśli w różnych miejscach tworzonego programu; pojawia się potrzeba rozwiązywania takich samych-lub funkcjonalnie * i”śtrukturalńie podob­nych problemów niższego poziomu,Po dprowadzamy dodatkowe konstruk­cje, takie że:     posługując się wprowadzonymi konstrukcjami i ewentualnie kon­strukcjami elementarnymi, potrafimy napisać cały program,potrafimy opisać funkcje wprowadzonych konstrukcji tak, abjrmóć dowieść, że-program, je zawierający;istotnie .opisuje rozwiązanie posta­wionego problemu.

LICZNE DOŚWIADCZONE ZESPOŁY

Tak jednak nie jest,’a przekonały się, o tym liczne zespoły „doświadczonych” programistów, ; których umiejętności zdobyte przy rozwiązywaniu stosunkowo prostych problemów Okazały się niewystarczające, gdy doszło do stworzenia systemów oprogramowania w naprawdę dużej skali.  ponując program metodą kolejnych uściśleń, używamy dwu rodza­jów konstrukcji: elementarnych oraz wprowadzonych (pomocniczych). Konstrukcjami elementarnymi są instrukcje wybranego języka programo­wania. Konstrukcje wprowadzone natomiast tworzymy podczas projekto­wania programu. Ich celem jest uproszczenie opisu problemu (por. zasada abstrakcji) tak, -aby był on w każdym ^ momencie zrozumiały, przede wszystkim dla samego autora.

METODA KOLEJNYCH UŚCIŚLEŃ

Omówione zasady, projektowania programów stanowią .podstawę syste­matycznego.,i spójnego podejścia do  problemu, konstruowania; oprogra­mowania, zwanego, metodą kolejnych uściśleń.\Metoda kolejnych uściśleń określa sposób postępowania podczas całego procesu komponowania programu, począwszy od .pierwszych specyfikacji związanych z analizą problemu, a skończywszy na zakodowaniu’pełnego tekstu programu. Chcielibyśmy w tym miejscu wyraźnie .zaznaczyć,’że podejście meto­dyczne do tworzenia programów jest szczególnie ważne (wręcz konieczne) przy rozwiązywaniu problemów. dużych,’ o skomplikowanej, strukturze. Dlatego Czytelnikowi, który zetknął się dotychczas wyłącznie ze szkolnymi przykładami (a taki charakter mają .wszystkie w tym podręczniku), opi­sany poniżej sposób postępowania – wydawać się – może „wytaczaniem armaty dla zabicia muchy”.