Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Самовчитель по UML.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2.26 Mб
Скачать

10.1. Компоненти

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

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

Мал. 10.1. Графічне зображення компоненту в язиці UML

Так, в першому випадку (мал. 10.1, а) з компонентом рівня екземпляра зв'язується тільки його ім'я, а в другому (мал. 10.1, би) – додаткове ім'я пакету і помічене значення.

Примітка

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

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

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

Якщо ж компонент представляється на рівні екземпляра, то як його ім'я записується ‹ім'я компоненту :' ім'я типаХ При цьому весь рядок імені підкреслюється.

Примітка

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

Як прості імена прийнято використовувати імена виконуваних файлів (з вказівкою розширення ехе після крапки‑ роздільника), імена динамічних бібліотек (розширення dll), імена Web‑ сторінок (розширення html), імена текстових файлів (розширення txt або doc) або файлів довідки (hip), імена файлів баз даних (DB) або імена файлів з початковими текстами програм (розширення h, cpp для язика C++, розширення Java для язика Java), скрипти (pi, asp) і ін.

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

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

Види компонентів

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

В язиці UML виділяють три види компонентів.

По-перше, компоненти розгортання, які забезпечують безпосереднє виконання системою своїх функцій. Такими компонентами можуть бути бібліотеки з розширенням dll (мал. 10.2, а), Web‑ сторінки на язиці розмітки гіпертексту з розширенням html (мал. 10.2, би) і файли довідки з розширенням Ир, що динамічно підключаються (мал. 10.2, в).

По-друге, компоненти‑ робітники продукти. Як правило – це файли з початковими текстами програм, наприклад, з розширеннями h або срр для язика C++ (мал. 10.2, г).

По-третє, компоненти виконання, що представляють здійснимі модулі – файли з розширенням ехе. Вони позначаються звичайним способом.

Мал. 10.2. Варіанти графічного зображення компонентів на діаграмі компонентів

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

Інший спосіб специфікації різних видів компонентів – явна вказівка стереотипу компоненту перед його ім'ям. В язиці UML для компонентів визначені наступні стереотипи:

Бібліотека (library) – визначає перший різновид компоненту, який представляється у формі динамічної або статичної бібліотеки.

Таблиця (table) – також визначає перший різновид компоненту, який представляється у формі таблиці бази даних.

Файл (file) – визначає другий різновид компоненту, який представляється у вигляді файлів з початковими текстами програм.

Документ (document) – визначає другий різновид компоненту, який представляється у формі документа.

Здійснимий (executable) – визначає третій вид компоненту, який може виконуватися у вузлі.