„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).

Pętla typu REPEAT jest trudniejsza w analizie w porównaniu do pętli typu WHILE. Czytając kod programu, trzeba w pętli typu REPEAT szukać warunku na jej końcu, a jeśli używa się pętli typu WHILE, trzeba również zmienić sposób myślenia o jej działaniu.

Dostęp możliwy dla zalogowanych użytkowników serwisu. Jeśli posiadasz aktywną prenumeratę przejdź do LOGOWANIA. Jeśli nie jesteś jeszcze naszym Czytelnikiem wybierz najkorzystniejszy WARIANT PRENUMERATY.

Zaloguj Zamów prenumeratę

Zobacz również

Tylko on-line nr 21/2019

Technologie informatyczne wspierające prowadzenie biznesu - case study branży spożywczej

MC_65_24.jpg

Przedsiębiorstwa dysponują dziś większą ilością danych niż kiedykolwiek. Nigdy w historii ani nie zbierały, ani nie raportowały tylu informacji podatkowych czy gospodarczych. W wielu branżach kontrola jakości nigdy nie była na tak zaawansowanym poziomie. Jednak by przetworzyć i właściwie zanalizować tak duże zasoby danych, trzeba wykorzystać technologie: systemy analityczne, systemy wspierające przetwarzanie informacji zgodnie z obowiązującymi przepisami na przykład w zakresie finansów i księgowości czy kadr i płac, a także systemy pozwalające na połączenie danych spływających z różnych źródeł – produkcji, magazynów i sprzedaży.

Czytaj więcej
Tylko on-line nr 21/2019

SAP w branży logistycznej - to logiczne!

MC_65_29.jpg

SAP jest systemem klasy ERP, łączącym wszystkie obszary działalności przedsiębiorstwa. Składa się z wielu modułów, które odpowiadają obszarom działalności przedsiębiorstwa, takim jak: logistyka i produkcja, kadry i płace, finanse i controlling. Główną zaletą wdrożenia systemu ERP, takiego jak SAP, jest zgromadzenie wszystkich potrzebnych informacji w jednym miejscu. Dzięki wdrożeniu SAP-a uprawnieni pracownicy znajdą w systemie komplet danych źródłowych i wynikowych. Takie podejście sprawia, że branża logistyczna może jeszcze skuteczniej wpływać na efektywne działanie całego przedsiębiorstwa oraz na ciągłe ulepszanie wyników sprzedażowych.

Czytaj więcej
Tylko on-line nr 21/2019

Model do obliczania amortyzacji w Excelu

CiRZ_240_30.jpg

Amortyzacja środków trwałych jest jednym z kosztów, którego wielkość jesteśmy w stanie zaplanować. I choć w dzisiejszych czasach większość programów księgowych ma wbudowane narzędzie do planowania amortyzacji, może się zdarzyć, że będziemy zmuszeni wykorzystać w tym celu program Excel. Niniejszy artykuł ma za zadanie pokazać, jak takie narzędzie można zbudować.

Czytaj więcej

Numer bieżący

Przejdź do

Partnerzy

Reklama