Similar presentations:
Диаграмма состояний. Применение языка UML при разработке информационных систем
1. Диаграмма состояний
Delivering Excellence in Software EngineeringДиаграмма состояний
Общие сведения
® 2008. EPAM Systems. All rights
reserved.
2. Применение языка UML при разработке информационных систем
Курс включает в себя следующие презентации:• UML.
Введение
• Диаграмма вариантов использования
• Диаграмма деятельности
• Диаграмма последовательности
• Диаграмма классов
• Диаграмма состояний
2
® 2008. EPAM Systems. All rights reserved.
3. Цель презентации
Дать общие представления о диаграммах состояний3
® 2008. EPAM Systems. All rights reserved.
4.
1Диаграмма
Диаграмма состояний
состояний
2
Элементы
Элементы диаграммы
диаграммы состояний
состояний
3
Примеры
Примеры
4
Комплексный
Комплексный пример
пример разработки
разработки моделей
моделей для
для процесса
процесса
® 2008. EPAM Systems. All rights reserved.
4
5.
1Диаграмма
Диаграмма состояний
состояний
2
Элементы
Элементы диаграммы
диаграммы состояний
состояний
3
Примеры
Примеры
4
Комплексный
Комплексный пример
пример разработки
разработки моделей
моделей для
для процесса
процесса
® 2008. EPAM Systems. All rights reserved.
5
6. Диаграмма состояний
Для моделирования динамических аспектовдиаграммы взаимодействий и автоматы.
системы
используются
Диаграммы взаимодействий моделируют поведение сообщества
совместно работающих объектов.
Автоматы моделируют поведение отдельного объекта.
Автомат может показывать:
• передачу потока управления от одного состояния объекта к другому
(диаграмма состояний)
• передачу потока управления
(диаграмма деятельности)
от
одной
деятельности
к
другой
Диаграмма состояний (state machine diagram) — это диаграмма,
которая показывает автомат, фокусируя внимание на его
потенциальных состояниях и переходах между ними
6
® 2008. EPAM Systems. All rights reserved.
7. Диаграмма состояний
Назначение диаграммы состоянийДиаграммы состояний служат для моделирования поведения
реактивных объектов
Диаграммы состояний могут существовать автономно, и могут
использоваться для моделирования поведения классов, прецедентов и
системы в целом
7
® 2008. EPAM Systems. All rights reserved.
8. Диаграмма состояний
Диаграмма состояний может содержать• Состояния
• Переходы
• Примечания
8
® 2008. EPAM Systems. All rights reserved.
9.
1Диаграмма
Диаграмма состояний
состояний
2
Элементы
Элементы диаграммы
диаграммы состояний
состояний
3
Примеры
Примеры
4
Комплексный
Комплексный пример
пример разработки
разработки моделей
моделей для
для процесса
процесса
® 2008. EPAM Systems. All rights reserved.
9
10. Элементы диаграммы состояний
состояниидействий в данном
Список внутренних
Состояние
Состояние объекта (state) — это ситуация в его жизни, на протяжении которой
он удовлетворяет некоторому условию, осуществляет определенную деятельность
или ожидает какого-то события.
Состояние определяют следующие элементы:
stm st 01
Имя состояния
Имя состояния
имя - текстовая строка, которая отличает одно
состояние от всех остальных. Имя состояния должно
быть уникальным внутри объемлющего пакета
внутренние действия - действия, выполняемые при
входе в состояние и выходе из него, а также
выполняемые без выхода из состояния
подсостояния - внутри состояния могут существовать подсостояния, как непересекающиеся
(активизируемые последовательно), так и параллельные (активные одновременно)
отложенные события - список событий, которые не обработаны в этом состоянии, а
отложены и поставлены в очередь для обработки объектом в некотором другом состоянии
10
® 2008. EPAM Systems. All rights reserved.
11. Элементы диаграммы состояний
Внутреннее действиеВнутреннее действие — текстовая строка формата
<метка действия / выражение действия>
stm st 02
Ввод пароля
+
+
+
+
entry / установить с имволы невидимыми
exit / установить символы видимыми
do / получить символ
do / показать помощь
Перечень меток действия имеет фиксированные значения,
которые не могут быть использованы в качестве имен
событий
entry — указывает на действие, которое выполняется в
момент входа в данное состояние
Chas e
+
+
+
+
+
entry / setMode(onTrack)
exit / setMode(offTrack)
newTarget / trackerAcquire
do / followTarget
selfTest / defer
exit — указывает на действие, которое выполняется в
момент выхода из данного состояния
do — специфицирует выполняющуюся деятельность, которая
выполняется в течение всего времени, пока объект находится
в данном состоянии, или до тех пор, пока не закончится
вычисление, специфицированное следующим за ней
выражением действия
include — используется для обращения к подавтомату, при
этом следующее за ней выражение действия содержит имя
этого подавтомата
11
® 2008. EPAM Systems. All rights reserved.
12. Элементы диаграммы состояний
ПереходПереход (transition) —
это отношение между двумя состояниями,
показывающее, что объект, находящийся в исходном состоянии, должен
выполнить определенное действие и перейти в целевое состояние, как только
произойдет указанное событие и будут выполнены определенные сторожевые
условия
stm st 03
Исх одное состояние
Исх одное состояние
переход
переход [сторожевое условие] /дейс твие
Ц елевое состояние
Ц елевое состояние
Каждый переход может помечен строкой текста, которая имеет следующий общий формат:
<сигнатура события>[<сторожевое условие>] <выражение действия>
Сигнатура события описывает некоторое событие с необходимыми аргументами:
<имя события>(<список параметров, разделенных запятыми>)
12
® 2008. EPAM Systems. All rights reserved.
13. Элементы диаграммы состояний
Событие-триггер, сторожевое условие и действиеstm st 04
Активизация
почтовой программы
установить соединение
/тел.соединение установлено
закончить загрузку почты
[почтовый ящик на сервере пуст]
/разорвать с оединение
Загру зка почты с
сервера
Событие-триггер (trigger event) —
событие, при получении которого объектом,
находящимся в исходном состоянии, может
сработать переход
Сторожевое условие (guard condition) — логическое выражение, которое
вычисляется при возникновении события-триггера. Если значение истинно, то
переходу разрешено сработать, если ложно - переход не срабатывает
Действие (action) — это атомарное вычисление, которое выполняется в том
случае, когда переход срабатывает, и приводит к изменению состояния объекта
или возврату значения
13
® 2008. EPAM Systems. All rights reserved.
14. Элементы диаграммы состояний
ПсевдосостоянияПсевдосостояние объекта (pseudo-state) — абстракция для различных типов
вершин, используемая в диаграмме состояний
Псевдосостояния не содержат никаких внутренних действий
• Начальное состояние (initial)
stm st 02
Initial
Final
EntryPoint
ExitPoint
• Конечное состояние (final)
Choice
• Точка входа (entry point)
History
Junction
Terminate
• Точка выхода (exit point)
• Выбор (choice)
• Историческое состояние (history)
• Соединение (junction)
• Прекращение (terminate)
• Ветвление (fork)
14
® 2008. EPAM Systems. All rights reserved.
15. Элементы диаграммы состояний
Составные состояния и подсостоянияПростое состояние — состояние, не имеющее внутренней структуры
Составное состояние (composite state) — сложное состояние, которое состоит
из других вложенных в него состояний
Подсостояние (substate) — состояние, являющееся частью другого состояния
stm st 05
Составное состояние
Подсос тояние 1
Подсос тояние 2
15
® 2008. EPAM Systems. All rights reserved.
16. Элементы диаграммы состояний
Последовательные подсостоянияПоследовательные подсостояния (sequental substates) используются для
моделирования такого поведения объекта, во время которого в каждый момент
времени объект может находиться в одном и только одном подсостояний
stm st 06
Дозвон до абонента
Поднять телефонну ю тру бку
+
+
цифра
entry / генерировать тон-сигнал
exit / прекратить тон-сигнал
Набра ть телефонный
номе р
+
[ номер верный]
entry / добавить цифру(n)
цифра
Начальное и конечное состояния объекта должны быть единственными в каждом
составном состоянии
16
® 2008. EPAM Systems. All rights reserved.
17. Элементы диаграммы состояний
Параллельные подсостоянияПараллельные
подсостояния
(concurrent
substates)
позволяют
специфицировать два или более автомата, которые выполняются параллельно в
контексте объемлющего объекта
stm st 07
Обслу живание
Ожидание
обслужить
[Тестирование]
Проверка у стройства
Самодиагностика
Ожидание
Команда
[Прием команд]
• Объемлющий объект может одновременно находиться в каждом из параллельных
подсостояний
• Если какой-либо из подавтоматов пришел в свое конечное состояние раньше
других, то он должен ожидать, пока другие подавтоматы не придут в свои
конечные состояния
17
® 2008. EPAM Systems. All rights reserved.
18. Элементы диаграммы состояний
СоветыПри моделировании состояний соблюдайте следующие правила:
• Дайте диаграмме имя, соответствующее назначению
• Сначала смоделируйте устойчивые состояния объекта, затем переходите к
допустимым переходам состояний
• Ветвления и параллельность моделируйте на отдельной диаграмме
• Располагайте элементы так, чтобы число пересечений было минимальным
18
® 2008. EPAM Systems. All rights reserved.
19.
1Диаграмма
Диаграмма состояний
состояний
2
Элементы
Элементы диаграммы
диаграммы состояний
состояний
3
Примеры
Примеры
4
Комплексный
Комплексный пример
пример разработки
разработки моделей
моделей для
для процесса
процесса
® 2008. EPAM Systems. All rights reserved.
19
20. Примеры
stm IssueOpene d
Assigned
Cancelle d
20
® 2008. EPAM Systems. All rights reserved.
Resolv ed
Reopene d
Close d
21. Примеры
stm Поведение банкоматаОжидание ка рточки
Initial
транзакция завершена
Final
карточка вставлена
Ожидание ввода
ПИН-кода
Завершение
транзакции
от мена
транзакции
ПИН-код введен
[ПИН-код неверный]
карточка возвращена
Проверка ПИН-кода
три неудачи
[конфискация
карточки]
[ПИН-код верный]
отмена транзакц ии
Ожидание выбора
операции
выбор с правки
Возврат ка рточки
печать закончена
Обработка запроса
на получение справки
справка
сформирована
Печ ать
наличные выд аны
[выбрана печать чека]
наличные выд аны
[выбрана печать чека]
выбор суммы
[сумма введена]
Обработка запроса
на снятие наличны х
[кредит не
првышен ]
Выдача наличны х
[кредит превышен] /сообщение
21
® 2008. EPAM Systems. All rights reserved.
22.
1Диаграмма
Диаграмма состояний
состояний
2
Элементы
Элементы диаграммы
диаграммы состояний
состояний
3
Примеры
Примеры
4
Комплексный
Комплексный пример
пример разработки
разработки моделей
моделей для
для процесса
процесса
® 2008. EPAM Systems. All rights reserved.
22
23. Пример разработки моделей для конкретного процесса
23® 2008. EPAM Systems. All rights reserved.
24. Пример разработки моделей для конкретного процесса
Диаграмма прецедентов (вариантов использования)uc Use Case Model
Complete
application
Quote policy price
and conditions
Agent
Custome r
Create polic y
Manager
Present polic y
24
® 2008. EPAM Systems. All rights reserved.
25. Пример разработки моделей для конкретного процесса
Диаграмма деятельностиact Activ ity Diagram
Agent
Customer
Manager
[customer inquiry]
Rev iew quote
Interv iew
customer
Complete
application
quote [v alid]
[application received]
Dev elope quote
[quote rejected]
[quote accept ed]
Record final
quote
Draw up policy
documents
Despatch policy
documents
25
® 2008. EPAM Systems. All rights reserved.
26. Пример разработки моделей для конкретного процесса
Диаграмма последовательностиsd Use Case Model
Current :Policy
update screen
:Policy
:Insured Item
:Product
:Manager
Enter policy number()
Read ()
Accumulate value()
Read()
Product details()
Item details()
Policy details()
Display detailes()
26
® 2008. EPAM Systems. All rights reserved.
27. Пример разработки моделей для конкретного процесса
Диаграмма связиsd Policy
Current :Policy update
screen
1: Enter policy number
:Insured Ite m
3: Accumulate value
2: Read
:Polic y
:Manager
27
® 2008. EPAM Systems. All rights reserved.
4: Read rules
:Produc t
28. Пример разработки моделей для конкретного процесса
Диаграмма классовclass Class Model
Adвress
-
Street: c har
City: char
+
+
+
Search() : void
Modify() : void
Cleans() : void
Polic y
Custome r
has
0..*
1
-
Name: char
Contract details: char
Telephone number: int 1.. *
+
+
Read() : void
Contact() : void
0..* -
Policy Number: int
Coverage: int
Sum Insured: int
Expire Date: int
+
+
Update() : void
Accumulate() : void
1
Beneficiar y
Relationship: int
Owner Flag: boolean
+
Add() : void
Person
Organisation
28
-
-
ACN: int
Regist ered Address: c har
Contact_ Person: c har
-
Date_of_Birth: int
Gender: char
Occupation: char
+
Contact() : void
+
Value() : void
® 2008. EPAM Systems. All rights reserved.
1.. *
Insured Ite m
-
Name: char
Card Number: int
Expiry Date: int
+
Value() : void
29. Дополнительные источники информации
Web-cайтыUML® Resource Page
www.uml.org
UML Tutorial
http://www.sparxsystems.com.au/uml-tutorial.html
UML 2.1 Tutorial
http://www.sparxsystems.com.au/resources/uml2_tutorial/
Книги
Г. Буч, Д. Рамбо, А. Джекобсон “Язык UML Руководство пользователя”
Леоненков А. “Самоучитель UML”
Martin Fowler “UML Distilled: A Brief Guide to the Standard Object Modeling
Language”
29
® 2008. EPAM Systems. All rights reserved.
30. Диаграмма состояний
Delivering Excellence in Software EngineeringДиаграмма состояний
For more information, please contact:
Sergey Kalinov
Software Engineering Team Leader
EPAM Systems, Inc.
Ryazan, Russia (GMT+3)
Phone: +7 920 635 02 13
Email: [email protected]
http://www.epam.com
® 2008. EPAM Systems. All rights
reserved.