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.