Принцип інформаційної закритості (автор — Д. Парнас, 1972) затверджує: зміст модулів повинен бути прихований один від одного. Модуль повинен визначатися і проектуватися так, щоб його вміст (процедури і дані) був недоступний тим модулям, які не потребують такої інформації (клієнтам).
Інформаційна закритість означає наступне:
1) всі модулі незалежні, обмінюються тільки інформацією, необхідною для роботи;
2) доступ до операцій і структур даних модуля обмежений.
Достоїнства інформаційної закритості:
· забезпечується можливість розробки модулів різними, незалежними колективами;
· забезпечується легка модифікація системи (вірогідність розповсюдження помилок дуже мала, оскільки більшість даних і процедур приховано від інших частин системи).
Ідеальний модуль грає роль «чорного ящика», вміст якого невидимо клієнтам. Він простий у використанні — кількість «ручок і органів управління» їм невелика (аналогія з експлуатацією телевізора). Його легко розвивати і коректувати в процесі супроводу програмної системи. Для забезпечення таких можливостей система внутрішніх і зовнішніх зв'язків модуля повинна відповідати особливим вимогам.
|
|
Зв'язність модуля
Зв'язність модуля (Cohesion) — це міра залежності його частин. Зв'язність — внутрішня характеристика модуля. Чим вище зв'язність модуля, тим краще результат проектування, тобто тим «чорніше» його ящик (капсула, захисна оболонка модуля), тим менше «ручок управління» на нім знаходиться і тим простіше ці «ручки».
Для вимірювання зв'язності використовують поняття сили зв'язності (СЗ).
Існує 7 типів зв'язності:
1. Зв'язність по збігу (СЗ=0). У модулі відсутні явно виражені внутрішні зв'язки.
2. Логічна зв'язність (СЗ=1). Частини модуля об'єднані за принципом функціональної подібності. Наприклад, модуль складається з різних підпрограм обробки помилок. При використанні такого модуля клієнт вибирає тільки одну з підпрограм.
Недоліки:
· складне сполучення;
· велика вірогідність внесення помилок при зміні сполучення ради однієї з функцій.
3. Тимчасова зв'язність (СЗ=3). Частини модуля не зв'язані, але необхідні в один і той же період роботи системи.
Недолік: сильний взаємний зв'язок з іншими модулями, звідси — сильна чутливість внесенню змін.
4. Процедурна зв'язність (СЗ=5). Частини модуля зв'язані порядком виконуваних ними дій, що реалізовують деякий сценарій поведінки.
5. Комунікативна зв'язність (СЗ=7). Частини модуля зв'язані по даним (працюють з однією і тією ж структурою даних).
6. Інформаційна (послідовна) зв'язність (СС=9). Вихідні дані однієї частини використовуються як вхідні дані в іншій частині модуля.
|
|
7. Функціональна зв'язність (СЗ=10). Частини модуля разом реалізують одну функцію.
Відзначимо, що типи зв'язності 1,2,3 — результат неправильного планування архітектури, а тип зв'язності 4 — результат недбалого планування архітектури додатку.
Таблиця. Характеристика зв’язаності модуля
Тип зв'язності | Супроводженість | Роль модуля |
Функціональна | Краща супроводженість | «Чорний ящик» |
Інформаційна (послідовна) | Не зовсім «чорний ящик» | |
Комуникатівная | «Сірий ящик» | |
Процедурна | Гірша супроводженість | «Білий» або такий, що «просвічує ящик» |
Тимчасова | «Білий ящик» | |
Логічна | ||
По збігу |