40596

Диаграммы состояний

Лекция

Информатика, кибернетика и программирование

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

Русский

2013-10-17

39.47 KB

2 чел.

Занятие №  36

Диаграммы состояний

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

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

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

Введение

Рассмотрим деятельность инвестора, финансирующего строительство нового небоскреба. Маловероятно, что этому человеку будут интересны подробности процесса возведения здания. Выбор материалов, график поставок и многочисленные совещания по поводу технических деталей - это заботы подрядчика, но никак не лица, вкладывающего в проект деньги.

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

Более прагматичный инвестор тоже доверится подрядчику, но все же, прежде чем давать деньги, захочет удостовериться в том, что процесс протекает в правильном направлении. Поэтому, вместо того чтобы предоставлять бесконтрольный доступ к банковскому счету, осторожный вкладчик сначала наметит основные вехи проекта, каждая из которых соотносится с завершением определенной стадии работ. Лишь на исходе одного этапа инвестор выделит сумму для выполнения следующего. Например, в самом начале может быть выдана сравнительно скромная сумма на создание архитектурного проекта. После его одобрения очередная инвестиция выделяется на инженерную подготовку. Когда и этот этап закончится, вносятся деньги на рытье котлована. И так на всем пути, от закладки фундамента до получения свидетельства о праве владения, расставлены вехи.

Каждая такая веха обозначает некое устойчивое состояние проекта: закончено архитектурное проектирование, проведена инженерная подготовка, вырыт, котлован, завершена подводка коммуникаций, загерметизированы швы и т.д. Для инвестора наблюдение за изменениями в ходе процесса намного важнее, чем контроль последовательности работ: этим может заняться подрядчик с помощью Pert-диаграммы.

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

В UML для моделирования поведения объекта с точки зрения порядка возникновения событий используются диаграммы состояний. Из рис.1 видно, что диаграмма состояний - это просто представление автомата, и основное внимание уделено потоку управления от одного состояния к другому.

Термины и понятия

Диаграмма состояний (Statechart diagram) показывает автомат, фокусируя внимание на потоке управления от состояния к состоянию. Автомат (State machine) -это описание последовательности состояний, через которые проходит объект на протяжении своего жизненного цикла, реагируя на события, - в том числе описание реакций на эти события. Состояние(State) - это ситуация в жизни объекта, на протяжении которой он удовлетворяет некоторому условию, осуществляет определенную деятельность или ожидает какого-то события.

Рис. 1. Диаграмма состояний

Событие (Event) - это спецификация существенного факта, который происходит во времени и пространстве. В контексте автоматов событие - это стимул, способный вызвать срабатывание перехода. Переход (Transition) - это отношение между Двумя состояниями, показывающее, что объект, находящийся в первом состоянии, должен выполнить некоторые действия и перейти во второе состояние, как только произойдет определенное событие и будут выполнены заданные условия. Деятельность (Activity) -это продолжающееся неатомарное вычисление внутри автомата. Действие (Action) - это атомарное вычисление, которое приводит к смене состояния или возврату значения. Диаграмма состояний изображается в виде графа с вершинами и ребрами.

Общие свойства

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

Содержание

Обычно диаграмма состояний включает в себя:

  1.  простые и составные состояния;
  2.  переходы вместе с ассоциированными событиями и действиями.

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

Как и все прочие диаграммы, диаграмма состояний может содержать примечания и ограничения.

Типичные примеры использования

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

Использовать диаграммы состояний для моделирования некоторого динамического аспекта системы можно в контексте практически любого элемента модели. Обычно, однако, диаграммы состояний применяются в контексте системы в целом, подсистемы или класса. Можно присоединять диаграммы состояний и к прецедентам (для моделирования сценария).

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

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

В противоположность этому диаграммы деятельности используются для моделирования рабочего процесса или операции. Они в большейстепени подходят для показа протекания деятельности во времени и этим напоминают блок-схемы.

Типичные приемы моделирования

Реактивные объекты

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

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

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

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

Моделирование реактивного объекта складывается из следующих процессов:

  1.  Выберите контекст для автомата - класс, прецедент или систему в целом.
  2.  Выберите начальное и конечное состояния для объекта. Для использования в остальной части модели, возможно, стоит сформулировать пред- и пост условия для начального и конечного состояния.
  3.  Определите устойчивые состояния объекта, - те, в которых он может находиться неопределенно долгое время. Начните с состояний верхнего уровня, а затем переходите к подсостояниям.
  4.  Определите разумное/частичное упорядочение устойчивых состояний на протяжении жизненного цикла объекта.
  5.  Определите, какие события могут инициировать переходы между состояниями. Смоделируйте эти события как триггеры переходов из одного допустимого упорядочения состояний в другое.
  6.  Присоедините действия к переходам (как в машине Мили) и/или к состояниям (как в машине Мура).
  7.  Рассмотрите, как можно упростить автомат за счет использования подсостояний, ветвлений, разделений, слияний и исторических состояний.
  8.  Проверьте, что любое из состояний достижимо при некоторой комбинации событий.
  9.  Убедитесь в отсутствии тупиковых состояний, то есть таких, из которых нет переходов ни при какой комбинации событий.
  10.  Трассируйте автомат вручную или с помощью инструментальных средств и проверьте, как он ведет себя при ожидаемых последовательностях событий и реакций на них.

На рис. 2 показана диаграмма состояний для разбора простого контекстно-свободного языка. Примеры таких языков можно найти в системах, для которых входной или выходной поток составляют XML-сообщения. В таких случаях проектируется автомат для разбора потока символов, удовлетворяющего синтаксису языка:

сообщение: ' < ' строка ' >' строка ';'

Первая строка представляет тэг, вторая - тело сообщения. Из данного потока символов извлекаются только сообщения, удовлетворяющие правилам синтаксиса.

Из рисунка видно, что для автомата предусмотрены только три устойчивых состояния: Ожидание, ПолучениеЛексемы и ПолучениеТела. Диаграмма состояний спроектирована в виде машины Мили - действия привязаны к переходам. На самом деле в автомате есть только одно представляющее интерес событие - вызов putс фактическим параметромс(символом). В состоянии Ожиданиеавтомат отбрасывает все символы, не интерпретируемые как начало лексемы (это специфицировано сторожевым условием). При обнаружении начала лексемы состояние объекта изменяется на ПолучениеЛексемы. Находясь в этом состоянии, автомат сохраняет все символы, не интерпретируемые как конец лексемы (это тоже специфицировано сторожевым условием). Обнаружив конец лексемы, объект переходит в состояние ПолучениеТела. В этом состоянии автомат сохраняет все символы, не интерпретируемые как конец сообщения (см. сторожевое условие). Как только получен конец сообщения, состояние объекта меняется на Ожидание; возвращается значение, показывающее, что сообщение разобрано и автомат готов к приему следующего.

Рис. 2. Моделирование реактивных объектов

Обратите внимание, что эта диаграмма описывает автомат, работающий непрерывно - в нем нет конечного состояния.


 

А также другие работы, которые могут Вас заинтересовать

39673. Организация социологического исследования 275 KB
  Организация социологического исследования Лекция Череповец 2007 Тема 1. Организация социологического исследования Содержание лекции Назначение роль и виды социологических исследований. Классификация методов: по масштабу применения по уровню знания по методической стратегии по этапам исследования. Содержание организационного раздела: рабочий план инструкция по организации полевого исследования инструкция анкетеру правила работы и этические нормы.
39674. Цели, задачи и механизм социологического исследования 83.5 KB
  Цели задачи и механизм социологического исследования Вопросы лекции: Назначение и виды социологических исследований. Содержание программы социологического исследования Назначение роль и виды социологических исследований. Классификация методов: по масштабу применения по уровню знания по методической стратегии по этапам исследования. Содержание организационного раздела: рабочий план инструкция по организации полевого исследования инструкция анкетеру правила работы и этические нормы.
39675. Стратегии аргументации 22.42 KB
  Стратегии аргументации направлены на то чтобы взять верный курс при постановке ключевых задач а методы и приемы – чтобы одержать верх при обсуждении ключевых вопросов переговорного процесса. Высказывание Конфуция или указание на историческую аналогию может в рамках такой аргументации нести в себе элемент воздействия который недоступен носителю другой культурной традиции. Европейская – аналитическая система аргументации вырастает из рационалистической философии для которой характерно расчленение основного содержания на части в...
39676. Культура полемики и дискуссии 24.19 KB
  Виды публичных споров. Требования к ведению спора. Доказательство в споре.
39677. ТЕОРИЯ КОММУНИКАЦИИ 2.92 MB
  Под коммуникацией мы будем понимать процессы перекодировки вербальной в невербальную и невербальной в вербальную сферы. Исторически коммуникацией было именно это: принуждение другого к выполнению того или иного действия. То есть для коммуникации существенен переход от говорения Одного к действиям Другого
39678. СОДЕРЖАНИЕ КОММУНИКАЦИИ. СЕМИОТИКА ЯЗЫКА 55 KB
  СОДЕРЖАНИЕ КОММУНИКАЦИИ. Важнейшая функция социальной коммуникации прагматическую. Или иначе знак имеет большое значение для реализации целей коммуникации. Это в то же время приблизило семиотику к проблемам коммуникации в человеческом Проблема заключается в том как следует понимать высказывание Являются ли высказываниями например знак череп и скрещенные кости или предписывающие и запрещающие Дорожные знаки или актуализированное в речи слово Берегись Конечно данные знаки не отвечают определению высказывания как семиотической ячейки...
39679. ОБЕСПЕЧЕНИЕ ИНФОРМАЦИОННОГО ОБМЕНА В КОММУНИКАТИВНЫХ СИСТЕМАХ 113.5 KB
  Структура знаний намного сложнее структуры информации. Потоки информации циркулирующие в обществе обслуживают различные социальные образования социальные институты организации группы и др. Или иначе массовая информация является видом социальной информации которым пользуется большая по величине масса людей как на этапе ее производства как и на этапах распространения и потребления. Массовая коммуникация как вид социальной коммуникации представляет собой процесс распространения массовой информации.
39680. ЭФФЕКТИВНОСТЬ КОММУНИКАЦИИ 39 KB
  ЭФФЕКТИВНОСТЬ КОММУНИКАЦИИ Для эффективной организации этой работы необходимо: ü осуществление всех мероприятий мониторинга в комплексе; ü сочетание мониторинга с другими методами сбора данных; ü учет правовых аспектов свободы средств массовой информации; ü учет точек критического состояния массовой аудитории при проведении мониторинга определение пороговых величин значений социальных индикаторов; ü учет обратных связей возникающих в процессе мониторинга. На первом этапе ставятся задачи связанные...
39681. КОММУНИКАЦИЯ В РАЗЛИЧНЫХ СФЕРАХ ОБЩЕСТВЕННОЙ ЖИЗНИ 57.5 KB
  Различие состоит в том что основной функцией PR является управленческая и приоритет отдается межличностной коммуникации. На отдельных предприятиях для внутренней коммуникации имеются замкнутые системы радиовещания и телевидения. Результативность коммуникации складывается из многих компонентов. Она зависит и от выбора слов и речевых образцов принятых в деловой сфере коммуникации и от правильная ориентация на тип коммуникации межличностной внутригрупповой или массовой.