
- •Питання
- •Проектування пз – проектування, цілі проектування, вимоги до пз
- •Життєвий цикл пз
- •Моделі життєвого циклу
- •Цілісність даних та надійність
- •Шаблони проектування
- •Класифікація архітектур пз
- •Обробка помилок, виключень та небажаних умов
- •Діаграми подій
- •Зв’язність та зв’язаність (coupling and cohesion)
- •Повторне використання коду
- •11. Ітеративне й інкрементне проектування
- •12.Функціональна методика потоків даних
- •13. Структурна схема розроблюваного пз
- •14. Проектування програмного забезпечення при структурному підході
- •15. Типи компонентних структур та основі означення
- •16. Методологія компонентної розробки пз
- •17. Приклади компонентних середовищ
- •18. Планування архітектури
- •1. Архітектура впливає на структуру компанії-розроблювача.
- •2. Архітектура здатна впливати на завдання розроблювача.
- •3. Архітектура може впливати на вимоги, висунуті замовником щодо наступної системи (якщо вона заснована на тій же архітектурі, що й попередня).
- •4. Процес конструювання систем поповнює досвід архітектора.
- •5. Окремі «віхові» системи.
- •19. Програмний процес та архітектурно-економічний цикл
- •20. Архітектурні зразки, еталонні моделі та еталонні варіанти архітектури
- •Архітектурні структури і подання
Шаблони проектування
Шаблон проектування або паттерн
Шаблон проектування або паттерн - повторювана архітектурна конструкція, що представляє собою вирішення проблеми проектування в рамках деякого часто виникаючого контексту.
Зазвичай шаблон не є закінченим зразком, що може бути прямо перетворений у код; це лише приклад вирішення завдання, якім можна використати в різних ситуаціях. Об’єктно-орієнтовані шаблони показують відношення та взаємодії між класами або об'єктами, без визначення того, які кінцеві класи або об'єкти додатку будуть використатися.
Головна користь кожного окремого шаблона полягає в тому, що він описує рішення цілого класу абстрактних проблем. Також той факт, що кожен шаблон має своє ім'я, полегшує дискусію про абстрактні структури даних (ADT) між розроблювачами, тому що вони можуть посилатися на відомі шаблони. Таким чином, за рахунок шаблонів виробляється уніфікація термінології, назв модулів й елементів проекту.
Правильно сформульований шаблон проектування дозволяє, відшукавши вдале рішення, користуватися ним знову й знову.
Іноді шаблони консервують громіздку й малоефективну систему понять, розроблену вузькою групою. Коли кількість шаблонів зростає, перевищуючи критичну складність, виконавці починають ігнорувати шаблони й всю систему, з ними зв'язану. Нерідко шаблонами заміняється відсутність або недостатність документації в складному програмному середовищі.
Найважче завдання в об’єктно-орієнтованому проектуванні - розкласти систему на об'єкти. При вирішенні доводиться враховувати безліч факторів: інкапсуляцію, глибину деталізації, наявність залежностей, гнучкість, продуктивність, розвиток, повторне використання тощо. Все це впливає на декомпозицію, причому часто суперечливим образом.
Методики об’єктно-орієнтованого проектування відображають різні підходи. Ви можете сформулювати завданя письмово, виділити із фрази, що вийшла, іменники й дієслова, після чого створити відповідні класи й операції. Інший шлях - зосередитись на відносинах і поділі обов'язків у системі. Можна побудувати модель реального світу або перенести виявлені при аналізі об'єкти на свій дизайн.
Багато об'єктів виникають у проекті з побудованої в ході аналізу моделі. Але нерідко з'являються й класи, у яких немає прототипів у реальному світі. Це можуть бути класи як низького рівня, наприклад масиви, так і високого. Шаблон Компоновщик вводить таку абстракцію для однакового трактування об'єктів, у якої немає фізичного аналога. Якщо дотримуватися строгого моделювання і орієнтуватися лише на реальний світ, то вийде система, що відображає сьогоднішні потреби, але, можливо, не враховуює майбутній розвиток. Абстракції, що виникають у ході проектування, - ключ до гнучкого дизайну.
Шаблони проектування допомагають виявити не цілком очевидні абстракції й об'єкти, які можуть їх використати. Наприклад, об'єктів, що представляють процес або алгоритм, у дійсності немає, але вони є невід'ємними складовими гнучкого дизайну. Шаблон Стратегія описує спосіб реалізації взаємозамінних сімейств алгоритмів. Шаблон Стан дозволяє представити стан деякої сутності у вигляді об'єкта. Ці об'єкти рідко з'являються під час аналізу й навіть на ранніх стадіях проектування. Робота з ними починається пізніше, при спробах зробити дизайн більш гнучким і придатним для повторного використання.