Programowanie/Metodyki/Programowanie zstępujące

Programowanie zstępujące

edytuj

Programowanie zstępujące jest jedną ze strukturalnych technik programowania. Polega ono na „rozdzielaniu” zadania programistycznego na mniejsze podzadania. Podzadanie jest podprogramem (np. funkcją).

dekompozycja

edytuj

Przykładowo mamy do napisania skomplikowaną funkcję, możemy ją sobie wyobrazić jako pustą klatkę schematu Nassi Schneidermanna. Możemy ją zmienić na bardziej szczegółowe podzadania trzema sposobami: (1) na sekwencję, (2) na warunek, (3) na iterację. Każdy z podprogramów możemy dalej dekomponować (rozdzielać na prostsze podprogramy) aż do momentu, w którym podprogram będzie łatwy do zakodowania.

Funkcja może być zapisana jako sekwencja elementarnych podzadań. Pierwsza podinstrukcja jest prostym wyświetleniem powitania. Druga podinstrukcja może być warunkowym sprawdzeniem poprawności danych wejściowych i reakcją na nie. Jeżeli dane są poprawne, wówczas wykonaj obliczenia, w przeciwnym razie wyświetl informację o błędzie. Instrukcja obliczania została zdekomponowana – jej projektowanie zostało odłożone na później. Technikę rozpisywania zadania na prostsze podzadania możemy kontynuować od rozwiązania problemu.

technika odraczania

edytuj

Technika odraczania pozwala na skompilowanie algorytmu podczas jego dekompozycji, nawet jeżeli nie został jeszcze w pełni zakodowany. Wszystkie podprogramy mogę być wpisywane do komputera jako realny kod programu, ale z jednym uproszczeniem. Mianowicie niezakodowana funkcja jedynie wypisuje na ekranie informację o tym, że jest jeszcze niezakodowana. Ale posiada ona nagłówek (interfejs) i pozwala na skompilowanie oraz próbne uruchomienie programu. Pozwala to na wyłapanie błędów kompilacji i szybkie prototypowanie algorytmu, nawet jeżeli nie jest jeszcze w pełni wiadomy. Funkcję „niezakodowaną” dzielimy na dwie kategorie:

zaślepki

edytuj

Zaślepki nie wykonują żadnych obliczeń, jedynie wyświetlają informację, że podprogram wymaga zakodowania.

makiety

edytuj

Makiety ponadto wydają jakieś wyniki działania, wzięte „na lipę”, tzn. zapewniające możliwość uruchomienia programu jeszcze przed jego zakodowaniem.