Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichni_vkazivki_3_chastina.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
612.86 Кб
Скачать

4.3.7.4 Специфікації переходу

Переходи є важливим елементом діаграми станів і також мають деяку множину параметрів, які налаштовуються через діалогове вікно специфікацій, яке відкривається за командою контекстного меню переходу «Open Specification…». Вікно вміщує дві вкладки, розглянемо їх докладно.

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

Eventподія, під час якої активується перехід;

Argumentsнеобов’язкові параметри активації;

Stereotypeзадає стереотип для переходу;

Documentationпояснювальний супровідний текст до переходу, що призначений для читачів моделі.

Вкладка Detail (додаткові налаштування). Вміщує більш детальні налаштування для переходу. Має наступні поля:

Guard Conditionсторожова умова;

Actionдіяльність, пов’язана з переходом;

Send Eventідентифікатор події, що генерується при активації переходу;

Send Argumentsаргументи, що передаються під час генерації події;

Send Target цільовий елемент при генерації події.

Fromзадає початковий стан переходу;

Toзадає кінцевий стан переходу.

4.2.8 Приклад виконання

Розглянемо процес створення діаграми станів на прикладі діаграми станів класу Clothes (предмет одягу) моделі Інтернет-магазину, розробленого в лабораторній роботі №1.

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

1. Розпочнемо зі створення діаграми станів. У вікні браузера моделі клацнемо правою кнопкою миші по категорії Logical View, та обираємо пункт New > Statechart Diagram. В підкатегорії State / Activity Model буде створено нову діаграму станів. Одразу ж змінимо назву за замовчанням на більш змістовну, наприклад, «Стани Одягу». Це можна зробити за командою “Rename…” контекстного меню у вікні браузера моделі, що розкривається над елементом, що подає відповідну діаграму.

2. Активуємо створену діаграму, двічі клацнувши на ній у вікні браузера, після чого розмістимо на ній станів. На основі проекту діаграми виділимо чотири стани «Доставлено до представництва», «Розміщено на складі», «Надіслано поштою», «Отримано покупцем». Розмістимо чотири стани (за допомогою інструменту State панелі інструментів) на діаграмі, задамо вказані вище імена та задамо комфортний для відображення розмір символів станів. Можливий варіант розміщення зображено на рис. 4.14.

Рисунок 4.14 – Стани предмету одягу

3. Додамо початковий та кінцеві стани. Початковий стан буде один і не буде ніяк називатися. Кінцевих станів буде два. Один із назвою «Утилізовано», інший – «Передано у власність покупця». Для розміщення початкового та кінцевих станів скористаймося інструментами Begin State та End State, а для задання назв станів параметром Name на вкладці General діалогового вікна специфікацій станів. Приблизний результат показано на рис. 4.15.

4. Додамо поточну діяльність до стану «Доставлено до представництва». Коли предмет одягу опиняється в представництві, необхідно перевірити, чи є замовлення на таку модель, і якщо воно є, відправить покупцеві, інакше – відправити на склад. Для вираження такого виду діяльності скористаємося поняттям поточної діяльності і для стану «Доставлено до представництва» запишемо «Перевірити наявність замовлень». Для цього відкриємо специфікацію цього стану, перейдемо на вкладку Actions, виберемо в контекстному меню пункт Insert та перейдемо до специфікації тільки-но доданої діяльності. Параметр When встановимо в значення Do, а в Name запишемо «Перевірити наявність замовлень». Закриємо обидва діалогових вікна, натиснувши ОК. Після цього в стані «Доставлено до представництва» повинна відобразитися відмітка про поточну діяльність з відповідним текстом.

Рисунок 4.15 – Діаграма станів з початковим та кінцевими станами

5. Аналогічним чином додамо поточну діяльність до стану «Надіслано поштою». В цьому випадку поточну діяльність визначимо, як «Доправити до адресата».

6. Також додамо поточну активність до стану «Отримано покупцем» з описом «Прийняти рішення про купівлю».

7. В стані «Розміщено на складі» задамо активність на вході у стан та активність на виході зі стану. Для цього також створимо на вкладці Actions специфікації стану дві діяльності. Перейдемо до специфікації першої. За замовчанням діяльності створюються, як діяльності при вході, а тому параметр When залишаємо в значенні On Entry, а в Name записуємо «Зареєструвати в базі даних складу». Для другої діяльності параметр When встановимо в On Exit, а Name в значення «Видалити з бази даних складу». Результати побудов можна побачити на рис. 4.16.

Рисунок 4.16 – Діаграма станів з діяльностями всередині станів

8. Поєднаємо стани між собою та задамо події та умови переходів. Кількість та типи переходів зображено на рис. 4.17. Зауважте, що деякі з переходів помічені назвою події, а деякі лише сторожовою умовою. Це пов’язано з використанням переходів за замовчанням: коли поточна діяльність у певному стані завершиться, будуть перевірені сторожові умови при всіх переходах за замовчанням та обрано той, для якого виконається умова. В інших випадках подія може виникнути і активувати перехід в будь-який момент. Для задання позначення події, що активує перехід скористайтеся полем Event на вкладці General специфікації переходу, а для задання сторожової умови – полем Guard Condition на вкладці Detail.

Рисунок 4.17 – Діаграма станів для об’єкту класу Clothes