АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Примітка. Характер використання інтерфейсів окремими компонентами може відрізнятися

Читайте также:
  1. Примітка
  2. Примітка
  3. Примітка
  4. Примітка
  5. Примітка
  6. Примітка
  7. Примітка
  8. Примітка
  9. Примітка
  10. Примітка
  11. Примітка
  12. Примітка

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

24.3. Залежності

У загальному випадку відношення залежності було розглянуте раніше (див. розділ 19). Нагадаємо, що залежність не є асоціацією, а служить для подання тільки факту наявності такого зв'язку, коли зміна одного елементу моделі має вплив або приводить до зміни іншого елемента моделі. Відношення залежності на діаграмі компонент зображається пунктирною лінією із стрілкою, яка направлена від клієнта (залежного елемента) до джерела (незалежного елемента).

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

У першому випадку малюють стрілку від компоненту-клієнта до інтерфейсу, що імпортується (рис. 24.4). Наявність такої стрілки означає, що компонент не реалізує відповідний інтерфейс, а використовує його в процесі свого виконання. Причому на цій же діаграмі може бути присутнім і інший компонент, який реалізує цей інтерфейс. Так, наприклад, зображений нижче фрагмент діаграми компонент задає інформацію про те, що компонент з іменем "main.exe" залежить від імпортованого інтерфейсу IDialog, який, у свою чергу, реалізується компонентом з іменем "image.java". Для другого компоненту цей же інтерфейс є експортованим.

Рис. 24.4. Фрагмент діаграми компонент з відношенням залежності

Відмітимо, що зобразити другий компонент з іменем "image.java" у формі варіанту примітки не можна саме через той факт, що цей компонент реалізує інтерфейс.

Іншим випадком відношення залежності на діаграмі компонент є відношення між різними видами компонент (рис. 24.5). Наявність подібної залежності означає, що внесення змін до початкових текстів програм або динамічних бібліотек приводить до змін самого компоненту. При цьому характер змін може бути відмічений додатково.

Рис. 24.5. Графічне зображення відношення залежності між компонентами

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

Рис. 24.6. Графічне зображення залежності між компонентом і класами

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

Рис. 24.7. Графічне зображення компоненту з додатковою інформацією про класи, що ними реалізуються

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

Рис. 24.8. Графічне зображення компоненту рівня екземпляра, що реалізує окремі об'єкти

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

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

24.4. Рекомендації з побудови діаграми компонент

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

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

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

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

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

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

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

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

Висновки

Контрольні питання

1. Призначення діаграми компонентів.

2. Позначення компоненту.

3. Ім'я компоненту.

4. Види компонент.

5. Інтерфейси.

6. Залежності на діаграмі компонентів.

 


РОЗДІЛ 25. Діаграма розгортання (deployment diagram)

à Вузол

à З'єднання

à Рекомендації з побудови діаграми розгортання

 

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

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

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

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

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

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

Діаграма розгортання містить графічні зображення процесорів, пристроїв, процесів і зв'язків між ними. На відміну від діаграм логічного подання, діаграма розгортання є єдиною для системи в цілому, оскільки повинна цілком відображати особливості її реалізації. Ця діаграма, по суті, завершує процес ООАП для конкретної програмної системи і її розроблення. Вона, як правило, є останнім етапом специфікації моделі.

Отже, перерахуємо цілі, що переслідуються під час розроблення діаграми розгортання:

¨ Визначити розподіл компонент системи за її фізичними вузлами.

¨ Показати фізичні зв'язки між всіма вузлами реалізації системи на етапі її виконання.

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

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

25.1. Вузол

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


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.007 сек.)