Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектування інформаційних систем.doc
Скачиваний:
94
Добавлен:
21.09.2019
Размер:
28.77 Mб
Скачать

20.2.3. Початковий стан

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

Рис. 20.4. Графічне зображення початкового і кінцевого станів на діаграмі станів

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

20.2.4. Кінцевий стан

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

20.3. Перехід

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

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

Примітка

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

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

<сигнатура події>'['<сторожова умова>']' <вираз дії>.

При цьому сигнатура події описує деяку подію з необхідними аргументами:

<ім'я події>'('<список параметрів, розділених комами>')'.

20.3.1. Подія

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

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

У мові UML події грають роль стимулів, які ініціюють переходи з одних станів в інших. Як події можна розглядати сигнали, виклики, закінчення фіксованих проміжків часу або моменти закінчення виконання певних дій. Ім'я події ідентифікує кожний окремий перехід на діаграмі станів і може містити рядок тексту, що починається з рядкової букви. У цьому випадку прийнято вважати перехід за тригерний, тобто таким, який специфікує подію-тригер. Наприклад, переходи на рис. 20.1 є тригерними, оскільки з кожним з них пов'язана деяка подія-тригер, що відбувається асинхронно у момент виходу з ладу технічного пристрою або у момент закінчення його ремонту.

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