АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Примітка. Концепція часу в явній формі враховується під час побудови діаграми діяльності, коли потрібно синхронізувати в часі процеси взаємодії декількох об'єктів

Читайте также:
  1. Примітка
  2. Примітка
  3. Примітка
  4. Примітка
  5. Примітка
  6. Примітка
  7. Примітка
  8. Примітка
  9. Примітка
  10. Примітка
  11. Примітка

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

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

Граф автомата не повинен містити ізольованих станів і переходів. Ця умова означає, що для кожного зі станів, окрім початкового, має бути визначений попередній стан. Кожний перехід повинен обов'язково сполучати два стани автомата. Допускається перехід зі стану в себе ж, такий перехід ще називають "петлею".

Автомат не повинен містити конфліктуючих переходів, тобто таких переходів з одного і того ж стану, коли об'єкт одночасно може перейти у два й більше подальших станів (окрім випадку паралельних підавтоматів). У мові UML виключення конфліктів можливе на основі введення так званих сторожових умов, які будуть розглянуті нижче.

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

20.2. Стан

Поняття стану (state) є фундаментальним не тільки в метамоделі мови UML, але й у прикладному системному аналізі. Раніше у розділі 3 коротко були розглянуті особливості представлення динамічних характеристик складних систем, традиційно використовуваних для моделювання поведінки. Вся концепція динамічної системи ґрунтується на понятті стану системи. Проте семантика мови UML має цілий ряд специфічних особливостей.

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

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

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

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

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

20.2.1. Ім'я стану

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

20.2.2. Список внутрішніх дій

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

<мітка-дії '/' вираз-дії>

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

Перелік міток дії має фіксовані значення в мові UML, які не можуть бути використані як імена подій. Ці значення наступні:

· entry – ця мітка вказує на дію, специфіковану наступним за нею виразом дії, яка виконується в момент входу в даний стан (вхідна дія);

· exit – ця мітка вказує на дію, специфіковану наступним за нею виразом дії, яка виконується в момент виходу з даного стану (вихідна дія);

· do – ця мітка специфікує виконуючу діяльність ("do activity"), яка виконується протягом всього часу, поки об'єкт знаходиться в даному стані, або до того часу, поки не закінчиться обчислення, специфіковане наступним за нею виразом дії. В останньому випадку під час завершення події генерується відповідний результат;

· include – ця мітка використовується для звернення до підавтомата, при цьому наступний за нею вираз дії містить ім'я цього підавтомата.

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

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

Рис. 20.3. Приклад стану з непорожньою секцією внутрішніх дій

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

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

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

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

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

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

20.3. Перехід

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

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


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.009 сек.)