CASE. Структурный системный анализ.
ГЛАВА 6. СПЕЦИФИКАЦИИ УПРАВЛЕНИЯ
--------------------------------
Спецификации управления предназначены для моделирования и
документирования аспектов систем, зависящих от времени или реакции на
событие. Они позволяют осуществлять декомпозицию управляющих процессов и
описывают отношения между входными и выходными управляющими потоками на
управляющем процессе-предке. Для этой цели обычно используются диаграммы
переходов состояний (STD).
С помощью STD можно моделировать последующее функционирование системы
на основе ее предыдущего и текущего функционирования. Моделируемая система
в любой заданный момент времени находится точно в одном из конечного
множества состояний. С течением времени она может изменить свое состояние,
при этом переходы между состояниями должны быть точно определены.
STD состоит из следующих объектов:
Состояние - может рассматриваться как условие устойчивости для
системы. Находясь в определенном состоянии, мы имеем достаточно информации
о прошлой истории системы, чтобы определить очередное состояние в
зависимости от текущих входных событий. Имя состояния должно отражать
реальную ситуацию, в которой находится система, например, НАГРЕВАНИЕ,
ОХЛАЖДЕНИЕ и т.п.
Начальное состояние - узел STD, являющийся стартовой точкой для
начального системного перехода. STD имеет только одно начальное состояние,
соответствующее состоянию системы после ее инсталляции, но перед началом
реальной обработки, а также любое (конечное) число завершающих состояний.
Переход определяет перемещение моделируемой системы из одного
состояния в другое. При этом имя перехода идентифицирует событие,
являющееся причиной перехода и управляющее им. Это событие обычно состоит
из управляющего потока (сигнала), возникающего как во внешнем мире, так: и
внутри моделируемой системы При выполнении некоторого условия (например,
СЧЕТЧИК=999 или КНОПКА НАЖАТА). Следует отметить, что не все события
вызывают переходы из отдельных состояний. С другой стороны, одно и то же
событие не всегда вызывает переход в то же самое состояние.
Таким образом, условие представляет собой событие (или события),
вызывающее переход и идентифицируемое именем перехода. Если в условии
участвует входной управляющий поток управляющего процесса-предка, то имя
потока должно быть заключено в кавычки, например "ПАРОЛЬ"=666, где ПАРОЛЬ
- входной поток.
Кроме условия с переходом может связываться действие или ряд
действий, выполняющихся, когда переход имеет место. То есть действие - это
операция, которая может иметь место при выполнении перехода. Если действие
необходимо для выбора выходного управляющего потока то имя этого потока
должно заключаться в кавычки например:
"ВВЕДЕННАЯ КАРТА" = TRUE , где ВВЕДЕННАЯ КАРТА -
выходной поток.
Кроме того, для спецификации А-, Т-, E/D-потоков (типы управляющих
потоков введены в главе 2) имя запускаемого или переключаемого процесса
также должно заключаться в кавычки, например:
А: "ПОЛУЧИТЬ ПАРОЛЬ" - активировать процесс
ПОЛУЧИТЬ ПАРОЛЬ.
Фактически условие есть некоторое внешнее или внутреннее событие,
которое система способна обнаружить и на которое она должна отреагировать
определенным образом, изменяя свое состояние. При изменении состояния
система обычно выполняет одно или более действий (производит ВЫВОД, выдает
сообщение на терминал, выполняет вычисления). Таким образом, действие
представляет собой отклик, посылаемый во внешнее окружение, или
вычисление, результаты которого запоминаются в системе (обычно в
хранилищах данных на DFD), для того, чтобы обеспечить реакцию на некоторые
из планируемых в будущем событий.
На STD состояния представляются узлами, а переходы - дугами (рис.
6.1). Условия (по-другому называемые стимулирующими событиями)
идентифицируются именем перехода и возбуждают выполнение перехода.
Действия или отклики на события привязываются к переходам и записываются
под соответствующим условием. Начальное состояние на диаграмме должно
иметь входной переход, изображаемый потоком из подразумеваемого стартового
узла (иногда этот стартовый узел изображается небольшим квадратом и
привязывается к входному состоянию).
Рис. 6.1: Символы STD
Диграмма переходов состояний для примера банковской задачи приведена
на рис. 6.2. Она содержит два состояния - ОЖИДАНИЕ и ОБРАБОТКА. Переход из
состояния ОЖИДАНИЕ в состояние ОБРАБОТКА осуществляется при условии ввода
кредитной карты (ВВЕДЕННАЯ КРЕДИТНАЯ КАРТА). При этом выполняется действие
по запуску процесса 1.1 на рис. 2.8 (ПОЛУЧИТЬ ПАРОЛЬ). Отметим, что для
запуска используется А-поток, обеспечивающий непрерывность процесса 1.1,
т.е. возможность повторного ввода пароля. Переход из состояния ОБРАБОТКА в
состояние ОЖИДАНИЕ осуществляется двумя различными способами. При условии
трехкратного ввода неверного пароля (см. спецификацию процесса 1.1)
кредитная карта удаляется из системы, при этом она переходит в режим
ожидания очередного клиента. При условии КОРРЕКТНЫЙ ПАРОЛЬ выполняются
действия по обеспечению требуемого сервиса (последовательное включение
процессов 1.2 и 1.3) и удалению кредитной карты, и затем переход в режим
ожидания очередного клиента.
Рис. 6.2: STD для банковской задачи
При построении STD рекомендуется следовать правилам:
¦ строить STD на как можно более высоком уровне детализации DFD;
¦ строить как можно более простые STD;
¦ по возможности детализировать STD;
¦ использовать те же принципы именований состояний, событий и
действий, что и при именовании процессов и потоков.
Применяются два способа построения STD. Первый способ заключается в
идентификации всех возможных состояний и дальнейшем исследовании всех не
бессмысленных связей (переходов) между ними. По второму способу сначала
строится начальное состояние, затем следующие за ним и т.д. Результат (оба
способа) - предварительная STD, для которой затем осуществляется контроль
состоятельности, заключающийся в ответе на следующие вопросы:
¦ все ли состояния определены и имеют уникальное имя?
¦ все ли состояния достижимы?
¦ все ли состояния имеют выход?
¦ (для каждого состояния) реагирует ли система соответствующим
образом на все возможные условия (особенно на ненормальные)?
¦ все ли входные (выходные) потоки управляющего процесса отражены в
условиях (действиях) на STD?
В ситуации, когда число состояний и/или переходов велико, для
проектирования спецификаций управления могут использоваться таблицы и
матрицы переходов состояний. Обе эти нотации позволяют зафиксировать ту же
самую информацию, что и диаграммы переходов состояний, но в другом
формате. В качестве примера таблицы переходов состояний приведена таблица
6.1, соответствующая рассмотренной диаграмме переходов состояний (рис.
6.2). Первая колонка таблицы содержит список всех состояний проектируемой
системы, во второй колонке для каждого состояния приведены все условия,
вызывающие переходы в другие состояния, а в третьей колонке - совершаемые
при этих переходах действия. Четвертая колонка содержит соответствующие
имена состояний, в которые осуществляется переход из рассматриваемого
состояния при выполнении определенного условия.
Таблица 6.1
Матрица переходов состояний содержит по вертикали перечень состояний
системы, а по горизонтали список условий. Каждый ее элемент содержит
список действий, а также имя состояния, в которое осуществляется переход.
Используется и другой вариант данной нотации: по вертикали указываются
состояния, из которых осуществляется переход, а по горизонтали -
состояния, в которые осуществляется переход. При этом каждый элемент
матрицы содержит соответствующие условия и действия, обеспечивающие
переход из "вертикального" состояния в "горизонтальное".
|