Інформаційна закритість

Принцип інформаційної закритості (автор — Д. Парнас, 1972) затверджує: зміст модулів повинен бути прихований один від одного. Модуль повинен визначатися і проектуватися так, щоб його вміст (процедури і дані) був недоступний тим модулям, які не потребують такої інформації (клієнтам).

Інформаційна закритість означає наступне:

1) всі модулі незалежні, обмінюються тільки інформацією, необхідною для роботи;

2) доступ до операцій і структур даних модуля обмежений.

Достоїнства інформаційної закритості:

· забезпечується можливість розробки модулів різними, незалежними колективами;

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

Ідеальний модуль грає роль «чорного ящика», вміст якого невидимо клієнтам. Він простий у використанні — кількість «ручок і органів управління» їм невелика (аналогія з експлуатацією телевізора). Його легко розвивати і коректувати в процесі супроводу програмної системи. Для забезпечення таких можливостей система внутрішніх і зовнішніх зв'язків модуля повинна відповідати особливим вимогам.

 

Зв'язність модуля

Зв'язність модуля (Cohesion) — це міра залежності його частин. Зв'язність — внутрішня характеристика модуля. Чим вище зв'язність модуля, тим краще результат проектування, тобто тим «чорніше» його ящик (капсула, захисна оболонка модуля), тим менше «ручок управління» на нім знаходиться і тим простіше ці «ручки».

Для вимірювання зв'язності використовують поняття сили зв'язності (СЗ).

Існує 7 типів зв'язності:

1. Зв'язність по збігу (СЗ=0). У модулі відсутні явно виражені внутрішні зв'язки.

2. Логічна зв'язність (СЗ=1). Частини модуля об'єднані за принципом функціональної подібності. Наприклад, модуль складається з різних підпрограм обробки помилок. При використанні такого модуля клієнт вибирає тільки одну з підпрограм.

Недоліки:

· складне сполучення;

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

3. Тимчасова зв'язність (СЗ=3). Частини модуля не зв'язані, але необхідні в один і той же період роботи системи.

Недолік: сильний взаємний зв'язок з іншими модулями, звідси — сильна чутливість внесенню змін.

4. Процедурна зв'язність (СЗ=5). Частини модуля зв'язані порядком виконуваних ними дій, що реалізовують деякий сценарій поведінки.

5. Комунікативна зв'язність (СЗ=7). Частини модуля зв'язані по даним (працюють з однією і тією ж структурою даних).

6. Інформаційна (послідовна) зв'язність (СС=9). Вихідні дані однієї частини використовуються як вхідні дані в іншій частині модуля.

7. Функціональна зв'язність (СЗ=10). Частини модуля разом реалізують одну функцію.

Відзначимо, що типи зв'язності 1,2,3 — результат неправильного планування архітектури, а тип зв'язності 4 — результат недбалого планування архітектури додатку.

 

Таблиця. Характеристика зв’язаності модуля

Тип зв'язності Супроводженість Роль модуля
Функціональна Краща супроводженість «Чорний ящик»
Інформаційна (послідовна) Не зовсім «чорний ящик»
Комуникатівная «Сірий ящик»
Процедурна Гірша супроводженість «Білий» або такий, що «просвічує ящик»
Тимчасова «Білий ящик»
Логічна
По збігу

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: