Міністерство освіти і науки України
ВСП – Технічний коледж НУ «Львівська політехніка»
Звіт
Лабораторна робота №4
«Побудова діаграм переходів станів—STD
(State Transition Diagrams)»
підготувавстудент групи 45КІЛогін Юрій
Львів – 2013
Мета лабораторної роботи: полягає у практичному засвоєнні основних принципів побудови діаграм переходів станів — STD (State Transition Diagrams).
Теоретичні відомості
Специфікації управління призначені для моделювання та документування аспектів систем, що залежать від часу або реакції на подію. Вони дозволяють здійснювати декомпозицію керуючих процесів і описують відношення між вхідними і вихідними керуючими потоками на керуючому процесі-предку. З цією метою звичайно використовуються діаграми переходів станів (State Tradition Diagrams — STD).
За допомогою STD можна моделювати майбутнє функціонування системи на ґрунті її попереднього та поточного функціонування. Система, що моделюється, в будь-який заданий момент часу знаходиться точно в одному з скінченої множини станів. З перебігом часу вона може змінити свій стан, при цьому переходи між станами повинні бути точно визначені.
STD складається з наступних об'єктів:
Стан може розглядатися як умова тривалості для системи. Знаходячись в певному стані, ми маємо достатньо інформації про колишню історію системи, щоб визначити черговий стан в залежності від поточних вхідних подій. Ім'я стану повинно відбивати реальну ситуацію, в якій знаходиться система, наприклад, НАГРІВАННЯ, ОХОЛОДЖЕННЯ та ін.
Початковий стан — вузол STD, що є стартовою точкою для початкового системного переходу. STD має лише один початковий стан, відповідний до стану системи після її інсталяції, але перед початком реальної обробки, а також будь-яке (скінчене) число завершальних станів.
Перехід визначає переміщення системи, що моделюється, з одного стану в інший. При цьому ім'я переходу ідентифікує подію, що є причиною переходу і керована ним. Ця подія звичайно складається з керуючого потоку (сигналу), що виникає як в зовнішньому світі, так і всередині системи що моделюється, при виконанні деякої умови (наприклад, ЛІЧИЛЬНИК=10 або КНОПКА НАТИСНУТА). Слід відзначити, що не всі події викликають переходи з окремих станів в інші. З іншого боку, одна і та ж подія не завжди викликає перехід в той же самий стан.
Таким чином, умова являє собою подію (або події), що викликають перехід і ідентифікується ім'ям переходу. Якщо в умові бере участь вхідний керуючий потік керуючого процесу-предка, то ім'я потоку повинно бути в лапках, наприклад, "ПАРОЛЬ"=100, де ПАРОЛЬ - вхідний потік.
Окрім умови, з переходом може пов'язуватися дія або ряд дій, що виконуються, коли перехід має місце. Дія це операція, що може мати місце при виконанні переходу. Якщо дія необхідна для вибору вихідного керуючого потоку, то ім'я цього потоку повинно бути взятим в лапки, наприклад:
"ВВЕДЕНА KAPTA"=TRUE, де ВВЕДЕНА КАРТА — вихідний потік.
Крім того, для специфікації А-, Т- , E/D потоків (типи керуючих потоків) ім'я або процесу , що перемикається або запускається, також повинно бути в лапках, наприклад:
А: "ОТРИМАТИ ПАРОЛЬ" — активувати процес ОТРИМАТИ ПАРОЛЬ.
Фактично умова є деяка зовнішня або внутрішня подія, яку система здатна виявити і на яку вона повинна відреагувати певним чином, змінюючи свій стан. При зміні стану система звичайно виконує одну або більше дій (формує висновок, видає повідомлення на термінал, виконує обчислення). Таким чином, дія являє собою відгук в зовнішнє оточення, або обчислення, результати якого запам'ятовуються в системі (звичайно в сховищах даних на DFD), для того, щоб забезпечити реакцію на деякі події, що плануються в майбутньому.
На STD стани представляються вузлами, а переходи — дугами (мал. 1). Умови (по-іншому називаються стимулюючими подіями) ідентифікуються ім'ям переходу і викликають його виконання. Дії або відгуки на події прив'язуються до переходів і записуються під відповідною умовою. Початковий стан на діаграмі повинен мати вхідний перехід, що зображається потоком зі стартового вузла (стартовий вузол зображений на мал. 1 у вигляді невеликого квадрату, що прив'язаний до вхідного стану).
Мал.2. STD для прикладу банкомату
Мал.1. Символи STD.
Діаграма переходів станів для прикладу банкомату наведена на мал. 2. Вона містить два стани - ОЧІКУВАННЯ та ОПРАЦЮВАННЯ. Перехід зі стану ОЧІКУВАННЯ в стан ОПРАЦЮВАННЯ здійснюється за умови введення кредитної карти до банкомату (ВВЕДЕНА КРЕДИТНА КАРТА). При цьому виконується дія з запуску процесу (ОТРИМАТИ ПАРОЛЬ). Відзначимо, що для запуску використовується А-потік , який забезпечує неперервність процесу, тобто можливість повторного введення паролю. Перехід зі стану ОПРАЦЮВАННЯ до стану ОЧІКУВАННЯ здійснюється двома різноманітними способами. За умови трикратного введення невірного паролю кредитна карта видаляється з системи, при цьому вона переходить в режим очікування чергового клієнта. За умови КОРЕКТНИЙ ПАРОЛЬ виконуються дії з забезпечення необхідного сервісу і вилученню кредитної карти, а після цього перехід здійснюється перехід до режиму очікування чергового клієнта.
При побудові STD рекомендується виконувати наступні правила:
будувати STD на якомога більш високому рівні деталізації DFD;
будувати якомога більш прості STD;
по можливості деталізувати STD;
використати ті ж принципи іменування станів, подій та дій, що й при іменуванні процесів та потоків.
Застосовуються два способи побудови STD. Перший спосіб полягає в ідентифікації всіх можливих станів та подальшому дослідженні всіх сенсорних зв'язків (переходів) між ними. За іншим способом спочатку будується початковий стан, після цього наступні за ним і т. ін. Результатом цих способів є попередня STD, для якої після цього здійснюється контроль змістовності, що полягає в відповідях на наступні запитання:
Чи всі стани визначені і мають унікальне ім'я?
Чи всі стани досяжні?
Чи всі стани мають вихід?
Чи реагує система (для кожного стану) відповідним чином за всіх можливих умов (особливо на аномальні)?
Чи всі вхідні (вихідні) потоки керуючого процесу відображені в умовах (діях) на STD?
В ситуації, коли число станів та/або переходів велике, для проектування специфікацій управління можуть використовуватися таблиці та матриці переходів станів. Обидві ці нотації дозволяють зафіксувати ту ж саму інформацію, що й діаграми переходів станів, але в іншому форматі. В якості прикладу таблиці переходів станів наведена таблиця, що відповідає розглянутій діаграмі переходів станів (мал. 2). Перша колонка таблиці містить список всіх станів системи, що проектується, в другій колонці для кожного стану наведені всі умови, що викликають переходи до інших станів, а в третій колонці наведені дії, що реалізуються при цих переходах. Четверта колонка містить відповідні імена станів, в які здійснюється перехід з станів, що розглядаються, при виконанні певної умови.
Біжучий стан
Умова
Дія
Наступний стан
Початковий стан
Активується при введеній кредитній картці
ОЧІКУВАННЯ
ОЧІКУВАННЯ
Введена кредитна картка
Отримати пароль
ОПРАЦЮВАННЯ
ОПРАЦЮВАННЯ
Некоректний пароль
Видалити кредитну картку
ОЧІКУВАННЯ
ОПРАЦЮВАННЯ
Коректний пароль
Обслужити, видалити кредитну картку
ОЧІКУВАННЯ
Табл. 1. Матриця переходів станів.
Матриця переходів станів містить по вертикалі перелік станів системи, а по горизонталі — список умов. Кожен її елемент містить список дій, а також ім'я стану, в який здійснюється перехід. Використовується і інший варіант даної нотації: по вертикалі вказуються стани, з яких здійснюється перехід, а по горизонталі — стани, в які здійснюється перехід. При цьому кожен елемент матриці містить відповідні умови та дії, що забезпечують перехід з "вертикального" стану в "горизонтальний".
Перелік інформаційних систем, які будуть використані для побудови діаграм побудови переходів станів - STD.
Проект моделі організації інформаційної системи обслуговування пайовиків.
Функціональна модель діяльності з цінними паперами в комерційному банку.
Побудова моделі фірми, що займається реалізацією стоматологічного обладнання.
Побудова моделі організації, що займається організацією рекламної агенції.
Створення моделі функціонування туристичної фірми.
Обслуговування пацієнтів в лікарні.
Автотранспортне підприємство.
Обслуговування читачів в бібліотеці.
Організація роботи АТС.
Організація роботи з клієнтами в банку.
Диспетчеризація автотранспорту.
Організація міжнародних перевезень.