Препоръчано, 2024

Избор На Редактора

Разлика между подхода отгоре надолу и отдолу нагоре

Алгоритмите са проектирани, като се използват два подхода, които са подходът отгоре-надолу и отдолу-нагоре. В подхода отгоре надолу сложният модул се разделя на подмодули. От друга страна, подходът отдолу нагоре започва с елементарни модули и след това ги комбинира. Предварителната цел на алгоритъма е да управлява данните, съдържащи се в структурата на данните. С други думи, алгоритъм се използва за извършване на операциите върху данните в структурите за данни.

Сложният алгоритъм се разделя на малки части, наречени модули, а процесът на разделяне е известен като модулация . Модулацията значително намалява усложненията при проектирането на алгоритъм и прави процеса по-лесен за проектиране и внедряване. Модулното програмиране е техника за проектиране и писане на програма под формата на функции, при които всяка функция се различава една от друга и работи самостоятелно. Съдържанието на функциите е кохезивно по начин и съществува ниско свързване между модулите.

Сравнителна таблица

Основа за сравнениеПодход отгоре надолуПодход отдолу-нагоре
ОсновенРазбива масивния проблем на по-малки подзадачи.Решава фундаменталния проблем на ниско ниво и ги интегрира в по-голям.
процесПодмодулите се анализират самостоятелно.Разгледайте какви данни трябва да бъдат капсулирани и предполагат концепцията за скриване на информация.
общуванеНе се изисква при подхода отгоре-надолу.Нуждае се от конкретна комуникация.
СъкращаванеСъдържат излишна информация.Резервирането може да бъде елиминирано.
Програмни езициСтруктурни / процедурно ориентирани езици за програмиране (т.е. C) следва подхода отгоре-надолу.Обектно-ориентираните езици за програмиране (като C ++, Java и др.) Следват подхода отдолу-нагоре.
Основно се използва вДокументация за модул, създаване на тест, внедряване на код и отстраняване на грешки.Тестване

Дефиниция на подход „отгоре надолу“

Подходът отгоре-надолу разделя сложен проблем или алгоритъм на множество по-малки части (модули). Тези модули се разграждат допълнително, докато полученият модул е ​​основната програма, по същество не се разбира и не може да бъде допълнително разграден. След постигане на определено ниво на модулност разпадането на модулите се преустановява. Подходът отгоре-надолу е поетапният процес на прекъсване на големия програмен модул в по-прости и по-малки модули за организиране и кодиране на програмата по ефективен начин. Потокът на контрол в този подход е винаги в посока надолу. Подходът "отгоре надолу" е реализиран в езика за програмиране "С" чрез използване на функции.

По този начин методът отгоре-надолу започва с абстрактен дизайн и след това последователно този дизайн се усъвършенства, за да се създадат по-конкретни нива, докато няма изискване за допълнително усъвършенстване.

Определяне на подход отдолу-нагоре

Подходът „ отдолу нагоре “ работи точно обратното на подхода „отгоре надолу“. Първоначално тя включва проектирането на най-фундаменталните части, които след това се комбинират, за да направят модула с по-високо ниво. Това интегриране на подмодули и модули в модула на по-високо ниво се извършва многократно, докато се получи необходимия пълен алгоритъм.

Подходът отдолу нагоре функционира със слоеве абстракция. Основното прилагане на подхода „отдолу нагоре“ е тестване, тъй като всеки основен модул се тества първо преди сливането му с по-голямото. Тестването се извършва с помощта на някои функции на ниско ниво.

Ключови разлики между подхода отгоре надолу и отдолу нагоре

  1. Подходът отгоре-надолу разделя голямата задача на по-малки подзадачи, докато подходът отдолу-нагоре първо избира да разреши различните основни части на задачата, след което директно комбинира тези части в цяла програма.
  2. Всеки подмодул се обработва отделно в подхода отгоре-надолу. За разлика от това подходът "отдолу нагоре" прилага концепцията за скриване на информацията, като изследва данните, които ще бъдат капсулирани.
  3. Различните модули в подхода отгоре-надолу не изискват много комуникация. Напротив, подходът „отдолу нагоре“ се нуждае от взаимодействие между отделните основни модули, за да ги комбинира по-късно.
  4. Подходът "отгоре надолу" може да доведе до съкращения, докато подходът "отдолу нагоре" не включва излишна информация.
  5. Процедурните езици за програмиране като Fortran, COBOL и C следва подход отгоре-надолу. Обратно, обектно-ориентираните езици за програмиране като C ++, Java, C #, Perl, Python спазват подхода отдолу-нагоре.
  6. Подходът "отдолу-нагоре" се използва предимно при тестване. Обратно, подходът "отгоре надолу" се използва в документацията на модулите, създаването на тестови случаи, отстраняването на грешки и т.н.

заключение

Подходът „отгоре-надолу“ и „отдолу-нагоре“ са методите за проектиране на алгоритъм, при които отгоре-надолу е конвенционален подход, който разлага системата от спецификация на високо ниво до спецификация на ниско ниво. От друга страна, подходът "отдолу нагоре" е по-ефективен и работи по обратен начин, когато примитивните компоненти са проектирани първоначално, след това преминават към по-високо ниво.

Подходът отгоре-надолу подчертава изолацията на подмодулите (означава ниското свързване между модулите), но игнорира идентифицирането на концепцията за комуникация и повторна употреба. Докато при подхода „отдолу нагоре“ скриването на информация и повторната употреба са важни фактори.

Top