Діаграми станів (statechart diagram)
Головне призначення цієї діаграми - описати можливі послідовності станів та переходів, які в сукупності характеризують поведінку елемента моделі протягом його життєвого циклу. Діаграми станів використовуються для моделювання динамічних аспектів системи. Здебільшого під цим мається на увазі моделювання поведінки реактивних об'єктів. Реактивним називається об'єкт, поведінка якого найкраще характеризується його реакцією на події, що відбулися поза його власним контекстом. Реактивний об'єкт має чітко виражений життєвий цикл, коли поточна поведінка обумовлена минулим.

Рис 3.48. Приклад діаграми діяльності
Якщо зовнішні дії, що змінюють стан системи, ініціюються в довільні випадкові моменти часу, то говорять про асинхронну поведінку моделі.
Уявіть собі моделювання поведінки вбудованої системи безпеки вдома. Вона працює безперервно, реагуючи на зовнішні події, скажімо, на розбите вікно. Порядок подій змінює поведінку системи. Наприклад, виявлення розбитого вікна викликає спрацьовування сигналізації, тільки якщо система була попередньо активізована. Поведінка такої системи найкраще описується шляхом моделювання її стійких станів (наприклад, Очікування, Активна, Перевірка і т. д.), подій, що ініціюють зміну стану, та дій, що виконуються за кожної такої зміни.
Автомат
Діаграма станів сутнісно є графом спеціального виду, який представляє певний автомат. Вершинами цього графа є стани, що зображуються відповідними графічними символами. Дуги графа служать для позначення переходів зі стану до стану. Діаграми станів можуть бути вкладені одна в одну, утворюючивкладені діаграми детальнішого представлення окремих елементів моделі.
Найпростіший приклад автомата з двома станами демонструє ситуація зі справністю комп'ютера. Тут розглядаються два найзагальніші стани: «справний» і «несправний» і два переходи: «вихід з ладу» та «ремонт». Графічно ця інформація може бути подана у вигляді зображеної діаграми станів комп'ютера (рис. 3.49).
Основними поняттями, що описують автомат, є стан та перехід. Передбачається, що система знаходиться в будь-якому стані протягом деякого часу, тоді як перехід об'єкта зі стану до стану відбувається миттєво.

Мал. 3.49. Приклад діаграми станів
Стан
Стан (State) — це ситуація в житті об'єкта, протягом якої він задовольняє певну умову, здійснює певну діяльність або чекає на якусь події.
Стан на діаграмі зображується прямокутником із заокругленими вершинами (рис. 3.50), який може бути розділений горизонтальною лінією на дві секції.

Мал. 3.50. Графічне зображення станів на діаграмі станів
У прямокутнику може бути «Ім'я стану» (перша секція) і «Список внутрішніх дій у цьому стані» (друга секція). При цьому під дією в мові UML розуміють деяку атомарну операцію, виконання якої призводить до зміни стану або повернення деякого значення.
Ім'я стану
Ім'я стану - це рядок тексту, що починається з великої літери, яка розкриває змістовний зміст цього стану. Ім'я є необов'язковим елементом. Рекомендується як ім'я використовувати дієслова в даний час (дзвонить, друкує,очікує) або відповідні причастя (зайнятий, вільний, передано, отримано).
Список внутрішніх дій
Ця секція містить перелік внутрішніх дій або діяльностей, які виконуються в процесі знаходження елемента, що моделюється в даному стані. Кожна з дій записується у вигляді окремого рядка та має наступний формат:
Мітка дії вказує на обставини або умови, за яких виконуватиметься діяльність, визначена виразом дії. При цьому вираз дії може використовувати будь-які атрибути та зв'язки, які належать області імен або контексту об'єкта, що моделюється. Якщо список виразів дії порожній, то роздільник як похилої риси '/' може вказуватися.
На рис. 3.51 показаний приклад стану зчитування запису після відкриття файлу, що містить кілька записів.

Мал. 3.51. Приклад стану з непустою секцією внутрішніх дій
Початковий та кінцевий стан описаний у розділі опису діаграми діяльності (див. рис. 3.45).
Перехід
Простий перехід (simple transition) є відношенням між двома послідовними станами, яке вказує на факт зміни одного стану іншим. Перебування об'єкта, що моделюється, в першому стані може супроводжуватися виконанням деяких дій, а перехід у другий стан буде можливий після завершення цих дій, а також після задоволення деяких додаткових умов. І тут кажуть, що перехід спрацьовує. До спрацьовування переходу об'єкт перебуває у попередньому стані, званому вихідним станом, чи джерелі (не плутати з початковим станом — це різні поняття), а після його спрацьовування об'єкт перебуває у наступному від ньогостан (цільовий стан).
На діаграмі станів перехід зображується суцільною лінією зі стрілкою, яка спрямована в цільовий стан (наприклад, «вихід з ладу» на рис. 3.49). Поруч із лінією може бути рядок тексту, описує подія-тригер, що викликає перехід (у разі перехід буде тригерным), і сторожове умова, яким здійснюється перехід. У прикладі на рис. 3.49 перехід спрацює у разі події — «вихід з ладу».
Подія
Подія (Event) - це специфікація істотного факту, що відбувається у часі та просторі. У тих автоматів подія — це стимул, здатний викликати спрацювання переходу.
Вартова умова
Сторожова умова (guard condition), якщо вона є, завжди записується в прямих дужках після події-тригера і є деяким булевським виразом (вираз, результатом якого є «істина» або «брехня»).

Мал. 3.52. Діаграма станів для поштової моделювання
Висновок