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

Шаблон проектування або паттерн

Шаблон проектування або паттерн - повторювана архітектурна конструкція, що представляє собою вирішення проблеми проектування в рамках деякого часто виникаючого контексту.

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

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

Правильно сформульований шаблон проектування дозволяє, відшукавши вдале рішення, користуватися ним знову й знову.

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

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

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

Багато об'єктів виникають у проекті з побудованої в ході аналізу моделі. Але нерідко з'являються й класи, у яких немає прототипів у реальному світі. Це можуть бути класи як низького рівня, наприклад масиви, так і високого.

  1. Класифікація архітектур пз

Архітектури потоків даних.

  • Послідовні пакети.

  • Канали й фільтри.

  • Незалежні компоненти.

  • Паралельні взаємодіючі процеси.

  • Клієнт-серверні системи.

  • Системи, керовані подіями.

Віртуальні машини

  • Інтерпретатори

  • Системи, засновані на правилах

Репозиторні архітектури

  • Бази даних

  • Гіпертекстові системи

  • Дошки оголошень

Рівневі архітектури

  1. Обробка помилок, виключень та небажаних умов

Обробка помилок

Логічні помилки - виявляються на етапі тестування та відладки

Коректно працюючі програми не містять помилок

Для попередження та виправлення помилок використовується програмна логіка

Підтримується нормальний хід виконання програми

Обробка виключень

Описує непередбачені умови під час виконання

Коректно написані програми можуть потрапляти у виключні ситуації

Для відновлення працездатності програми після виникнення виключних ситуацій використовуються методи обробки виключень

Нормальний хід виконання програми порушується

Обробка небажаних умов

Описує небажані умови, які цілком імовірні під час виконання

Коректно написані програми можуть потрапляти в небажані ситуації

Для виправлення небажаних умов використовується програмна логіка

Робиться спроба підтримати нормальний хід виконання прграми

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

Відновлення та корекція працездатності додатків

запит користувачу повторного вводу даних, повторна обробка файлів, повернення із бази даних, зміна мережевого маршруту, повторна ініціалізація приладів, перезавантаження підсистеми ПЗ тощо.