Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Модуль 1 шпоры.doc
Скачиваний:
6
Добавлен:
21.08.2019
Размер:
431.1 Кб
Скачать
  1. Діаграми подій

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

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

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

Якщо буде відмова в задачах А чи С, то програма згенерує виключення. І аналогічно по іншим гілкам. Проте видно, що завершення програми буде успішним, якщо буде успішним виконання хоча б однієї з гілок. Тому слід проектувати обробник виключень таким чином, аби він виконував один зі альтернативних наборів компонентів.

  1. Зв’язність та зв’язаність (coupling and cohesion)

Зв'язаність (англ. couplіng) або залежність (англ. dependency) - характеристика взаємозв'язку модуля з іншими модулями.

Це ступінь, у якій кожен програмний модуль покладається на інші модулі.

Зв'язаність звичайно протиставляється зв'язності (англ. cohesіon). Слабка зв'язаність часто сполучається із сильною зв'язністі й навпаки. Метрика якості ПО зв'язаності й зв'язності була придумана Larry Constantіne

Зв'язаність вмісту (висока)

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

Загальна зв'язаність це коли два модулі ділять між собою той самий глобальний набір даних (наприклад, глобальну змінну).

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

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

Зв'язаність по відбитку в структурі даних (stamp couplіng)

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

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

Зв'язаність повідомлень (низька)

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

Немає зв'язаності

Модулі не спілкуються меду собою зовсім.