Диаграммы переходов состояний (S tate T ransition D iagram , STD)



Структурное проектирование является мостом между структурным анализом и реализацией.

Диаграммы переходов состояний (State Transition Diagram) обычно используются для описания отношения между входными и выходными управляющими потоками на управляющем процессе-предке и позволяют осуществлять декомпозицию управляющих процессов.

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

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

STD состоит из следующих объектов (слайд 4):

СОСТОЯНИЕ – рассматривается как устойчивое значение некоторого свойства в течение определенного времени. Находясь в определенном состоянии, мы имеем достаточно информации о прошлой истории системы, чтобы определить очередное состояние в зависимости от текущих входных событий. Имя состояния должно отражать реальную ситуацию, в которой находится система, например, НАГРЕВАНИЕ, ОХЛАЖДЕНИЕ и т.п.

НАЧАЛЬНОЕ СОСТОЯНИЕ - узел STD, являющийся стартовой точкой для начального системного перехода. STD имеет ровно одно начальное состояние, соответствующее состоянию системы после ее инсталляции, но перед началом реальной обработки, а также любое (конечное) число завершающих состояний.

ПЕРЕХОД определяет перемещение моделируемой системы из одного состояния в другое. При этом имя перехода идентифицирует событие, являющееся причиной перехода и управляющее им. Это событие обычно состоит из управляющего потока (сигнала), возникающего как во внешнем мире, так и внутри моделируемой системы при выполнении некоторого условия (например, СЧЕТЧИК=999 или КНОПКА НАЖАТА). Следует отметить, что, вообще говоря, не все события необходимо вызывают переходы из отдельных состояний. С другой стороны, одно и то же событие не всегда вызывает переход в то же самое состояние.

Управляющий поток – это «трубопровод», через который проходит управляющая информация. Имеются следующие типы управляющих потоков:

Т-поток (trigger flow) – поток управления процессом, который может вызвать выполнение процесса. При этом процесс включается одной короткой операцией. Это аналог выключателя света, единственным нажатием которого «запускается» процесс горения лампы.

А-поток (activator flow) - поток управления процессом, который может изменять выполнение отдельного процесса. Используется для обеспечения непрерывности выполнения процесса до тех пор, пока поток «включен», с «выключением» потока выполнение процесса завершается. Это аналог переключателя лампы, которая может быть как включена, так и выключена.

Е/D-поток (enable/disable flow) – поток управления процессом, который может переключать выполнение отдельного процесса. Течение по Е-линии вызывает выполнение процесса, которое продолжается до тех пор, пока не возбуждается течение по D-линии. Это аналог выключателя с двумя кнопками: одной для включения света, другой – для его выключения. Можно использовать 3 типа таких потоков: Е-поток, D-поток, E/D-поток.

УСЛОВИЕ представляет собой событие (или события), вызывающее переход и идентифицируемое именем перехода. Если в условии участвует входной управляющий поток управляющего процесса-предка, то имя потока должно быть заключено в кавычки, например, "ПАРОЛЬ"=666, где ПАРОЛЬ - входной поток.

Кроме условия с переходом может связываться действие или ряд действий, выполняющихся, когда переход имеет место. ДЕЙСТВИЕ - это операция, которая может иметь место при выполнении перехода. Если действие необходимо для выбора выходного управляющего потока, то имя этого потока должно заключаться в кавычки, например: "ВВЕДЕННАЯ КАРТА" = TRUE , где ВВЕДЕННАЯ КАРТА - выходной поток.

Для спецификации А-, Т-, E/D-потоков имя запускаемого или переключаемого процесса также должно заключаться в кавычки.

Фактически условие есть некоторое внешнее или внутреннее событие, которое система способна обнаружить и на которое она должна отреагировать определенным образом, изменяя свое состояние. При изменении состояния система обычно выполняет одно или более действий (производит вывод, выдает сообщение на терминал, выполняет вычисления). Таким образом, действие представляет собой отклик, посылаемый во внешнее окружение, или вычисление, результаты которого запоминаются в системе (обычно в хранилищах данных на DFD), для того, чтобы обеспечить реакцию на некоторые из планируемых в будущем событий.

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

При построении STD рекомендуется следовать нижеперечисленным правилам:

· строить STD на как можно более высоком уровне детализации DFD;

· строить как можно более простые STD;

· по возможности детализировать STD;

· использовать те же принципы именований состояний, событий и действий, что и при именовании процессов и потоков.

Применяются два способа построения STD. Первый способ заключается в идентификации всех возможных состояний и дальнейшем исследовании всех не бессмысленных связей (переходов) между ними. По второму способу сначала строится начальное состояние, затем следующие за ним и т.д. Результат (оба способа) - предварительная STD, для которой затем осуществляется контроль состоятельности, заключающийся в ответе на следующие вопросы:

· все ли состояния определены и имеют уникальное имя?

· все ли состояния достижимы?

· все ли состояния имеют выход?

· (для каждого состояния) реагирует ли система соответствующим образом на все возможные условия (особенно на ненормальные)?

· все ли входные (выходные) потоки управляющего процесса отражены в условиях (действиях) на STD?

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

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

Пример банковской задачи (слайд 5).

В качестве примера создания модели рассмотрим фрагмент проекта системы, организующей работу банкомата по обслуживанию клиента по его кредитной карте

Для банковского обслуживания клиенту необходимо предоставить системе свою КРЕДИТНУЮ КАРТУ для автоматического считывания с нее информации (ПАРОЛЬ, ЛИМИТ ДЕНЕГ, ДЕТАЛИ КЛИЕНТА), а так­же сообщить свои КЛЮЧЕВЫЕ ДАННЫЕ, а именно ПАРОЛЬ и ЗАПРОС НА ОБСЛУЖИВАНИЕ, т.е. требуемую ему услугу (например, снятие со счета наличных денег). Банковское обслуживание с позиций клиента, в свою очередь, должно обеспечить следующее:

• выдать СООБЩЕНИЕ, приглашающее клиента ввести КЛЮЧЕВЫЕ ДАННЫЕ;

• выдать клиенту ДЕНЬГИ;

• выдать клиенту ВЫПИСКУ по проведенному обслуживанию

Диаграмма переходов состояний для примера банковской задачи приведена на слайде 5. Она содержит два состояния - ОЖИДАНИЕ и ОБ­РАБОТКА. Переход из состояния ОЖИДАНИЕ в состояние ОБРАБОТКА осуществляется при условии ввода кредитной карты (ВВЕДЕННАЯ КРЕ­ДИТНАЯ КАРТА). При этом выполняется действие по запуску процесса ПОЛУЧИТЬ ПАРОЛЬ. Отметим, что для запуска исполь­зуется А-поток, обеспечивающий непрерывность процесса 1.1, т.е. воз­можность повторного ввода пароля.

Переход из состояния ОБРАБОТКА в состояние ОЖИДАНИЕ осу­ществляется двумя различными способами. При условии ввода неверного пароля кредитная карта удаляется из системы, при этом она переходит в режим ожидания очеред­ного клиента. При условии КОРРЕКТНЫЙ ПАРОЛЬ выполняются дейст­вия по обеспечению требуемого сервиса и удалению кредитной карты, и затем переход в ре­жим ожидания очередного клиента.


Дата добавления: 2021-07-19; просмотров: 123; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!