Скачать презентацию UML 3 ДИАГРАММА СОСТОЯНИЙ Состояние англ state Скачать презентацию UML 3 ДИАГРАММА СОСТОЯНИЙ Состояние англ state

6. UML 3 и 4.pptx

  • Количество слайдов: 50

UML 3 ДИАГРАММА СОСТОЯНИЙ UML 3 ДИАГРАММА СОСТОЯНИЙ

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

2 вида операций Действие Деятельность 2 вида операций Действие Деятельность

Действие (англ. action) – это атомарная операция, выполнение которой не может быть прервано, приводящая Действие (англ. action) – это атомарная операция, выполнение которой не может быть прервано, приводящая к смене состояния или возвращающая значение. Примерами действий служат операции создания или уничтожения объекта, расчет факториала и т. д.

Деятельность (англ. activity) – это составная (неатомарная) операция, реализуемая экземпляром в конкретном состоянии, выполнение Деятельность (англ. activity) – это составная (неатомарная) операция, реализуемая экземпляром в конкретном состоянии, выполнение которой может быть прервано. В частности, под деятельностью можно понимать процедуры расчета допускаемых скоростей или шифрования данных

Событие (англ. event) – это спецификация существенного факта, который занимает некоторое положение во времени Событие (англ. event) – это спецификация существенного факта, который занимает некоторое положение во времени и в пространстве. В контексте диаграмм состояний событие – это спецификация факта, который может привести к смене состояния. События могут быть внутренними или внешними. Внешние события передаются между системой и актерами (например, нажатие кнопки или посылка сигнала от датчика передвижений). Внутренние события передаются между объектами внутри системы.

четыре вида событий · сигналы; · вызовы; · истечение промежутка времени; · изменение состояния. четыре вида событий · сигналы; · вызовы; · истечение промежутка времени; · изменение состояния.

Сигнал (англ. signal) – спецификация факта посылки асинхронного сообщения между объектами. Исключения, которые поддерживаются Сигнал (англ. signal) – спецификация факта посылки асинхронного сообщения между объектами. Исключения, которые поддерживаются в большинстве современных языков программирования, являются наиболее распространенным видом внутренних сигналов.

Вызов (англ. call) – спецификация факта посылки синхронного сообщения между объектами, предписывающего выполнение операции Вызов (англ. call) – спецификация факта посылки синхронного сообщения между объектами, предписывающего выполнение операции (действия или деятельности) объектом, которому посылается сообщение. Синхронность означает, что после посылки вызова объект-отправитель передает управление объекту-получателю и после выполнения последним операции получает управление обратно. Например, закрасить фигуру красным фоном fill(red) или рассчитать допускаемые скорости calculate. Vdop().

Событие времени – спецификация факта, обозначающего истечение промежутка времени с момента входа в текущее Событие времени – спецификация факта, обозначающего истечение промежутка времени с момента входа в текущее состояние. В UML данный факт специфицируется с помощью ключевого слова «after» (англ. – после). Например, after(2 seconds).

Событие изменения состояния – спецификация логического (булевского) условия. В контексте диаграмм состояний данное событие Событие изменения состояния – спецификация логического (булевского) условия. В контексте диаграмм состояний данное событие приводит к изменению состояния экземпляра сущности. В UML оно специфицируется с помощью ключевого слова «when» (англ. – когда) или сторожевого условия. Например, when(A < B) или [A < B].

Переход (англ. transition) – отношение между двумя состояниями, показывающее возможный путь изменения состояния экземпляра Переход (англ. transition) – отношение между двумя состояниями, показывающее возможный путь изменения состояния экземпляра сущности.

Состояние Состояние

Характеристики состояния · entry (англ. – вход) – действие при входе, выполняемое вне зависимости Характеристики состояния · entry (англ. – вход) – действие при входе, выполняемое вне зависимости от того, по какому переходу был выполнен вход в состояние. Например, создать соединение с базой данных entry / create. Connect(); · exit (англ. – выход) – действие при выходе, выполняемое вне зависимости от того, по какому переходу был выполнен выход из состояния. Например, закрыть соединение с базой данных exit / close. Connect(); · do (англ. – выполнять) – деятельность в состоянии. Находясь в состоянии, объект может бездействовать и ждать наступления некоторого события, а может выполнять длительную операцию. Например, рассчитать допускаемые скорости do / calculate. Vdop(). Допускается указывать несколько операций в виде отдельных строк, каждая из которых начинается с метки do, или в виде одной строки, операции в которой отделены друг от друга точкой с запятой; · new. Target (англ. – новое задание) – внутренний переход, предписывающий обработку новых событий, не покидая текущего состояния. При выполнении внутреннего перехода повторно не выполняются действия при входе или выходе из состояния. Например, временная остановка (прерывание) расчета допускаемых скоростей, new. Target / pause. Calculate. Vdop(); · defer (англ. – отложить) – отложенное событие, обработка которого предписывается в другом состоянии, но после того, как все операции в текущем будут завершены. Например, отображение на экране сообщения об ошибках в исходных данных defer / show. Data. Error().

Пример состояния Пример состояния

Два специальных псевдосостояния: начальное и конечное Два специальных псевдосостояния: начальное и конечное

 Начальное состояние (англ. start state) – состояние, в котором находится экземпляр сущности после Начальное состояние (англ. start state) – состояние, в котором находится экземпляр сущности после своего создания или, перейдя в составное состояние. Из начального состояния могут только исходить переходы. Конечное состояние (англ. final state) – состояние, обозначающее факт уничтожения экземпляра сущности или выхода из составного состояния. В конечное состояние могут только входить переходы.

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

Два вида переходов: нетриггерный и триггерный Нетриггерный (переход по завершении), срабатывает неявно, когда все Два вида переходов: нетриггерный и триггерный Нетриггерный (переход по завершении), срабатывает неявно, когда все основные операции (с метками entry, do и exit) в исходном состоянии успешно завершают свою работу. Данный вид перехода обозначается стрелкой без надписи. Триггерный переход необходимо наступление события, которое записывается над стрелкой. В общем случае над стрелкой может быть записана строка текста вида «событие / действие» . Указываемое действие представляет собой атомарную операцию, выполняемую сразу после срабатывания соответствующего перехода и до начала каких бы то ни было операций в целевом состоянии. Разрешается указывать не одно, а несколько обособленных действий, отделенных друг от друга точкой с запятой. Обязательное требование – все действия в списке должны четко различаться между собой и следовать в порядке их записи.

· mouse. Click() / set. Focus() · mouse. Click() [is. Enabled() = true] / · mouse. Click() / set. Focus() · mouse. Click() [is. Enabled() = true] / set. Focus()

Простой (а) и рефлексивный (б) переходы Простой (а) и рефлексивный (б) переходы

составные состояния (англ. composite state), состоящие из вложенных в них подсостояний (англ. substate) составные состояния (англ. composite state), состоящие из вложенных в них подсостояний (англ. substate)

Последовательные подсостояния (англ. sequential substates) используются для моделирования такого поведения экземпляра сущности, во время Последовательные подсостояния (англ. sequential substates) используются для моделирования такого поведения экземпляра сущности, во время которого в каждый момент времени он находится в одном, и только одном, подсостоянии. Поведение экземпляра сущности в этом случае представляет собой последовательную смену подсостояний от начального до конечного. Хотя сущность продолжает находиться в составном состоянии, введение в рассмотрение последовательных подсостояний позволяет отобразить более тонкие логические аспекты его внутреннего поведения.

Параллельные подсостояния (англ. concurrent substates) позволяют специфицировать два и более подавтомата, которые могут параллельно Параллельные подсостояния (англ. concurrent substates) позволяют специфицировать два и более подавтомата, которые могут параллельно выполняться внутри составного события. Каждый из подавтоматов занимает некоторую область внутри составного состояния, которая отделяется от остальных горизонтальной линией). Если на диаграмме имеется составное состояние с вложенными параллельными подавтоматами, то экземпляр сущности может одновременно находиться в нескольких подсостояниях, но не более чем по одному из каждого подавтомата. Если какойлибо из подавтоматов пришел в свое конечное состояние раньше других, то он должен ожидать, пока другие подавтоматы не придут в свои конечные состояния.

Составное состояние с вложенными параллельными подавтоматами Составное состояние с вложенными параллельными подавтоматами

Пример составного состояния со скрытой внутренней структурой Пример составного состояния со скрытой внутренней структурой

Параллельные переходы Параллельные переходы

Знак истории состояния (англ. state history), то переход выполняется в подсостояние, из которого в Знак истории состояния (англ. state history), то переход выполняется в подсостояние, из которого в последний раз был выполнен выход из составного состояния, несмотря на начальное состояние.

Синхронизирующие псевдосостояние (англ. synch state) Синхронизирующие псевдосостояние (англ. synch state)

Правила и рекомендации по разработке диаграмм состояний 1. Наличие у экземпляра сущности нескольких состояний, Правила и рекомендации по разработке диаграмм состояний 1. Наличие у экземпляра сущности нескольких состояний, отличающихся от простой схемы «исправен – неисправен» или «активен – неактивен» , служит признаком необходимости построения диаграммы состояний. При выделении состояний и переходов следует помнить, что длительность срабатывания переходов должна быть существенно меньшей, чем нахождение моделируемого объекта в соответствующих состояниях. Каждое из состояний должно характеризоваться определенной устойчивостью во времени. При моделировании поведения технического устройства, в простейшем случае, можно выделить два или три состояния. При этом в одном случае ремонт показан в качестве перехода, т. е. считается, что занимает мало времени, а в другом – в качестве состояния, что больше соответствует реалиям жизни.

Примеры выделения состояний и переходов Примеры выделения состояний и переходов

 2. Автомат (диаграмма) обязательно должен начинаться знаком начального состояния и заканчиваться знаком конечного. 2. Автомат (диаграмма) обязательно должен начинаться знаком начального состояния и заканчиваться знаком конечного. Начальное состояние указывается только один раз, а конечных может быть несколько в целях минимизации пересечений переходов. Для подавтоматов рекомендуется придерживаться этого же правила, но допускается не указывать начальных и конечных состояний.

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

Пример неправильно составленной диаграммы Пример неправильно составленной диаграммы

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

Фрагменты диаграмм с конфликтными переходами Фрагменты диаграмм с конфликтными переходами

Пример детализации варианта использования Пример детализации варианта использования

UML 4 диаграмма последовательности UML 4 диаграмма последовательности

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

Пример обозначения линии жизни и символа уничтожения объекта Пример обозначения линии жизни и символа уничтожения объекта

Фокус управления В процессе взаимодействия одни объекты могут находиться в активном состоянии, непосредственно выполняя Фокус управления В процессе взаимодействия одни объекты могут находиться в активном состоянии, непосредственно выполняя определенные действия, или в состоянии пассивного ожидания сообщений от других объектов. Чтобы явно выделить подобную активность объектов, на диаграмме можно использовать элемент фокус управления (англ. focus of control). Он изображается в форме вытянутого узкого прямоугольника, верхняя сторона которого обозначает начало получения фокуса управления объекта (начало активности), а нижняя сторона – окончание фокуса управления (окончание активности). Условные операторы, циклы, рекурсия и вызов собственных методов (отправка рефлексивных сообщений) инициируют вложенные потоки управления у одного и того же объекта, что можно отобразить на диаграмме с помощью вложенных фокусов управления

Способы отображения фокуса управления Способы отображения фокуса управления

Пример ветвления потока управления Пример ветвления потока управления

Рекомендации по разработке диаграмм взаимодействия 1. Для выбранного варианта использования необходимо перенести с диаграммы Рекомендации по разработке диаграмм взаимодействия 1. Для выбранного варианта использования необходимо перенести с диаграммы классов анализа все участвующие в нем классы, а с диаграммы вариантов использования – актеров. 2. На диаграмме кооперации между классами следует отобразить ассоциации, перенесенные с диаграммы классов анализа, а также добавить ассоциации, связывающие актеров с граничными классами. 3. Основной и альтернативные потоки событий следует показывать соответствующими сообщениями с использованием сторожевых условий. 4. На стадии анализа имена сообщениям можно давать произвольно (например, «Записать данные о клиенте» ) или в виде стереотипов. В дальнейшем (на стадии проектирования) имена сообщений должны соответствовать методам классов. 5. Имена сущностей на диаграммах (экземпляры актеров и объекты) должны быть подчеркнуты и обозначены соответствующим образом.

 6. На диаграммах последовательности символ уничтожения объектов следует задавать только для тех объектов, 6. На диаграммах последовательности символ уничтожения объектов следует задавать только для тех объектов, которые во время взаимодействия действительно уничтожаются. Экземпляры актеров и объекты классов сущностей (долгоживущая информация), как правило, существуют до начала и после окончания взаимодействия. Для них символ уничтожения не показывается. Объекты граничных и управляющих классов, напротив, в большинстве случаев создаются на момент взаимодействия и по его окончанию уничтожаются. В связи с этим для них требуется отображать символ уничтожения.

Пример диаграммы кооперации Пример диаграммы кооперации

Пример диаграммы последовательности Пример диаграммы последовательности