- •ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- •UML. Диаграмма состояний (statechart diagram) Назначение
- •UML. Диаграмма состояний Базовые элементы
- •UML. Диаграмма состояний Состояние
- •UML. Диаграмма состояний Состояние
- •UML. Диаграмма состояний Состояние
- •UML. Диаграмма состояний Переход
- •UML. Диаграмма состояний Переход
- •UML. Диаграмма состояний Переход
- •UML. Диаграмма состояний Составное состояние и подсостояние
- •UML. Диаграмма состояний Составное состояние и подсостояние
- •UML. Диаграмма состояний Историческое состояние
- •UML. Диаграмма состояний
- •UML. Диаграмма состояний
UML. Диаграмма состояний Составное состояние и подсостояние
Последовательные подсостояния (sequential substates) используются для моделирования поведение объекта как последовательную смену подсостояний, начиная от начального и заканчивая конечным подсостояниями.
Параллельные подсостояния (concurrent substates) позволяют специфицировать два и более подавтомата, которые могут выполняться параллельно внутри составного события.
© 2005, В.В.Хашковский, Д.П.Калачев. |
11 |
UML. Диаграмма состояний Историческое состояние
Формализм обычного автомата не позволяет учитывать предысторию в процессе моделирования поведения объектов. Однако функционирование целого ряда систем основано на возможности выхода из отдельных состояний
с последующим возвращением в это же состояние.
Историческое состояние (history state) применяется в контексте составного состояния. Оно используется для запоминания того из последовательных подсостояний, которое было текущим в момент выхода из составного состояния.
Недавнее историческое состояние (shallow history state) (а). Историческое состояние теряет свою историю в тот момент, когда подавтомат доходит до своего конечного состояния. При этом недавнее историческое состояние запоминает историю только того подавтомата, к которому он относится. Другими словами, этот тип состояния способен запомнить историю только одного с ним уровня
вложенности.
Давнее историческое состояние (deep history state) (б) служит для запоминания всех подсостояний любого уровня вложенности для
текущего подавтомата .
© 2005, В.В.Хашковский, Д.П.Калачев. |
12 |
UML. Диаграмма состояний
СложныеПереходы междупереходыпараллельными
Параллельный переход может иметь источников и несколько целевых состояний
рассмотрение параллельного перехода обусловлено необходимостью синхронизировать и/или разделить отдельные подпроцессы на параллельные нити без спецификации дополнительной синхронизации в параллельных подавтоматах.
Если параллельный переход имеет две или более входящих дуг (а), то его называют соединением (join). Если же он имеет две или более исходящих из него дуг (б), то его называют ветвлением
(fork).
Для соединения переход срабатывает, если имеет место событие- триггер для всех исходных состояний этого перехода, и выполнено сторожевое условие. При срабатывании перехода-соединения одновременно покидаются все исходные состояния перехода и происходит переход в целевое состояние.
Для ветвления происходит расщепление автомата на два подавтомата, образующих параллельные ветви вложенных подсостояний. При этом после срабатывания перехода
моделируемый объект одновременно будет находиться во всех 13
© 2005, В.В.Хашковский, Д.П.Калачев.
целевых состояниях этого перехода.
UML. Диаграмма состояний
Сложные переходы
Переходы между составными состояниями
Переход, стрелка которого соединена с границей составного состояния, обозначает переход в составное состояние
(переход b на рис.). Он эквивалентен переходу в начальное состояние каждого из подавтоматов (возможно, единственному), входящих в состав данного суперсостояния. Переход, выходящий из составного состояния (переходы f и g на рис.), относится к каждому из вложенных подсостояний. Это означает, что объект может покинуть составное суперсостояние, находясь в любом из его подсостояний. Для этого вполне достаточно выполнения события и сторожевого условия.
Поведение параллельных подавтоматов независимо друг от друга, что позволяет реализо-вать многозадачность в программных системах. Однако в отдельных случаях может возник-нуть необходимость учесть в модели
синхронизацию наступления отдельных
Синхронизирующее состояние
(synch state) используется совместно переходом-соединением или перехо дом-ветвлением для того, чтобы указать события в других подавтома тах, оказывающие непосредственное
влияние на поведение данного 14
© 2005, В.В.Хашковский, Д.П.Калачев.
подавтомата.
