12 Діаграми компонентів - СтудІзба

8 Діаграмикомпонентів (component diagram)

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

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

  • візуалізації загальної структури вихідного коду програмної системи;
  • специфікації можливого варіанта програмної системи;
  • забезпечення багаторазового використання окремих фрагментів програмного коду;
  • подання концептуальної та фізичної схем баз даних.

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

8.1 Основні графічні елементи діаграми компонентів

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

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

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

У мові UML виділяють три види компонентів:

  • компоненти розгортання, які забезпечують безпосереднє виконання системою своїх функцій: бібліотеки з розширенням dll, що динамічно підключаються, Web-сторінки на мові розмітки гіпертексту з розширенням html і файли довідки з розширенням hlp .
  • компоненти-робочі продукти: файли з вихідними текстами програм, наприклад, з розширеннями h або СРР для мови C++.
  • компоненти виконання, що представляють здійсненні модулі - файли з розширенням ехе.

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

компонентів

Мал. 64 Графічне зображення інтерфейсів на діаграмі компонентів

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

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

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

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

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

представлення

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