Programowanie/Metodyki/Programowanie zstępujące
Programowanie zstępująceEdytuj
Programowanie zstępujące jest jedną ze strukturalnych technik programowania. Polega ono na „rozdzielaniu” zadania programistycznego na mniejsze podzadania. Podzadanie jest podprogramem (np. funkcją).
dekompozycjaEdytuj
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 odraczaniaEdytuj
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ślepkiEdytuj
Zaślepki nie wykonują żadnych obliczeń, jedynie wyświetlają informację, że podprogram wymaga zakodowania.
makietyEdytuj
Makiety ponadto wydają jakieś wyniki działania, wzięte „na lipę”, tzn. zapewniające możliwość uruchomienia programu jeszcze przed jego zakodowaniem.