11.1. Расширения реального времени

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

Фактически управляющий процесс представляет собой преобразователь входных управляющих потоков в выходные управляющие потоки; при этом точное описание этого преобразования должно задаваться в спецификации управления, например, "Главный управляющий процесс", "Управление работой с изображением (рисунком, текстом)", "Управление печатью документа", "Управление заданием (изменением) параметров", "Управление работой с файлами и каталогами", "Управление редактированием изображения (рисунка, текста)" и т.п.

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

Управляющий поток. Моделирует движение управляющей информации. Обычно управляющий поток имеет дискретное, а не непрерывное значение.

Это может быть, например, сигнал, представляющий событие или вид операции.

Пример сигнала — события: "Действие пользователя", "Выбран пункт меню такой-то", "Нажата клавиша такая-то", "Введен параметр такой-то".

Пример сигнала — вида операции: "Сменить диск", "Сменить папку", "Обновить изображение" и т.п.

Режим выполнения процесса зависит от типа управляющего потока. Имеются следующие типы управляющих потоков:

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

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

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

Управляющий накопитель представляет "срез" управляющего потока во времени. Имя управляющего накопителя должно идентифицировать его содержимое и быть существительным.

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

В нотациях Йодана и Гейна-Сарсона управляющие компоненты изображаются пунктирными линиями, в отличие от традиционных компонент. В CASE-средстве BPwin пунктирными линиями можно изобразить только управляющие потоки, управляющие процессы и накопители не поддерживаются.

Дополним модель ПО "Графический редактор (Paint)", введя в диаграммы в нотации DFD управляющие процессы и управляющие потоки, позволяющие описать его функционирование в реальном времени (рис. 11.1 — 11.3).

Управляющий процесс А7 "Главный управляющий процесс" получает сообщения от пользователя "Действие пользователя" в виде выбора пункта меню, нажатия левой кнопки мышки, перемещения указателя мышки и т.д.

Получив информацию, что выбран пункт "Печать" в меню "Файл", управляющий процесс вызывает выполнение процесса А5 "Печать" потоком "Распечатать текущий файл" (передается вид операции).

Получив информацию о действиях пользователя, связанных с редактированием изображения (о перемещении указателя мышки или нажатии левой кнопки мышки), управляющий процесс А7 вызывает выполнение "Подсистемы редактирования изображения" А2 с помощью управляющего потока "Действие пользователя по редактированию" (передается событие — действие пользователя — для дальнейшей обработки внутри подсистемы А2).

Рис. 11.1. Расширение диаграммы, детализирующей контекстный процесс модели ПО "Графический редактор (Paint)"

Рис. 11.2. Расширение диаграммы, детализирующей подсистему А2 "Подсистема редактирования изображения"

Рис. 11.3. Расширение диаграммы, детализирующей подсистему А3 "Подсистема настройки изображения"                                                                                                 

Управляющий поток "Действие пользователя по редактированию" на детализирующей подсистему А2 диаграмме расчленяется на шесть подпотоков. Эти потоки получает процесс "Управление редактированием изображения" и в соответствии со своей внутренней логикой вызывает выполнение процессов А2.1 — А2.4. Каждый из процессов А2.1 — А2.4 сам вызывает выполнение процесса А2.5 "Перерисовать изображение" управляющим потоком "Произвести перерисовку изображения".

Аналогично управляющие процессы реагируют и на другие действия пользователя.