
Skomplikowany algorytm jest podzielony na małe części zwane modułami, a proces dzielenia nazywany jest modularyzacją . Modularyzacja znacznie zmniejsza komplikacje związane z projektowaniem algorytmu i ułatwia jego projektowanie i implementację. Programowanie modułowe jest techniką projektowania i pisania programu w postaci funkcji, w których każda funkcja różni się od siebie i działa niezależnie. Treść funkcji jest spójna, a pomiędzy modułami występuje niskie sprzężenie.
Wykres porównania
Podstawa do porównania | Podejście zstępujące | Podejście oddolne |
---|---|---|
Podstawowy | Łamie ogromny problem na mniejsze podproblemy. | Rozwiązuje podstawowy problem niskiego poziomu i integruje je w jeden większy. |
Proces | Submoduły są analizowane pojedynczo. | Sprawdź, jakie dane mają zostać zamknięte, i sugeruje ukrywanie informacji. |
Porozumiewanie się | Nie jest wymagane w podejściu z góry na dół. | Wymaga określonej ilości komunikacji. |
Nadmiar | Zawierają nadmiarowe informacje. | Redundancja może zostać wyeliminowana. |
Języki programowania | Języki programowania strukturalnego / proceduralnego (tj. C) są zgodne z podejściem odgórnym. | Języki programowania obiektowego (takie jak C ++, Java itp.) Są oparte na podejściu oddolnym. |
Głównie używane w | Dokumentacja modułu, tworzenie przypadków testowych, implementacja kodu i debugowanie. | Testowanie |
Definicja podejścia odgórnego
Podejście odgórne dzieli zasadniczo złożony problem lub algorytm na wiele mniejszych części (modułów). Moduły te są następnie rozkładane, aż powstały moduł jest zasadniczo zrozumiałym programem podstawowym i nie może być dalej rozkładany. Po osiągnięciu pewnego poziomu modułowości ustaje rozpad modułów. Podejście odgórne to krok po kroku przerywający duży moduł programowy na prostsze i mniejsze moduły w celu zorganizowania i kodowania programu w efektywny sposób. Przepływ kontroli w tym podejściu jest zawsze skierowany w dół. Podejście odgórne realizowane jest w języku programowania "C" za pomocą funkcji.
Tak więc metoda od góry do dołu zaczyna się od abstrakcyjnego projektu, a następnie sekwencyjnie ten projekt jest dopracowywany, aby stworzyć bardziej konkretne poziomy, dopóki nie będzie wymogu dodatkowego udoskonalenia.
Definicja podejścia oddolnego
Oddolne podejście działa w sposób odwrotny do podejścia odgórnego. Początkowo obejmuje projektowanie najbardziej podstawowych części, które następnie są łączone, aby uczynić moduł wyższego poziomu. Ta integracja submodułów i modułów do modułu wyższego poziomu jest powtarzana do momentu uzyskania wymaganego kompletnego algorytmu.
Podejście od dołu działa z warstwami abstrakcji. Podstawowym zastosowaniem podejścia oddolnego jest testowanie, ponieważ każdy moduł podstawowy jest najpierw testowany przed połączeniem go z większym. Testowanie odbywa się za pomocą pewnych funkcji niskiego poziomu.
Kluczowe różnice między podejściem od góry do dołu a podejściem od dołu
- Podejście odgórne rozkłada duże zadanie na mniejsze podzadania, podczas gdy podejście oddolne najpierw rozwiązuje różne podstawowe części zadania bezpośrednio, a następnie łączy te części w cały program.
- Każdy submoduł jest przetwarzany osobno w ramach podejścia odgórnego. W przeciwieństwie do tego, podejście oddolne wdraża koncepcję ukrywania informacji poprzez badanie danych, które mają być enkapsulowane.
- Różne moduły podejścia odgórnego nie wymagają dużej komunikacji. Przeciwnie, podejście oddolne wymaga interakcji między oddzielnymi modułami podstawowymi, aby później je połączyć.
- Podejście odgórne może zapewnić nadmiarowość, natomiast podejście oddolne nie obejmuje nadmiarowych informacji.
- Języki programowania proceduralnego, takie jak Fortran, COBOL i C, są zgodne z podejściem odgórnym. Natomiast zorientowane obiektowo języki takie jak C ++, Java, C #, Perl, Python są oparte na podejściu oddolnym.
- Podejście bottom-up jest wykorzystywane wcześniej w testowaniu. Odwrotnie, podejście zstępujące jest wykorzystywane w dokumentacji modułu, tworzeniu przypadków testowych, debugowaniu itp.
Wniosek
Podejście odgórne i oddolne to metody projektowania algorytmów, w których odgórne jest podejściem konwencjonalnym, które rozkłada system ze specyfikacji wysokiego poziomu do specyfikacji niskiego poziomu. Z drugiej strony, podejście oddolne jest bardziej wydajne i działa w sposób odwrotny, gdy początkowo komponenty są projektowane, a następnie przechodzą na wyższy poziom.
Podejście odgórne kładzie nacisk na izolację submodułów (oznacza niskie sprzężenie między modułami), ignorując jednocześnie identyfikację koncepcji komunikacji i ponownego wykorzystania. W podejściu oddolnym najważniejszymi czynnikami są ukrywanie informacji i ich ponowne wykorzystanie.