Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив3 / Kursach(33) / 05.ТСПП (курсачь).docx
Скачиваний:
32
Добавлен:
07.08.2013
Размер:
311.65 Кб
Скачать

2.3. Особливості діаграм станів

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

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

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

Між станами існують переходи. Отримавши сигнал від пульта управління, телевізор переключає з активного стану каналу 7 в активний стан каналу 2.

На рис. 3 показана діаграма стану для програми ELEV. На ній відображені різні стани об'єкта класу Elevator, які він може приймати під час роботи програми.

Стани

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

Переходи

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

Зауважимо, що три переходи є переходами самі в себе, вони повертає нас у той же стан.

Від стану до стану

Кожного разу, потрапляючи в стан Завантаження, об'єкт класу Elevator виконує дію, яка укладаєся у видаленні значення «Звідки». Потрапляючи в стан Вивантаження, об'єкт класу Elevator виконує дія, що полягає у видаленні значення «Куди».

На рис. 4. Зображена діаграма классів програми ELEV

Рис. 4. Діаграма классів програми ELEV