Co daje inżynieria oprogramowania w MS Excel
„Smoliste grzęzawisko, jakim jest inżynieria oprogramowania, jeszcze przez długi czas będzie nie do pokonania. Można się spodziewać, że człowiek nadal będzie dążył do budowania systemów będących na granicy dostępności lub wręcz niedostępnych; systemy oprogramowania są prawdopodobnie najbardziej skomplikowanym dziełem człowieka. Ta wyrafinowana sztuka ich tworzenia będzie wymagać od nas ciągłej pracy nad rozwojem tej dziedziny, uczenia się budowy większych jednostek, najlepszego wykorzystania nowych narzędzi, najlepszego zastosowania sprawdzonych już metod zarządzania inżynierią, kierowania się przede wszystkim zdrowym rozsądkiem”. /Frederick Phillips Brooks, Jr. Mityczny osobomiesiąc – eseje o inżynierii oprogramowania/
Esej, którego fragment zamieszczono na początku, autorstwa F.P. Brooksa Jr., opowiada o złożoności tej dziedziny wiedzy. Do tej pory nie wszystko z inżynierii oprogramowania zostało ujęte w jednoznaczne zasady. Praktyka, mimo określenia niektórych logicznych zasad, odbiega od nich. Tu znakomitym przykładem są instrukcje pętli (iteracji) w języku Visual Basic for Excel. Zamieszczono w nim sześć pętli (iteracji): FOR, WHILE … WEND, DO WHILE … LOOP, DO … LOOP WHILE, DO UNTIL … LOOP, DO … LOOP UNTIL (oprócz tego są pętle realizujące działania na obiektach). Funkcjonalność wszystkich pętli jest taka sama – powtarzają wykonywanie tego samego ciągu instrukcji (dalej ciąg instrukcji będziemy nazywali instrukcją złożoną lub instrukcją). Niklaus Wirth3, autor struktur programowych, udowodnił, że za pomocą trzech struktur programowych – sekwencji, selekcji i pętli – można zapisać każdy algorytm. Jednak zaproponował tylko trzy typy pętli, ze względu na drobne różnice w działaniu: WHILE, REPEAT i FOR:
- w pętli typu WHILE warunek jest na początku (przed instrukcją), dlatego instrukcja, w tej pętli, może być w ogóle niewykonana;
- w pętli typu REPEAT warunek jest na końcu (po instrukcji), dlatego instrukcja zamieszczona wewnątrz pętli będzie przynajmniej raz wykonana;
- pętla typu FOR jest odmianą pętli typu WHILE – sterowanie tą pętlą (w odróżnieniu od pętli WHILE i REPEAT) jest jej integralną częścią, dlatego jej zapis jest czytelniejszy, ale pętla FOR jest mniej elastyczna niż dwie pozostałe.
Niklaus Wirth dokonał podziału na pętle REPEAT i WHILE ze względu na fakt, że występują okoliczności, w których instrukcja w pętli musi być wykonana przynajmniej raz (wtedy stosowana jest pętla REPEAT), oraz okoliczności, w których przyjmujemy, że instrukcja w pętli może nie być w ogóle wykonana (wtedy potrzebna jest pętla WHILE).
Ja używam tylko dwóch typów pętli. Według nomenklatury Wirtha są to: WHILE i FOR. Nie używam pętli typu REPEAT. Jeśli instrukcja wewnątrz pętli ma być wykonana przynajmniej raz, stosuję pętlę WHILE i umieszczam instrukcję z pętli także przed nią. Tym sposobem ograniczam liczbę stosowanych pętli, dzięki czemu zwiększam czytelność rozwiązania (zgodnie z zasadą: im mniejszą liczbą elementów zarządzamy, tym zarządzanie jest łatwiejsze).
Wykorzystałeś swój limit bezpłatnych treści
Pozostałe 87% artykułu dostępne jest dla zalogowanych użytkowników portalu. Zaloguj się, wybierz plan abonamentowy albo kup dostęp do artykułu/dokumentu.