Складний алгоритм розбивається на дрібні частини, які називаються модулями, і процес розщеплення відомий як модуляція . Модуляція значно зменшує ускладнення проектування алгоритму і спрощує процес його проектування та реалізації. Модульне програмування - це техніка проектування та написання програми у вигляді функцій, де кожна функція відрізняється один від одного і працює незалежно. Зміст у функціях є когезивними, і існує низька зв'язок між модулями.
Діаграма порівняння
Основа для порівняння | Підхід зверху вниз | Підхід знизу вгору |
---|---|---|
Основний | Розбиває масивну проблему на менші підзадачі. | Вирішує фундаментальну проблему низького рівня і інтегрує їх у більшу. |
Процес | Субмодулі аналізуються однозначно. | Вивчіть, які дані необхідно інкапсулювати, і передбачають концепцію приховування інформації. |
Спілкування | Не вимагається підхід зверху вниз. | Потребує певного обсягу спілкування. |
Надмірність | Містять надлишкову інформацію. | Надмірність може бути усунена. |
Мови програмування | Структура / процедурно орієнтовані мови програмування (тобто C) слідує підходу «зверху вниз». | Об'єктно-орієнтовані мови програмування (наприклад, C ++, Java тощо) слідують підходу «знизу-вгору». |
В основному використовується в Росії | Документація модуля, створення тестового випадку, реалізація коду та налагодження. | Тестування |
Визначення підходу "зверху вниз"
Підхід зверху вниз в основному розділяє складну проблему або алгоритм на декілька менших частин (модулів). Ці модулі далі розкладаються, поки результуючий модуль не є фундаментальною програмою, по суті, зрозумілою і не може бути додатково розкладений. Після досягнення певного рівня модульності припиняється розкладання модулів. Підхід «згори-вниз» - це поетапний процес руйнування великого програмного модуля на більш прості та менші модулі для організації та кодування програми ефективним способом. Потік контролю в цьому підході завжди знаходиться в низхідному напрямку. Підхід «зверху вниз» реалізований у мові програмування «С» за допомогою функцій.
Таким чином, метод top-down починається з абстрактного дизайну, а потім послідовно цей дизайн уточнюється для створення більш конкретних рівнів, поки не буде вимоги додаткового уточнення.
Визначення підходу «знизу вгору»
Підхід « знизу-вгору» працює навпроти підходу «зверху вниз». Спочатку вона включає в себе проектування найбільш фундаментальних частин, які потім об'єднують, щоб зробити модуль вищого рівня. Така інтеграція підмодулів і модулів у модуль вищого рівня неодноразово виконується до отримання необхідного повного алгоритму.
Підхід знизу вгору функціонує з шарами абстракції. Первинне застосування підходу «знизу-вгору» є тестуванням, оскільки кожен основний модуль спочатку перевіряється, перш ніж об'єднати його з більшим. Тестування здійснюється за допомогою деяких функцій низького рівня.
Ключові відмінності між підходом "зверху вниз" і "знизу вгору"
- Підхід згори-вниз розкладає велике завдання на менші підзадачі, тоді як підхід «знизу-вгору» спочатку вирішує вирішувати різні фундаментальні частини завдання, а потім комбінувати ці частини в цілу програму.
- Кожен підмодуль обробляється окремо у підході зверху вниз. На відміну від цього, підхід «знизу-вгору» реалізує концепцію приховування інформації шляхом вивчення даних, що підлягають інкапсуляції.
- Різні модулі підходу зверху вниз не вимагають багато комунікацій. Навпаки, підхід «знизу вгору» потребує взаємодії між окремими фундаментальними модулями, щоб об'єднати їх пізніше.
- Підхід «зверху вниз» може призвести до надмірності, а підхід «знизу-вгору» не містить зайвої інформації.
- Процедурні мови програмування, такі як Fortran, COBOL і C, слідують підходу зверху вниз. Навпаки, об'єктно-орієнтовані мови програмування, такі як C ++, Java, C #, Perl, Python, дотримуються підходу «знизу вгору».
- Підхід тестування «знизу вгору» використовувався раніше. І навпаки, підхід згори-вниз використовується у документації модуля, у створенні тесту, у налагодженні тощо.
Висновок
Підхід згори-вниз і підхід «знизу-вгору» - це методи розробки алгоритму, де зверху вниз є звичайним підходом, який розкладає систему від специфікації високого рівня до специфікації низького рівня. З іншого боку, підхід «знизу-вгору» є більш ефективним і працює у зворотному порядку, коли примітивні компоненти спочатку розробляються, а потім переходять на більш високий рівень.
Підхід зверху вниз підкреслює ізоляцію підмодулів (означає низьку зв'язок між модулями), при цьому ігнорує ідентифікацію концепції комунікації та повторного використання. Хоча у підході знизу-вгору, приховування інформації та повторне використання є важливими факторами.