DRAKON.SU
https://forum.drakon.su/

Ожидание нескольких событий в ДРАКОН-схеме
https://forum.drakon.su/viewtopic.php?f=62&t=6760
Страница 1 из 4

Автор:  Степан Митькин [ Воскресенье, 29 Декабрь, 2019 14:49 ]
Заголовок сообщения:  Ожидание нескольких событий в ДРАКОН-схеме

В бизнес-процессах и компьютерных программах регулярно приходится ожидать событие, тип которого принадлежит некоторому множеству.
Иными словами, алгоритм останавливается и ждёт до тех пор, пока не случится одно из нескольких возможных событий.
В языке ДРАКОН отсутствует лаконичное средство для выражения такой ситуации, и это недостаток языка, на который указывают пользователи ДРАКОНа.

Пример
Банкомат просит держателя банковской карты выбрать операцию:
-Выдача наличных
-Получение выписки
-Внесение наличных

Как изобразить это на ДРАКОН-схеме?
Я предлагаю так:
Вложение:
minibank-wybor.png
minibank-wybor.png [ 8.61 КБ | Просмотров: 12637 ]

Вот полная схема:
Вложение:
minibank.png
minibank.png [ 57.28 КБ | Просмотров: 12637 ]

Автор:  Владимир Паронджанов [ Воскресенье, 29 Декабрь, 2019 15:20 ]
Заголовок сообщения:  Re: Ожидание нескольких событий в ДРАКОН-схеме

Степан Митькин писал(а):
В языке ДРАКОН отсутствует лаконичное средство для выражения такой ситуации, и это недостаток языка, на который указывают пользователи ДРАКОНа.

..............................................

Как изобразить это на ДРАКОН-схеме?
Вот полная схема:
Среднюю горизонтальную линию лучше сделать двойной

Автор:  LKom [ Воскресенье, 29 Декабрь, 2019 16:57 ]
Заголовок сообщения:  Re: Ожидание нескольких событий в ДРАКОН-схеме

Рисование без правил, произвольное.

Это уже не Дракон!

Автор:  Степан Митькин [ Воскресенье, 29 Декабрь, 2019 20:03 ]
Заголовок сообщения:  Re: Ожидание нескольких событий в ДРАКОН-схеме

Владимир Паронджанов писал(а):
Среднюю горизонтальную линию лучше сделать двойной

Нельзя двойную линию. Будет выглядеть как параллельное исполнение, в котором все ветки обязательны к исполнению. А здесь будет выполнена одна ветка, как в случае с иконой Вариант.

Автор:  Владимир Паронджанов [ Воскресенье, 29 Декабрь, 2019 20:36 ]
Заголовок сообщения:  Re: Ожидание нескольких событий в ДРАКОН-схеме

Степан Митькин писал(а):
Нельзя двойную линию. Будет выглядеть как параллельное исполнение, в котором все ветки обязательны к исполнению. А здесь будет выполнена одна ветка, как в случае с иконой Вариант.

Хорошо.

Но, Степан, примера недостаточно.
Предлагаемое вами новшество надо превратить в четкое Правило (LKom прав).

Чтобы создать новое Правило нужно:

1. Указать новую икону, ее изображение и ее название.
2. Указать новую макроикону, ее изображение и ее название.

См. образцы правил на рис. 19, 20, 21, 22
https://drakon.su/_media/24_zhizneritm20.pdf

Автор:  Степан Митькин [ Понедельник, 30 Декабрь, 2019 15:11 ]
Заголовок сообщения:  Re: Ожидание нескольких событий в ДРАКОН-схеме

Владимир Паронджанов писал(а):

Но, Степан, примера недостаточно.
Предлагаемое вами новшество надо превратить в четкое Правило (LKom прав).

Чтобы создать новое Правило нужно:

1. Указать новую икону, ее изображение и ее название.
2. Указать новую макроикону, ее изображение и ее название.

1. Новой иконы не будет. Используем икону Простой ввод.
2. Будет новая макроикона "Ожидание нескольких событий", см. её внешний вид в первом сообщении. Я подготовлю формальный чертёж позже.

Добавление этой макроиконы критически важно.

Автор:  Степан Митькин [ Понедельник, 30 Декабрь, 2019 15:30 ]
Заголовок сообщения:  Re: Ожидание нескольких событий в ДРАКОН-схеме

Для чего нужна макроикона Ожидание нескольких событий?

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

Возьмём схему Управление двигателями на стр. 193 книги Жизнеритмы.
Если основной двигатель не включился в течение 3х минут, включаем резервный. Это типовая ситуация, которая встречается везде.

Макроикона Ожидание нескольких событий нужна, чтобы отобразить данный алгоритм:
1. Компактно
2. Без цикла.

Автор:  Владимир Паронджанов [ Понедельник, 30 Декабрь, 2019 18:46 ]
Заголовок сообщения:  Re: Ожидание нескольких событий в ДРАКОН-схеме

Степан Митькин писал(а):
Будет новая макроикона "Ожидание нескольких событий", см. её внешний вид в первом сообщении. Я подготовлю формальный чертёж позже.
Название макроиконы "Ожидание нескольких событий" приемлемо.

Но её внешний вид в первом сообщении неясен.
Непонятно: входит ли икона Простой ввод в состав макроиконы?

Если не входит, то другой вопрос: должна ли икона Простой ввод предшествовать макроиконе?
Или не должна?

Ждем обещанный формальный чертёж данной макроиконы

Автор:  Степан Митькин [ Понедельник, 30 Декабрь, 2019 20:51 ]
Заголовок сообщения:  Re: Ожидание нескольких событий в ДРАКОН-схеме

Владимир Паронджанов писал(а):
Ждем обещанный формальный чертёж данной макроиконы

Вот формальный чертёж макроиконы "Ожидание нескольких событий"
Вложение:
ozh.png
ozh.png [ 2.94 КБ | Просмотров: 12601 ]


Перед этой макроиконой может стоять любая другая икона: действие, таймер, вывод и т.п.

Переделанный алгоритм Управление двигателями
Вложение:
upr-dv.png
upr-dv.png [ 29.59 КБ | Просмотров: 12601 ]

Автор:  LKom [ Вторник, 31 Декабрь, 2019 08:48 ]
Заголовок сообщения:  Re: Ожидание нескольких событий в ДРАКОН-схеме

Необходимость в блоке "Ожидание нескольких событий" не является очевидной.

В графика блока использованы иконы с иной функциональностью.
Предлагаются умолчания которые будут иметь частные применения.
Наглядность Дракона, а это основное требование, уменьшится.
---
При событийно-ориентированном программировании предусмотрено использование процедур обработчиков событий.
Для визуализации процедур обработчиков событий в ИС Драконе предусмотрена икона Событие, присоединяемая к иконе Заголовок.

Для ожидания события в Драконе предусмотрена икона Синхронизатор присоединяемая ко многим иконам.

Автор:  Степан Митькин [ Вторник, 31 Декабрь, 2019 10:00 ]
Заголовок сообщения:  Re: Ожидание нескольких событий в ДРАКОН-схеме

LKom писал(а):
При событийно-ориентированном программировании предусмотрено использование процедур обработчиков событий.
Для визуализации процедур обработчиков событий в ИС Драконе предусмотрена икона Событие, присоединяемая к иконе Заголовок.

Здесь стоит другая задача:

Не разрывать поток выполнения процедурами-обработчиками.
Обеспечить слитное и зрительно целостное представление алгоритма.

LKom писал(а):
Для ожидания события в Драконе предусмотрена икона Синхронизатор присоединяемая ко многим иконам.

Не могли бы вы, LKom, нарисовать дракон-схему "Управление двигателями" с иконой Синхронизатор?
Чтобы ваш довод не был слишком абстрактным.

Автор:  LKom [ Вторник, 31 Декабрь, 2019 10:36 ]
Заголовок сообщения:  Re: Ожидание нескольких событий в ДРАКОН-схеме

Вложение:
Событие.png
Событие.png [ 5.63 КБ | Просмотров: 12581 ]

Автор:  Степан Митькин [ Вторник, 31 Декабрь, 2019 11:00 ]
Заголовок сообщения:  Re: Ожидание нескольких событий в ДРАКОН-схеме

Спасибо, LKom.
Какие проблемы есть у этой схемы?

1. Слишком много места по вертикали и горизонтали. Есть икона Выбор и икона Синхронизатор. Желательно от них избавиться.
2. Икона Выбор и Синхронизатор содержат ключевые слова "Событие" и "Ожидание события". Хотелось бы обойтись без ключевых слов на дракон-схемах.
Пусть иконы содержат существенную информацию.

А вот тот же алгоритм с применением макроиконы "Ожидание нескольких событий"
Вложение:
20191231084833.png
20191231084833.png [ 13.24 КБ | Просмотров: 12578 ]


Плюсы этой схемы:
1. Меньшая высота.
2. Гибкость. Если событие одно, а не несколько, то это легко изобразить без избыточности и без перехода на другие иконы.

Вот так:
Вложение:
20191231085044.png
20191231085044.png [ 11 КБ | Просмотров: 12578 ]

Автор:  LKom [ Вторник, 31 Декабрь, 2019 11:09 ]
Заголовок сообщения:  Re: Ожидание нескольких событий в ДРАКОН-схеме

Степан Митькин писал(а):
1. Слишком много места по вертикали и горизонтали. Есть икона Выбор и икона Синхронизатор. Желательно от них избавиться.
В Драконе ничего не говорится об экономии места в ущерб наглядности.
Икона Синхронизация имеет назначение: перейти в ожидание до наступления события.
Не надо избавляться от икон с заданной функциональностью. Не следует устраивать зоопарк надуманных икон.
Степан Митькин писал(а):
2. Икона Выбор и Синхронизатор содержат ключевые слова "Событие" и "Ожидание события". Хотелось бы обойтись без ключевых слов на дракон-схемах.
Пусть иконы содержат существенную информацию.
Это не ключевые слова, в Драконе их нет. Пишите свой существенный текст.
Степан Митькин писал(а):
2. Гибкость. Если событие одно, а не несколько, то это легко изобразить без избыточности и без перехода на другие иконы.
Используйте икону Вопрос или присоедините Синхронизатор к иконе обрабатывающей событие (Действие, Вставка).

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

Автор:  Владимир Паронджанов [ Вторник, 31 Декабрь, 2019 12:47 ]
Заголовок сообщения:  Re: Ожидание нескольких событий в ДРАКОН-схеме

LKom писал(а):
Пишите свой существенный текст.

LKom писал(а):
Вложение:
Событие.png

Изображение

Просьба пояснить.
Что конкретно следует писать (какой существенный текст) в иконе Синхронизатор вместо слов "Наступило событие"?
— Событие А
— Событие Б
— или какой-то иной текст?

Автор:  LKom [ Вторник, 31 Декабрь, 2019 13:56 ]
Заголовок сообщения:  Re: Ожидание нескольких событий в ДРАКОН-схеме

Я не знаю что писать, не регламентировано. Пишите существенную для вас информацию.

К примеру:
"Ожидание команды" или "Команда".
"Ожидание сообщения" или "Сообщение".
"Ожидание события" или "Событие".
"Часы = А+10 секунд". Здесь А - текущее время зафиксированное иконой Таймер в переменной А.
"Ожидание полночи" или "Полночь".

Пишите о том, что обязательно наступит и выполнение алгоритма продолжится.
Пишите то, что Вы и ваши читатели однозначно поймут.

Автор:  Владимир Паронджанов [ Вторник, 31 Декабрь, 2019 21:03 ]
Заголовок сообщения:  Re: Ожидание нескольких событий в ДРАКОН-схеме

LKom писал(а):
Я не знаю что писать, не регламентировано. Пишите существенную для вас информацию.

К примеру: .................

Спасибо, LKom.

Неясно, что значит "не регламентировано". Ведь речь идет о программировании? Или нет?

Вы писали:
Изображение

Правильно ли вас понял? См. картинку внизу.
Или неправильно?
Вложение:
Событие по LKom.png
Событие по LKom.png [ 28.99 КБ | Просмотров: 12557 ]

Автор:  Степан Митькин [ Среда, 01 Январь, 2020 12:07 ]
Заголовок сообщения:  Re: Ожидание нескольких событий в ДРАКОН-схеме

Владимир Паронджанов писал(а):
Изображение

Правильно ли вас понял? См. картинку внизу.
Или неправильно?


Неправильно. На вашей схеме, Владимир Даниелович, последовательно идёт ожидание События А, затем События Б и потом События В.

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

Автор:  Владимир Паронджанов [ Среда, 01 Январь, 2020 12:22 ]
Заголовок сообщения:  Re: Ожидание нескольких событий в ДРАКОН-схеме

Степан Митькин писал(а):
Неправильно. На вашей схеме, Владимир Даниелович, последовательно идёт ожидание События А, затем События Б и потом События В.

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

Степан, я с вами полностью согласен. Я сам думаю точно так же, как и вы.

Цель моего сообщения проста.
Я пытаюсь понять, что именно предлагает уважаемый LKom
Мне, к сожалению, не удалось понять.

LKom, вы писали
Изображение
Неясно, что изображено на этой схеме.
Непонятно, как она работает.

Автор:  LKom [ Среда, 01 Январь, 2020 13:41 ]
Заголовок сообщения:  Re: Ожидание нескольких событий в ДРАКОН-схеме

Элементарно просто, смотрите схему:

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

Использован блок Переключателя с Синхронизатором, функциональность расширена в части синхронизации с событиями.
Вложение:
БлокСинхронизаторСПереключателем.png
БлокСинхронизаторСПереключателем.png [ 15.78 КБ | Просмотров: 12515 ]

Страница 1 из 4 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/