Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
метод_лаб_укр.doc
Скачиваний:
90
Добавлен:
20.02.2016
Размер:
834.05 Кб
Скачать
  1. Лабораторна робота №4

  2. Розробка діаграм взаємодії Ціль роботи

Вивчити:

  • особливості розробки діаграм кооперації в середовищі IBM Rational Rose 2003.

  • додавання об'єкта на діаграму кооперації й редагування його властивостей.

  • додавання повідомлення й редагування його властивостей.

  • види повідомлень між об'єктами і їх графічні стереотипи.

  • реалізацію варіантів використання у формі діаграми кооперації.

  • приклад побудови діаграми кооперації для моделі банкомата.

  • особливості розробки діаграми послідовності в середовищі IBM Rational Rose 2003.

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

Хід роботи

Діаграма кооперації є різновидом діаграми взаємодії, і в контексті мови UML описує динамічний аспект взаємодії об'єктів при реалізації окремих варіантів використання. Активізувати робоче вікно діаграми кооперації в програмі IBM Rational Rose 2003 можна декількома способами:

  • Клацнути на кнопці із зображенням діаграми взаємодії на стандартній панелі інструментів і вибрати для побудови нову діаграму кооперації.

  • Виконати операцію головного меню: BrowseInteraction Diagram (БраузерДіаграма взаємодії) і вибрати для побудови нову діаграму кооперації.

  • Виконати операцію контекстного меню: NewCollaboration Diagram (НоваДіаграма кооперації) для логічного представлення або представлення варіантів використання в браузері проекту.

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

Таблиця 4.1.

Призначення кнопок спеціальної панелі інструментів діаграми кооперації

Графічне зображення

Спливаюча підказка

Призначення кнопки

Selection Tool

Перетворює зображення курсору у форму стрілки для наступного виділення елементів на діаграмі

Text Box

Додає на діаграму текстову область

Note

Додає на діаграму примітку

Anchor Note to Item

Додає на діаграму зв'язок примітки з відповідним графічним елементом діаграми

Object

Додає на діаграму об'єкт

Class Instance

Додає на діаграму екземпляр класу

Object Link

Додає на діаграму зв'язок

Link To Self

Додає на діаграму рефлексивний зв'язок

Link Message

Додає на зв'язок діаграми пряме повідомлення

Reverse Link Message

Додає на зв'язок діаграми зворотне повідомлення

Data Token

Додає на зв'язок діаграми елемент прямого потоку даних

Reverse Data Token

Додає на зв'язок діаграми елемент зворотного потоку даних

На спеціальній панелі інструментів за замовчуванням присутні практично всі кнопки з піктограмами елементів, які можуть бути використані для побудови діаграми. Як приклад розглядається процес побудови діаграми кооперації, яка являє собою реалізацію варіанта використання Зняття готівки по кредитній картці стосовно до розроблювального проекту системи керування банкоматом. У моделі дана діаграма кооперації відповідає цьому варіанту використання й може бути розміщена у представленні варіантів використання (Use Case View). Після активізації нової діаграми кооперації одним з описаних вище способів слід як ім'яданої діаграми задати: Зняття готівки по кредитній картці.

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

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

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

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

Група властивостей Persistence (Стійкість) призначена для специфікації стійкості об'єктів відповідного класу. При цьому властивість Persistent (Стійкий) означає, що інформація про об'єкти даного класу повинна бути збережена в системі деяким підходящим способом. Властивість Static (Статичний) означає, що відповідний об'єкт зберігається в пам'яті комп'ютера протягом усього часу роботи програмного додатка. Властивість Transient (Тимчасовий) відповідний об'єкт зберігається в пам'яті комп'ютера протягом короткого часу, необхідного тільки для виконання його операцій. Стосовно до розглянутої для об'єкта класу Обладнання читання картки моделі слід вибрати властивість Persistent.

При необхідності можна представити об'єкт у формі мультиоб’єкта. Для цього слід вибрати оцінку у властивості Multiple instances ( Кілька екземплярів). Однак для об'єкта класу Обладнання читання картки цю властивість слід залишити порожньою, оскільки даний об'єкт присутній у моделі в єдиному екземплярі.

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

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

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

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

Однак більш зручним представляється спосіб додавання повідомлень за допомогою діалогового вікна властивостей зв'язків. Для цього подвійним клацанням на лінії зв'язку викликається вікно її властивостей і розкривається вкладка Messages (повідомлення). Після цього слід виконати операцію контекстного меню Insert To (Вставити в напрямку), у результаті чого з'являється вкладений список із пропозицією вибрати одну з операцій цільового класу для специфікації імені повідомлення.

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

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

Група властивостей Synchronization (Синхронізація) призначена для визначення способу синхронізації переданого повідомлення. При зміні цієї властивості змінюється графічне зображення стрілки відповідного повідомлення. Характеристика окремих властивостей синхронізації повідомлень і графічне зображення відповідних стрілок повідомлень наводиться в наступній таблиці (табл. 7.2).

Таблиця 4.2.

Характеристика властивостей синхронізації повідомлень

Назва властивості

Графічне зображення стрілки

Призначення властивості

Simple (Простої)

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

Synchronous (Синхронне)

Після передачі даного повідомлення клієнт очікує відповіді від об'єкта-приймача про результат виконання відповідної до операції

Balking (З відмовою)

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

Timeout (З очікуванням)

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

Procedure Call (Виклик процедури)

Клієнт посилає дане повідомлення об'єкту-приймачу й, щоб продовжити свою роботу очікує, поки вся подальша вкладена послідовність повідомлень не буде оброблена приймачем

Asynchronous (Асинхронне)

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

Return (Повернення)

Дане повідомлення посилається клієнтові після закінчення виконання виклику процедури

Група властивостей Frequency (Частота) призначена для вказівки періодичного характеру передачі повідомлення. При зміні цієї властивості графічне зображення стрілки відповідного повідомлення не змінюється. Властивість Aperiodic (Аперіодичне) означає, що повідомлення посилаєтья клієнтом нерегулярно. При цьому повідомлення може бути відправлено один або кілька раз через різні проміжки часу. Ця властивість задається для повідомлення за замовчуванням. Властивість Periodic (Періодичне) означає, що повідомлення регулярне посилається клієнтом через певні проміжки часу.

Для завершення побудови діаграми кооперації розглянутого прикладу слід описаним вище способом додати об'єкти, що залишилися, зв'язки й повідомлення. Із цією метою слід виконати наступні дії:

  1. Додати об'єкти класів з іменами: Контролер Банкомата, Транзакція Банкомата, Клавіатура Банкомата, Екран Банкомата, Принтер Банкомата, Обладнання видачі готівки й IИнтерфейс Банку.

  2. Додати зв'язки, що з'єднують об'єкти класів з іменами: Контролер Банкомата з Обладнанням читання картки, Контролер Банкомата із Транзакцією Банкомата, Контролер Банкомата із Клавіатурою Банкомата, Контролер Банкомата з Екраном Банкомата, Контролер Банкомата із Принтером Банкомата, Контролер Банкомата з Обладнанням видачі готівки й Контролер Банкомата з IИнтерфейсом Банку.

  3. Додати повідомлення: перевірити ідентифікатор картки (Integer), спрямоване від об'єкта класу Контролер Банкомата до об'єкта класу IИнтерфейс Банку.

  4. Додати повідомлення: ввести Пін-код(), спрямоване від об'єкта класу-актора Клієнт Банкомата до об'єкта класу Клавіатура Банкомата.

  5. Додати повідомлення: прочитати Пін-код(), спрямоване від об'єкта класу Контролер Банкомата до об'єкта класу Обладнання читання картки.

  6. Додати повідомлення: створити нову транзакцію(), спрямоване від об'єкта класу Контролер Банкомата до об'єкта класу Транзакція Банкомата.

  7. Додати повідомлення: перевірити правильність Пін-коду(), спрямоване від об'єкта класу Контролер Банкомата до об'єкта класу Транзакція Банкомата.

  8. Додати повідомлення: показати меню опцій(), спрямоване від об'єкта класу Контролер Банкомата до об'єкта класу Екран Банкомата.

  9. Додати повідомлення: ввести тип транзакції(), спрямоване від об'єкта класу-актора Клієнт Банкомата до об'єкта класу Клавіатура Банкомата.

  10. Додати повідомлення: показати меню зняття суми(), спрямоване від об'єкта класу Контролер Банкомата до об'єкта класу Екран Банкомата.

  11. Додати повідомлення: ввести суму зняття готівки(), спрямоване від об'єкта класу-актора Клієнт Банкомата до об'єкта класу Клавіатура Банкомата.

  12. Послідовно додати 3 повідомлення: відкрити рахунок клієнта (Integer), перевірити баланс клієнта (Integer, Currency) і зменшити рахунок клієнта(Integer, Currency), спрямовані від об'єкта класу Контролер Банкомата до об'єкта класу IИнтерфейс Банку.

  13. Додати повідомлення: роздрукувати чек(), спрямоване від об'єкта класу Контролер Банкомата до об'єкта класу Принтер Банкомата.

  14. Додати повідомлення: повернути кредитну картку(), спрямоване від об'єкта класу Контролер Банкомата до об'єкта класу Обладнання читання картки.

  15. Додати повідомлення: видати готівку(), спрямоване від об'єкта класу Контролер Банкомата до об'єкта класу Обладнання видачі готівки.

  16. Додати повідомлення: завершити транзакцію(), спрямоване від об'єкта класу Контролер Банкомата до об'єкта класу Транзакція Банкомата.

Діаграма кооперації, що описує реалізацію типового ходу подій варіанта використання Зняття готівки по кредитній картці для проекту системи керування банкоматом, показана на мал. 4.1.

Рис. 4.1.  Остаточний варіант діаграми кооперації, що описує типовий хід подій варіанта використання Зняття готівки по кредитній картці.

Діаграма послідовності є іншою формою візуалізації взаємодії в моделі й, як і діаграма кооперації, оперує об'єктами й повідомленнями. Особливість роботи в середовищі IBM Rational Rose 2003 полягає в тому, що цей вид канонічної діаграми може бути створений автоматично після побудови діаграми кооперації й натискання клавіші <F5>. За допомогою цієї ж клавіші здійснюється перемикання між діаграмами послідовності й кооперації в моделі.

Фрагмент діаграми послідовності, що описує реалізацію типового ходу подій варіанта використання Зняття готівки по кредитній картці для проекту системи керування банкоматом, показаний на мал. 4.2.

Рис. 4.2.  Фрагмент остаточного виду діаграми послідовності, що описує типовий хід подій варіанта використання Зняття готівки по кредитній картці.