Рекомендуємо, 2022

Вибір Редакції

Різниця між підходом "зверху вниз" і "знизу вгору"

Алгоритми розроблені з використанням двох підходів - підходу «зверху вниз» і «знизу-вгору». У підході зверху вниз комплексний модуль поділяється на підмодулі. З іншого боку, підхід «знизу вгору» починається з елементарних модулів, а потім поєднує їх далі. Попередня мета алгоритму полягає в тому, щоб керувати даними, що містяться в структурі даних. Іншими словами, алгоритм використовується для виконання операцій над даними всередині структур даних.

Складний алгоритм розбивається на дрібні частини, які називаються модулями, і процес розщеплення відомий як модуляція . Модуляція значно зменшує ускладнення проектування алгоритму і спрощує процес його проектування та реалізації. Модульне програмування - це техніка проектування та написання програми у вигляді функцій, де кожна функція відрізняється один від одного і працює незалежно. Зміст у функціях є когезивними, і існує низька зв'язок між модулями.

Діаграма порівняння

Основа для порівнянняПідхід зверху внизПідхід знизу вгору
ОсновнийРозбиває масивну проблему на менші підзадачі.Вирішує фундаментальну проблему низького рівня і інтегрує їх у більшу.
ПроцесСубмодулі аналізуються однозначно.Вивчіть, які дані необхідно інкапсулювати, і передбачають концепцію приховування інформації.
СпілкуванняНе вимагається підхід зверху вниз.Потребує певного обсягу спілкування.
НадмірністьМістять надлишкову інформацію.Надмірність може бути усунена.
Мови програмуванняСтруктура / процедурно орієнтовані мови програмування (тобто C) слідує підходу «зверху вниз».Об'єктно-орієнтовані мови програмування (наприклад, C ++, Java тощо) слідують підходу «знизу-вгору».
В основному використовується в РосіїДокументація модуля, створення тестового випадку, реалізація коду та налагодження.Тестування

Визначення підходу "зверху вниз"

Підхід зверху вниз в основному розділяє складну проблему або алгоритм на декілька менших частин (модулів). Ці модулі далі розкладаються, поки результуючий модуль не є фундаментальною програмою, по суті, зрозумілою і не може бути додатково розкладений. Після досягнення певного рівня модульності припиняється розкладання модулів. Підхід «згори-вниз» - це поетапний процес руйнування великого програмного модуля на більш прості та менші модулі для організації та кодування програми ефективним способом. Потік контролю в цьому підході завжди знаходиться в низхідному напрямку. Підхід «зверху вниз» реалізований у мові програмування «С» за допомогою функцій.

Таким чином, метод top-down починається з абстрактного дизайну, а потім послідовно цей дизайн уточнюється для створення більш конкретних рівнів, поки не буде вимоги додаткового уточнення.

Визначення підходу «знизу вгору»

Підхід « знизу-вгору» працює навпроти підходу «зверху вниз». Спочатку вона включає в себе проектування найбільш фундаментальних частин, які потім об'єднують, щоб зробити модуль вищого рівня. Така інтеграція підмодулів і модулів у модуль вищого рівня неодноразово виконується до отримання необхідного повного алгоритму.

Підхід знизу вгору функціонує з шарами абстракції. Первинне застосування підходу «знизу-вгору» є тестуванням, оскільки кожен основний модуль спочатку перевіряється, перш ніж об'єднати його з більшим. Тестування здійснюється за допомогою деяких функцій низького рівня.

Ключові відмінності між підходом "зверху вниз" і "знизу вгору"

  1. Підхід згори-вниз розкладає велике завдання на менші підзадачі, тоді як підхід «знизу-вгору» спочатку вирішує вирішувати різні фундаментальні частини завдання, а потім комбінувати ці частини в цілу програму.
  2. Кожен підмодуль обробляється окремо у підході зверху вниз. На відміну від цього, підхід «знизу-вгору» реалізує концепцію приховування інформації шляхом вивчення даних, що підлягають інкапсуляції.
  3. Різні модулі підходу зверху вниз не вимагають багато комунікацій. Навпаки, підхід «знизу вгору» потребує взаємодії між окремими фундаментальними модулями, щоб об'єднати їх пізніше.
  4. Підхід «зверху вниз» може призвести до надмірності, а підхід «знизу-вгору» не містить зайвої інформації.
  5. Процедурні мови програмування, такі як Fortran, COBOL і C, слідують підходу зверху вниз. Навпаки, об'єктно-орієнтовані мови програмування, такі як C ++, Java, C #, Perl, Python, дотримуються підходу «знизу вгору».
  6. Підхід тестування «знизу вгору» використовувався раніше. І навпаки, підхід згори-вниз використовується у документації модуля, у створенні тесту, у налагодженні тощо.

Висновок

Підхід згори-вниз і підхід «знизу-вгору» - це методи розробки алгоритму, де зверху вниз є звичайним підходом, який розкладає систему від специфікації високого рівня до специфікації низького рівня. З іншого боку, підхід «знизу-вгору» є більш ефективним і працює у зворотному порядку, коли примітивні компоненти спочатку розробляються, а потім переходять на більш високий рівень.

Підхід зверху вниз підкреслює ізоляцію підмодулів (означає низьку зв'язок між модулями), при цьому ігнорує ідентифікацію концепції комунікації та повторного використання. Хоча у підході знизу-вгору, приховування інформації та повторне використання є важливими факторами.

Top