загрузка...
загрузка...
На головну

Навігація по розділу

  1. ВСТУП ДО РОЗДІЛУ II
  2. Висновки по розділу I
  3. Висновки по розділу II
  4. Висновки по розділу III
  5. До розділу 2
  6. Навігація по файловій системі. Операції з файлами. Пошук файлів. Налаштування параметрів роботи операційної системи

· 33.3.1. HIPO - діаграма

· 33.3.2. Метод спадного проектування

· 33.3.3. Метод розширення ядра

· 33.3.4. Метод висхідного проектування

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

Під модульним програмуванням (модулярізаціі) розуміється поділ програми на частини за деякими встановленими правилами.

Ці частини на етапі кодування можуть бути реалізовані у вигляді модулів або підпрограм в залежності від їх розміру і вибраної мови програмування.

Для того щоб логічний модуль можна було закодувати, необхідно попередньо описати його поведінку, тобто уточняти. Для специфікації функцій логічних модулів з точки зору вхідних вихідних даних і зв'язку між ними використовують HIPO-діаграму. Її назва утворена з перших букв англійського словосполучення hierarchy-input-processing-output (ієрархічний опис вхід-обробка-вихід) [20].

Програми розбиваються на модулі для того, щоб:

· Спростити їх розробку і реалізацію;

· Полегшити читання програм;

· Спростити їх налаштування і модифікацію;

· Полегшити роботу з даними, що мають складну структуру;

· Уникнути надмірної деталізації алгоритмів;

· Забезпечити більш вигідне розміщення програм в пам'яті ЕОМ.

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

· Кількість зв'язків між окремими модулями має бути мінімальним (принцип «слабкою пов'язаності» - Low Coupling);

· Зв'язність окремих частин всередині кожного модуля повинна бути максимальною (принцип «сильного зчеплення» - High Cohesion).

Можливості підключення модуля визначається як міра залежності його частин.

Чим вище зв'язність модуля, тим краще результат проектування. Для позначення зв'язності використовується також поняття сили зв'язності модуля.

Зчеплення модулів являє собою міру відносної незалежності модулів, яка визначає їх читабельність і збереження.

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

Методи проектування програм, засновані на модульному принципі, діляться на три групи:

· Методи низхідного проектування,

· Методи розширення ядра і

· Методи висхідного проектування.

На практиці зазвичай застосовуються різні поєднання цих методів.

Розглянемо застосування функціональної декомпозиції на наступному прикладі.

Нехай нам необхідно розробити консольний додаток для подання десяткового дійсного числа в систему числення з основою р (підстава може змінюватися в діапазоні від 2 до 16).

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

Мал. 33.1. Схема ієрархії логічних модулів.



Попередня   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   Наступна

Розрахунок визначника квадратної матриці | транспонування матриць | Низькорівневі мови програмування | Процедурні мови програмування | Логічні мови програмування | Вступ | Постановка і формалізація задачі | Розробка алгоритмів розв'язання задачі | Технологія структурного програмування | Базові керуючі структури структурного програмування |

загрузка...
© um.co.ua - учбові матеріали та реферати