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

4.4. Примітки

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

Графічно примітки позначаються прямокутником з «заломленим» верхнім правим кутом (мал. 4.5). Усередині прямокутника міститься текст примітки. Примітка може відноситися до будь-якого елемента діаграми, в цьому випадку їх сполучає пунктирна лінія. Якщо примітка відноситься до декількох елементів, то від нього проводяться, відповідно, декілька ліній. Зрозуміло, примітки можуть бути присутні не тільки на діаграмі варіантів використовування, але і на інших канонічних діаграмах.

Мал. 4.5. Приклади приміток в язиці UML

Якщо в примітці указується ключове слово «constraint», то дана примітка є обмеженням, що накладається на відповідний елемент моделі, але не на саму діаграму. При цьому запис обмеження полягає у фігурні дужки і повинна відповідати правилам правильної побудови виразів язика ОСL. Більш докладно язик об'єктних обмежень і приклади його використовування будуть розглянуті в додатку. Проте для діаграм варіантів використовування обмеження включати в моделі не рекомендується, оскільки вони достатньо жорстко регламентують окремі аспекти системи. Подібна регламентація суперечить неформальному характеру загальної моделі системи, як яка виступає діаграма варіантів використовування.

4.5. Відносини на діаграмі варіантів використовування

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

В язиці UML є декілька стандартних видів відносин між акторами і варіантами використовування:

Відношення асоціації (association relationship)

Відношення розширення (extend relationship)

Відношення узагальнення (generalization relationship)

Відношення включення (include relationship)

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

Відношення асоціації

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

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

Мал. 4.6. Приклад графічного представлення відношення асоціації між актором і варіантом використовування

Кратність (multiplicity) асоціації указується поряд з позначенням компоненту діаграми, який є учасником даної асоціації. Кратність характеризує загальну кількість конкретних екземплярів даного компоненту, які можуть виступати як елементи даної асоціації. Стосовно діаграм варіантів використовування кратність має спеціальне позначення у формі однієї або декількох цифр і, можливо, спеціального символу "*" (зірочка).

Примітка

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

Для діаграм варіантів використовування найпоширенішими є чотири основні форми запису кратності відношення асоціації:

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

Прикладом цієї форми запису кратності асоціації є вказівка кратності «1» для актора «Клієнт банку» (мал. 4.6). Цей запис означає, що кожний екземпляр варіанту використовування «Оформити кредит для клієнта банку» може мати як свій елемент єдиний екземпляр актора «Клієнт банку». Іншими словами, при оформленні кредиту в банку необхідно мати у вигляді, що кожний конкретний кредит оформляється на єдиного клієнта цього банку.

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

{первое_число, первое_число+1, первое_число+2. второе_число]. Очевидно, що перше число повинне бути строго менше другого числа в арифметичному значенні, при цьому перше число може бути рівне 0.

Приклад такої форми запису кратності асоціації – «1.5». Цей запис означає, що кількість окремих екземплярів даного компоненту, які можуть виступати як елементи даної асоціації, рівна деякому наперед невідомому числу з безлічі цілих чисел {1, 2, 3, 4, 5}. Ця ситуація може мати місце, наприклад, у разі розгляду як актор – клієнта банку, а як варіант використовування – процедуру відкриття рахунку в банку. При цьому кількість окремих рахунків кожного клієнта в даному банку, виходячи з деяких додаткових міркувань, може бути не більше 5. Ці додаткові міркування якраз і є зовнішніми вимогами по відношенню до проектованої системи і визначаються її замовником на початкових етапах ООАП.

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

Приклад такої форми запису кратності асоціації – «2.*». Запис означає, що кількість окремих екземплярів даного компоненту, які можуть виступати як елементи даної асоціації, рівна деякому наперед невідомому числу з підмножини натуральних чисел: {2, 3, 4}.

Єдиний символ "*", який є скороченням запису інтервалу «0.*». В цьому випадку кількість окремих екземплярів даного компоненту відношення асоціації може бути будь-яким цілим ненегативним числом. При цьому 0 означає, що для деяких екземплярів відповідного компоненту дане відношення асоціації може зовсім не мати місця.

Як приклад цього запису можна привести кратність відношення асоціації для варіанту використовування «Оформити кредит для клієнта банку» (мал. 4.6). Тут кратність "*" означає, що кожний окремий клієнт банку може оформити для себе декілька кредитів, при цьому їх загальне число наперед невідоме і нічим не обмежується. При цьому деякі клієнти можуть зовсім не мати оформлених на своє ім'я кредитів (варіант значення 0).

Якщо кратність відношення асоціації не вказана, то за умовчанням приймається її значення, рівне 1.

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

Відношення розширення

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

Відношення розширення між варіантами використовування позначається пунктирною лінією із стрілкою (варіант відношення залежності), направленою від того варіанту використовування, який є розширенням для початкового варіанту використовування. Дана лінія із стрілкою позначається ключовим словом «extend» («розширює»), як показано на мал. 4.7.

Мал. 4.7. Приклад графічного зображення відношення розширення між варіантами використовування

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

Один з варіантів використовування може бути розширенням для декількох базових варіантів, а також має як власні розширення дещо інших варіантів. Базовий варіант використовування може додатково ніяк не залежати від своїх розширень.

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

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

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

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

Відношення узагальнення

Відношення узагальнення служить для вказівки того факту, що деякий варіант використовування А може бути узагальнений до варіанту використовування В. В цьому випадку варіант А буде спеціалізацією варіанту В. При цьому В називається предком або батьком по відношенню А, а варіант А – нащадком по відношенню до варіанту використовування В. Следует підкреслити, що нащадок успадковує всі властивості і поведінку свого батька, а також може бути доповнений новими властивостями і особливостями поведінки. Графічно дане відношення позначається суцільною лінією із стрілкою у формі незакрашеного трикутника, яка указує на батьківський варіант використовування (мал. 4.9). Ця лінія із стрілкою має спеціальну назву – стрілка «узагальнення».

Мал. 4.9. Приклад графічного зображення відношення узагальнення між варіантами використовування

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

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

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

Мал. 4.10. Приклад графічного зображення відношення узагальнення між акторами

Відношення включення

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

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

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

Відношення включення, направлене від варіанту використовування А до варіанту використовування В, указує, що кожний екземпляр варіанту А включає функціональні властивості, задані для варіанту В. Эти властивості спеціалізують поведінку відповідного варіанту А на даній діаграмі. Графічно дане відношення позначається пунктирною лінією із стрілкою (варіант відношення залежності), направленою від базового варіанту використовування до того, що включається. При цьому дана лінія із стрілкою позначається ключовим словом «include» («включає»), як показано на мал. 4.11.

Мал. 4.11. Приклад графічного зображення відношення включення між варіантами використовування

Примітка

Слід помітити, що розглянуті три останні відношення можуть існувати тільки між варіантами використовування, які визначені для одного і того ж єства. Причина цього полягає в тому, що поведінка деякого єства обумовлена варіантами використовування тільки цього єства. Іншими словами, всі екземпляри варіанту використовування виконуються лише всередині даному єству. Якщо деякий варіант використовування повинен мати відношення узагальнення, включення або розширення з варіантом використовування іншого єства, одержувані в результаті екземпляри варіантів повинні бути включені в обидва єства, що суперечить семантичним правилам представлення елементів язика UML. Проте ці відносини, визначені в межах одного єства, можуть бути використані в межах іншого єства, якщо обидва єства зв'язано між собою відношенням узагальнення. В цьому випадку поведінка відповідних варіантів використовування підкоряється загальним правилам спадкоємства властивостей і поведінки єства‑ предка всіма дочірніми єствами.