
- •1.1. Методологія процедурно‑ орієнтованого програмування
- •1.2. Методологія об'єктно-орієнтованого програмування
- •1.3. Методологія об'єктно-орієнтованого аналізу і проектування
- •1.4. Методологія системного аналізу і системного моделювання
- •Розділ 2
- •2.1. Передісторія. Математичні основи
- •Мал. 2.4. Приклади неорієнтованого (а) і орієнтованого (б) графів
- •Мал. 2.5. Приклади неорієнтованого (а) і орієнтованого (б) дерев
- •Мал. 2.6. Ієрархічні схеми неорієнтованого дерева (а) і орієнтованого дерева (б)
- •2.2. Діаграми структурного системного аналізу
- •I (Input) – вхід, т. Е. Все, що поступає в процес або споживається процесом.
- •2.3. Основні етапи розвитку uml
- •2. Забезпечити початкові поняття язика uml можливістю розширення і спеціалізації для більш точного представлення моделей систем в конкретній наочній області.
- •3. Опис язика uml повинен підтримувати таку специфікацію моделей, яка не залежить від конкретних язиків програмування і інструментальних засобів проектування програмних систем.
- •4. Опис язика uml повинен включати семантичний базис для розуміння загальних особливостей ооап.
- •7. Інтегрувати в себе новітні і якнайкращі досягнення практики ооап.
- •3.2. Загальна структура язика uml
- •3.3. Пакети в язиці uml
- •3.4. Основні пакети метамоделі язика uml
- •3.5. Специфіка опису метамоделі язика uml
- •3.6. Особливості зображення діаграм язика uml
- •4.1. Варіант використовування
- •4.2. Актори
- •4.3. Інтерфейси
- •4.4. Примітки
- •4.5. Відносини на діаграмі варіантів використовування
- •4.6. Приклад побудови діаграми варіантів використовування
- •4.7. Рекомендації по розробці діаграм варіантів використовування
- •5.1. Клас
- •5.2. Відносини між класами
- •5.5. Шаблони або класи, що параметризуються
- •5.6. Рекомендації по побудові діаграм класів
- •6.1. Автомати
- •Include – ця мітка використовується для звернення до підавтомата, при цьому наступний за нею вираз дії містить ім'я цього підавтомата.
- •6.3. Перехід
- •6.4. Складовий стан і підстан
- •6.5. Історичний стан
- •Мал. 6.10. Графічне зображення недавнього (а) і давнього (б) історичного стану
- •6.6. Складні переходи
- •Мал. 6.11. Графічне зображення паралельного переходу з паралельних станів (а) і паралельного переходу в паралельні стани (б)
- •6.7. Заключні рекомендації по побудові діаграм станів
- •7.1. Стан дії
- •7.2. Переходи
- •7.5. Рекомендації по побудові діаграм діяльності
- •8.2. Повідомлення
- •Мал. 8.7. Діаграма послідовності із стереотипними значеннями повідомлень
- •8.3. Приклад побудови діаграми послідовності
- •8.4. Заключні рекомендації по побудові діаграм послідовності
- •9.1. Кооперація
- •9.3. Зв'язки
- •9.4. Повідомлення
- •9.6. Заключні рекомендації по побудові діаграм кооперації
- •10.1. Компоненти
- •10.2. Інтерфейси
- •10.3. Залежність
- •10.4. Рекомендації по побудові діаграми компонентів
- •11.1. Вузол
- •11.2. З'єднання
- •Мал. 11.4. Фрагмент діаграми розгортання із з'єднаннями меходу вузлами
- •11.3. Рекомендації по побудові діаграми розгортання
- •12.1. Загальна характеристика case‑ засобу Rational Rose 98/2000
- •12.2. Особливості робочого інтерфейсу Rational Rose
- •12.3. Початок роботи над проектом в середовищі Rational Rose
- •12.4. Розробка діаграми варіантів використовування в середовищі Rational Rose
- •12.5. Розробка діаграми класів в середовищі Rational Rose
- •12.6. Розробка діаграми станів в середовищі Rational Rose
- •12.7. Розробка діаграми послідовності в середовищі Rational Rose
- •12.8. Розробка діаграми кооперації в середовищі Rational Rose
- •12.9. Розробка діаграми компонентів в середовищі Rational Rose
- •12.10. Розробка діаграми розгортання в середовищі Rational Rose
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) – визначає третій вид компоненту, який може виконуватися у вузлі.