Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л3-4(Діаграма варіантів використання).doc
Скачиваний:
5
Добавлен:
15.11.2019
Размер:
524.8 Кб
Скачать

Примітки

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

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

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

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

Відношення на діаграмі варіантів використання

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

У мові UML є декілька стандартних видів відношень між акторами і варіантами використання:

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

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

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

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

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

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

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

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

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

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

Примітка

Кратність є потужністю множини екземплярів сутності, яка бере участь в даній асоціації. Асоціація – одна з найбільш загальних форм відношень в мові 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. Проте ці відношення, визначені в межах однієї сутності, можуть бути використані в межах іншої сутності, якщо обидві сутність зв'язано між собою відношенням узагальнення. В цьому випадку поведінка відповідних варіантів використання виконує загальні правила спадкування властивостей і поведінки сутності-предка всією дочірньою сутністю.

Приклад побудови діаграми варіантів використання

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

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

Мал. 4.12. Вихідна діаграма варіантів використання для прикладу розробки системи продажу товарів по каталогу

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

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

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

Отримана в результаті подальшої деталізації уточнена діаграма варіантів використання міститиме 5 варіантів використання і 2 акторів (мал. 4.13), між якими встановлені відношення включення і розширення.

Мал. 4.13. Уточнений варіант діаграми варіантів використання для прикладу системи продажу товарів по каталогу

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

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

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

Мал. 4.14. Один з варіантів подальшого уточнення діаграми варіантів використання для прикладу даної системи продажу

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

Мал. 4.15. Фрагмент діаграми варіантів використання, який в неявному вигляді присутній на уточненій діаграмі з відношенням асоціації між окремими компонентами

Примітка

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

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

Побудова діаграми варіантів використання є найпершим етапом процесу об'єктно-орієнтованого аналізу і проектування, мета якого – представити сукупність вимог до поведінки проектованої системи. Специфікація вимог до проектованої системи у формі діаграми варіантів використання є самостійною моделлю, яка в мові UML отримала назву моделі варіантів використання і має своє спеціальне стандартне ім'я або стереотип "useCaseModel".

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]