Учебники

OOAD — Динамическое моделирование

Динамическая модель представляет зависящие от времени аспекты системы. Он связан с временными изменениями состояний объектов в системе. Основные понятия —

  • Состояние, которое представляет собой ситуацию в определенном состоянии в течение жизни объекта.

  • Переход, изменение в состоянии

  • Событие, событие, которое вызывает переходы

  • Действие, непрерывное и атомарное вычисление, которое происходит из-за некоторого события, и

  • Параллельность переходов.

Состояние, которое представляет собой ситуацию в определенном состоянии в течение жизни объекта.

Переход, изменение в состоянии

Событие, событие, которое вызывает переходы

Действие, непрерывное и атомарное вычисление, которое происходит из-за некоторого события, и

Параллельность переходов.

Конечный автомат моделирует поведение объекта, когда он проходит через ряд состояний за время своего существования из-за некоторых событий, а также действий, происходящих из-за событий. Конечный автомат графически представлен через диаграмму перехода состояний.

Государства и Государственные Переходы

государственный

Состояние — это абстракция, заданная значениями атрибутов, которые объект имеет в определенный период времени. Это ситуация, возникающая в течение конечного периода времени в течение жизни объекта, когда он выполняет определенные условия, выполняет определенные действия или ожидает определенных событий. На диаграммах перехода состояний состояние представлено закругленными прямоугольниками.

Части государства

  • Имя — строка отличает одно состояние от другого. Государство может не иметь никакого имени.

  • Действия входа / выхода — обозначают действия, выполняемые при входе и выходе из состояния.

  • Внутренние переходы — изменения в состоянии, которые не вызывают изменения в состоянии.

  • Суб-штаты — штаты внутри штатов

Имя — строка отличает одно состояние от другого. Государство может не иметь никакого имени.

Действия входа / выхода — обозначают действия, выполняемые при входе и выходе из состояния.

Внутренние переходы — изменения в состоянии, которые не вызывают изменения в состоянии.

Суб-штаты — штаты внутри штатов

Начальные и конечные состояния

Начальное состояние объекта по умолчанию называется его начальным состоянием. Конечное состояние указывает на завершение выполнения конечного автомата. Начальное и конечное состояния являются псевдо-состояниями и могут не иметь частей регулярного состояния, кроме имени. На диаграммах перехода состояний начальное состояние представлено черным кружком. Конечное состояние представлено заполненным черным кругом, окруженным другим незаполненным черным кругом.

переход

Переход означает изменение состояния объекта. Если объект находится в определенном состоянии, когда происходит событие, объект может выполнять определенные действия в соответствии с указанными условиями и изменять состояние. В этом случае говорят, что произошел переход состояния. Переход дает связь между первым состоянием и новым состоянием. Переход графически представлен сплошной направленной дугой из исходного состояния в конечное состояние.

Пять частей перехода —

  • Исходное состояние — состояние, затронутое переходом.

  • Триггер события — возникновение, из-за которого объект в состоянии источника претерпевает переход, если выполняется условие защиты.

  • Guard Condition — Булево выражение, которое, если True, вызывает переход при получении триггера события.

  • Действие — непрерывное и атомарное вычисление, которое происходит в исходном объекте из-за какого-либо события.

  • Целевое состояние — состояние назначения после завершения перехода.

Исходное состояние — состояние, затронутое переходом.

Триггер события — возникновение, из-за которого объект в состоянии источника претерпевает переход, если выполняется условие защиты.

Guard Condition — Булево выражение, которое, если True, вызывает переход при получении триггера события.

Действие — непрерывное и атомарное вычисление, которое происходит в исходном объекте из-за какого-либо события.

Целевое состояние — состояние назначения после завершения перехода.

пример

Предположим, что человек едет на такси из места X в место Y. Состояния человека могут быть следующими: Ожидание (ожидание такси), Поездка (у него есть такси и он едет в нем) и Достигнутый (он достиг место назначения). На следующем рисунке показан переход состояния.

Переходы

События

События — это некоторые события, которые могут инициировать переход состояния объекта или группы объектов. События имеют местоположение во времени и пространстве, но не имеют периода времени, связанного с ним. События обычно связаны с некоторыми действиями.

Примерами событий являются щелчок мышью, нажатие клавиши, прерывание, переполнение стека и т. Д.

События, инициирующие переходы, записываются рядом с дугой перехода на диаграммах состояний.

пример

Учитывая пример, показанный на рисунке выше, переход из состояния ожидания в состояние езды происходит, когда человек получает такси. Аналогично, конечное состояние достигается, когда он достигает пункта назначения. Эти два вхождения можно назвать событиями Get_Taxi и Reach_Destination. На следующем рисунке показаны события в автомате.

События Перехода

Внешние и внутренние события

Внешние события — это те события, которые передаются от пользователя системы к объектам в системе. Например, щелчок мыши или нажатие клавиши пользователем являются внешними событиями.

Внутренние события — это события, которые передаются от одного объекта другому объекту в системе. Например, переполнение стека, ошибка деления и т. Д.

Отложенные события

Отложенные события — это события, которые не обрабатываются немедленно объектом в текущем состоянии, но выстраиваются в очередь, так что они могут быть обработаны объектом в каком-то другом состоянии позднее.

Классы событий

Класс событий указывает на группу событий с общей структурой и поведением. Как и в случае классов объектов, классы событий также могут быть организованы в иерархическую структуру. Классы событий могут иметь атрибуты, связанные с ними, но время является неявным атрибутом. Например, мы можем рассмотреть события вылета рейса авиакомпании, которые мы можем сгруппировать в следующий класс —

Flight_Departs (Flight_No, From_City, To_City, Route)

действия

Деятельность

Активность — это операция над состояниями объекта, требующая некоторого периода времени. Это текущие исполнения в системе, которые могут быть прерваны. Действия показаны в диаграммах действий, которые изображают переход от одного действия к другому.

действие

Действие — это атомарная операция, которая выполняется в результате определенных событий. Под атомарным подразумевается, что действия не прерываются, т. Е. Если действие начинает выполняться, оно завершается без прерывания каким-либо событием. Действие может воздействовать на объект, для которого было инициировано событие, или на другие объекты, которые видны этому объекту. Набор действий включает в себя деятельность.

Действия входа и выхода

Действие входа — это действие, которое выполняется при входе в состояние, независимо от перехода, который привел к нему.

Аналогично, действие, которое выполняется при выходе из состояния, независимо от перехода, который из него вышел, называется выходным действием.

сценарий

Сценарий — это описание определенной последовательности действий. Он изображает поведение объектов, проходящих определенную серию действий. Первичные сценарии изображают основные последовательности, а вторичные сценарии — альтернативные последовательности.

Диаграммы для динамического моделирования

Для динамического моделирования используются две основные диаграммы:

Диаграммы взаимодействия

Диаграммы взаимодействия описывают динамическое поведение различных объектов. Он состоит из набора объектов, их отношений и сообщения, которое объекты отправляют и получают. Таким образом, взаимодействие моделирует поведение группы взаимосвязанных объектов. Два типа диаграмм взаимодействия:

  • Диаграмма последовательности — представляет временную последовательность сообщений в табличной форме.

  • Диаграмма сотрудничества — представляет структурную организацию объектов, которые отправляют и получают сообщения через вершины и дуги.

Диаграмма последовательности — представляет временную последовательность сообщений в табличной форме.

Диаграмма сотрудничества — представляет структурную организацию объектов, которые отправляют и получают сообщения через вершины и дуги.

Диаграмма переходного состояния

Диаграммы перехода состояний или конечные автоматы описывают динамическое поведение отдельного объекта. Он иллюстрирует последовательности состояний, через которые проходит объект в течение его жизни, переходы состояний, события и условия, вызывающие переход, и реакции, вызванные событиями.

Параллельность событий

В системе могут существовать два типа параллелизма. Они —

Системный параллелизм

Здесь параллелизм моделируется на системном уровне. Вся система моделируется как совокупность конечных автоматов, где каждый конечный автомат выполняется одновременно с другими.

Параллельность внутри объекта

Здесь объект может выдавать параллельные события. Объект может иметь состояния, которые состоят из подсостояний, и одновременные события могут происходить в каждом из подсостояний.

Концепции, связанные с параллелизмом внутри объекта, следующие:

Простые и составные состояния

Простое состояние не имеет подструктуры. Состояние, в которое вложены более простые состояния, называется составным состоянием. Подсостояние — это состояние, которое вложено в другое состояние. Обычно используется для уменьшения сложности конечного автомата. Подсостояния могут быть вложены в любое количество уровней.

Составные состояния могут иметь либо последовательные подсостояния, либо параллельные подсостояния.

Последовательные подсостояния

В последовательных подсостояниях управление выполнением переходит от одного подсостояния к другому подсостоянию один за другим последовательным образом. Существует не более одного начального состояния и одного конечного состояния в этих конечных автоматах.

Следующий рисунок иллюстрирует концепцию последовательных подсостояний.

Последовательные подсостояния

Параллельные подсостояния

В параллельных подсостояниях подсостояния выполняются параллельно, или, другими словами, в каждом состоянии одновременно выполняются конечные автоматы. Каждый из конечных автоматов имеет свои начальные и конечные состояния. Если одно параллельное подсостояние достигает своего конечного состояния раньше другого, управление ожидает своего окончательного состояния. Когда все вложенные конечные автоматы достигают своих конечных состояний, подсостояния объединяются в единый поток.

На следующем рисунке показана концепция параллельных подсостояний.