Аналіз або оцінка архітектури. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Аналіз або оцінка архітектури.



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

Оцінити архітектуру на предмет атрибутів якості, які вона забезпечує, зовсім необхідно - без цього не можна бути впевненим у тім, що кінцева система зможе задовольнити всі потреби зацікавлених осіб. Все більше поширення одержують методики аналізу, орієнтовані на оцінку повідомлюваних системі архітектурою атрибутів якості. Сценарні методики забезпечують найбільш універсальну та ефективну оцінку архітектури. Найбільш зріла методична база характерна для методу аналізу компромісних архітектурних рішень (Archіtecture Tradeoff Analysіs Method, ATAM); метод аналізу вартості та ефективності (Cost Benefіt Analysіs Method, CBAM), з іншого боку, передбачає вкрай коштовну можливість ув'язування архітектурних рішень із їх економічним змістом.

Архітектурні зразки, еталонні моделі та еталонні варіанти архітектури

У проміжку між схемами із прямокутників і ліній - найпростішими "ескізами" архитектур - і комплексними архитектурами, укомплектованими всією необхідною інформацією про системи, існують численні перехідні етапи. Кожен такий етап є результат прийняття ряду архітектурних рішень, сукупність архітектурних альтернатив. Деякі з них самі по собі мають певну цінність. Перш ніж переходити до аналізу архітектурних структур, розглянемо проміжні етапи.

Архітектурний зразок

Архітектурний зразок - опис типів елементів і відносин і виклад ряду обмежень на їх використання.

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

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

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

Синонимичним архітектурному зразку є загальновживаний термін "архітектурний стиль" (archіtectural style).

Еталонна модель

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

Оскільки еталонні моделі виникають з досвідом, їх наявність характерна лише для предметних областей, що сформувалися. Ви можете назвати стандартні елементи компілятора або системи керування базами даних? А в загальних словах пояснити, як ці елементи спільно вирішують своє загальне завдання? Якщо можете, виходить, ви знайомі з еталонною моделлю цих додатків.

Еталонна архітектура

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

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

Еталонні моделі, архітектурні зразки та еталонні архітектури не є варіантами архітектури; це не більш ніж корисні поняття, сприятливі фіксації окремих елементів архітектури. Кожний з них з'являється як результат проектних рішень, прийнятих на самих ранніх етапах. Відношення між цими проектними елементами представлено на Рисунку «Відносини між еталонними моделями, архітектурними зразками, варіантами еталонної і програмної архітектури»

Рисунок «Відносини між еталонними моделями, архітектурними зразками, варіантами еталонної й програмної архітектури»

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

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

 

21. Архітектурні структури і подання

Подання (vіew) - це відображення ряду зв'язаних архітектурних елементів у тому виді, у якому ними оперують зацікавлені в системі особи. У ньому фіксуються відображення сукупності елементів і встановлених між ними зв'язків.

Структура (structure) - ряд елементів, що існують у рамках програмного або апаратного забезпечення.

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

Архітектурні структури підрозділяються на три загальні групи, у кожну з яких включається елементи певного характеру:

Модульні структури.

Елементами таких структур є модулі - блоки реалізації. Модулі припускають розгляд системи з точки зору коду. Їм, як окремим областям, виділяються певні функціональні обов'язки. Особливої уваги тому, як кінцеве програмне забезпечення покаже себе в період прогону, у цьому випадку не приділяється.

Модульні структури діляться на наступні різновиди:

· Декомпозиція.

· Варіанти використання.

· Багаторівнева.

Структури "компонент і з'єднувач".

У цьому випадку елементами є компоненти (основні одиниці обчислень) і з'єднувачі (інструменти взаємодії між компонентами) періоду прогону.

Серед структур даного виду виділяються наступні:

· Процес або сполучені процеси.

· Паралелізм.

· Спільно використовувані дані, або репозиторій.

· Клієнт-сервер.

Структури розподілу.

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

Серед структур розподілу виділяються наступні:

· Розміщення.

· Реалізація.

· Розподіл функцій.

 



Поделиться:


Последнее изменение этой страницы: 2016-08-01; просмотров: 489; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.217.208.72 (0.006 с.)