OOAD - динамическое моделирование
Динамическая модель представляет зависящие от времени аспекты системы. Он связан с временными изменениями состояний объектов в системе. Основные концепции -
Состояние, которое представляет собой ситуацию в определенном состоянии в течение срока службы объекта.
Переход, изменение состояния
Событие, событие, вызывающее переходы
Действие, непрерывное и атомарное вычисление, которое происходит из-за какого-то события, и
Параллелизм переходов.
Конечный автомат моделирует поведение объекта, когда он проходит через ряд состояний в течение своего времени существования из-за некоторых событий, а также действий, происходящих из-за событий. Конечный автомат графически представлен в виде диаграммы перехода состояний.
Состояния и переходы между состояниями
состояние
Состояние - это абстракция, заданная значениями атрибутов, которые объект имеет в определенный период времени. Это ситуация, возникающая в течение конечного периода времени в течение жизненного цикла объекта, при котором он выполняет определенные условия, выполняет определенные действия или ожидает наступления определенных событий. На диаграммах перехода состояний состояние представлено прямоугольниками с закругленными углами.
Части государства
Name- Строка отличает одно состояние от другого. У государства не может быть названия.
Entry/Exit Actions - Обозначает действия, выполняемые при входе и выходе из состояния.
Internal Transitions - Изменения в состоянии, которые не вызывают изменения состояния.
Sub–states - Состояния внутри государств.
Начальное и конечное состояния
Начальное состояние объекта по умолчанию называется его начальным состоянием. Конечное состояние указывает на завершение выполнения конечного автомата. Начальное и конечное состояния являются псевдосостояниями и могут не иметь частей обычного состояния, кроме имени. На диаграммах перехода состояний начальное состояние представлено закрашенным черным кружком. Конечное состояние представлено закрашенным черным кругом, окруженным другим незаполненным черным кругом.
Переход
Переход означает изменение состояния объекта. Если объект находится в определенном состоянии, когда происходит событие, объект может выполнять определенные действия при определенных условиях и изменять состояние. В этом случае говорят, что произошел переход состояния. Переход устанавливает связь между первым состоянием и новым состоянием. Переход графически представлен сплошной направленной дугой от исходного состояния к целевому.
Пять частей перехода:
Source State - Состояние, на которое влияет переход.
Event Trigger - Событие, из-за которого объект в исходном состоянии претерпевает переход, если выполняется условие защиты.
Guard Condition - Логическое выражение, которое, если True, вызывает переход при получении триггера события.
Action - Непрерывное и атомарное вычисление, которое происходит в исходном объекте из-за некоторого события.
Target State - Состояние назначения после завершения перехода.
Example
Предположим, человек едет на такси из пункта X в пункт Y. Состояниями этого человека могут быть: Ожидание (ожидание такси), Езда (он взял такси и едет в нем) и Достигнут (он достиг пункт назначения). На следующем рисунке изображен переход состояния.
События
События - это некоторые события, которые могут запускать переход состояния объекта или группы объектов. События имеют место во времени и пространстве, но не связаны с временным периодом. События обычно связаны с некоторыми действиями.
Примеры событий: щелчок мышью, нажатие клавиши, прерывание, переполнение стека и т. Д.
События, запускающие переходы, записываются рядом с дугой перехода на диаграммах состояний.
Example
Рассматривая пример, показанный на приведенном выше рисунке, переход из состояния ожидания в состояние «Езда» происходит, когда человек садится в такси. Точно так же конечное состояние достигается, когда он достигает места назначения. Эти два события можно назвать событиями Get_Taxi и Reach_Destination. На следующем рисунке показаны события в конечном автомате.
Внешние и внутренние события
Внешние события - это те события, которые передаются от пользователя системы к объектам внутри системы. Например, щелчок мышью или нажатие клавиши пользователем являются внешними событиями.
Внутренние события - это события, которые передаются от одного объекта к другому в системе. Например, переполнение стека, ошибка разделения и т. Д.
Отложенные события
Отложенные события - это события, которые не обрабатываются объектом в текущем состоянии немедленно, а выстраиваются в очередь, чтобы они могли быть обработаны объектом в каком-то другом состоянии в более позднее время.
Классы событий
Класс события указывает на группу событий с общей структурой и поведением. Как и классы объектов, классы событий также могут быть организованы в иерархическую структуру. Классы событий могут иметь связанные с ними атрибуты, причем время является неявным атрибутом. Например, мы можем рассмотреть события вылета рейса авиакомпании, которые мы можем сгруппировать в следующий класс:
Flight_Departs (Flight_No, From_City, To_City, Маршрут)
Действия
Деятельность
Активность - это операция над состояниями объекта, которая требует определенного периода времени. Это текущие казни в системе, которые можно прервать. Действия показаны на диаграммах действий, которые отображают переход от одного действия к другому.
Действие
Действие - это атомарная операция, которая выполняется в результате определенных событий. Под атомарностью подразумевается, что действия нельзя прерывать, т. Е. Если действие начинает выполняться, оно завершается, не прерываясь каким-либо событием. Действие может воздействовать на объект, для которого было инициировано событие, или на другие объекты, видимые для этого объекта. Набор действий составляет деятельность.
Действия при входе и выходе
Действие при входе - это действие, которое выполняется при входе в состояние, независимо от перехода, который к нему привел.
Точно так же действие, которое выполняется при выходе из состояния, независимо от перехода, приведшего к выходу из него, называется действием выхода.
Сценарий
Сценарий - это описание определенной последовательности действий. Он изображает поведение объектов, подвергающихся определенной серии действий. Первичные сценарии изображают основные последовательности, а вторичные сценарии изображают альтернативные последовательности.
Диаграммы для динамического моделирования
Есть две основные схемы, которые используются для динамического моделирования:
Диаграммы взаимодействия
Диаграммы взаимодействия описывают динамическое поведение различных объектов. Он состоит из набора объектов, их отношений и сообщения, которое объекты отправляют и получают. Таким образом, взаимодействие моделирует поведение группы взаимосвязанных объектов. Два типа диаграмм взаимодействия:
Sequence Diagram - Он представляет собой временной порядок сообщений в табличной форме.
Collaboration Diagram - Он представляет собой структурную организацию объектов, которые отправляют и получают сообщения через вершины и дуги.
Диаграмма перехода состояний
Диаграммы перехода состояний или конечные автоматы описывают динамическое поведение отдельного объекта. Он иллюстрирует последовательности состояний, через которые проходит объект в течение своего времени существования, переходы состояний, события и условия, вызывающие переход, и реакции, обусловленные событиями.
Параллелизм событий
В системе может существовать два типа параллелизма. Они -
Системный параллелизм
Здесь параллелизм моделируется на системном уровне. Система в целом моделируется как совокупность конечных автоматов, где каждый конечный автомат выполняется одновременно с другими.
Параллелизм внутри объекта
Здесь объект может выдавать одновременные события. Объект может иметь состояния, состоящие из подсостояний, и в каждом из подсостояний могут происходить параллельные события.
Понятия, связанные с параллелизмом внутри объекта, следующие:
Простые и составные состояния
Простое состояние не имеет подструктуры. Состояние, в которое вложены более простые состояния, называется составным состоянием. Подсостояние - это состояние, которое вложено в другое состояние. Обычно он используется для уменьшения сложности конечного автомата. Подсостояния могут быть вложены в любое количество уровней.
Составные состояния могут иметь либо последовательные подсостояния, либо параллельные подсостояния.
Последовательные подсостояния
В последовательных подсостояниях управление выполнением переходит от одного подсостояния к другому подсостоянию одно за другим последовательно. В этих конечных автоматах есть не более одного начального состояния и одного конечного состояния.
На следующем рисунке показана концепция последовательных подсостояний.
Параллельные подсостояния
В параллельных подсостояниях подсостояния выполняются параллельно, или, другими словами, каждое состояние имеет в себе одновременно выполняющиеся конечные автоматы. Каждый из конечных автоматов имеет собственное начальное и конечное состояния. Если одно параллельное подсостояние достигает своего конечного состояния раньше другого, управление ожидает в своем конечном состоянии. Когда все вложенные конечные автоматы достигают своих конечных состояний, подсостояния снова объединяются в единый поток.
На следующем рисунке показана концепция параллельных подсостояний.