DRAKON.SU

Текущее время: Пятница, 19 Апрель, 2024 08:17

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 66 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
СообщениеДобавлено: Воскресенье, 29 Декабрь, 2019 14:49 
Аватара пользователя

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

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

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 29 Декабрь, 2019 15:20 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5848
Откуда: Москва
Степан Митькин писал(а):
В языке ДРАКОН отсутствует лаконичное средство для выражения такой ситуации, и это недостаток языка, на который указывают пользователи ДРАКОНа.

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 29 Декабрь, 2019 16:57 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1357
Рисование без правил, произвольное.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 29 Декабрь, 2019 20:03 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
Владимир Паронджанов писал(а):
Среднюю горизонтальную линию лучше сделать двойной

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 29 Декабрь, 2019 20:36 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5848
Откуда: Москва
Степан Митькин писал(а):
Нельзя двойную линию. Будет выглядеть как параллельное исполнение, в котором все ветки обязательны к исполнению. А здесь будет выполнена одна ветка, как в случае с иконой Вариант.

Хорошо.

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

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

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 30 Декабрь, 2019 15:11 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
Владимир Паронджанов писал(а):

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

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

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

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 30 Декабрь, 2019 15:30 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
Для чего нужна макроикона Ожидание нескольких событий?

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

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 30 Декабрь, 2019 18:46 

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

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

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 30 Декабрь, 2019 20:51 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
Владимир Паронджанов писал(а):
Ждем обещанный формальный чертёж данной макроиконы

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


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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 31 Декабрь, 2019 08:48 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1357
Необходимость в блоке "Ожидание нескольких событий" не является очевидной.

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 31 Декабрь, 2019 10:00 
Аватара пользователя

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

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

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

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 31 Декабрь, 2019 10:36 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1357
Вложение:
Событие.png
Событие.png [ 5.63 КБ | Просмотров: 8615 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 31 Декабрь, 2019 11:00 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
Спасибо, LKom.
Какие проблемы есть у этой схемы?

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

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


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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 31 Декабрь, 2019 11:09 

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 31 Декабрь, 2019 12:47 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5848
Откуда: Москва
LKom писал(а):
Пишите свой существенный текст.

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

Изображение

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 31 Декабрь, 2019 13:56 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1357
Я не знаю что писать, не регламентировано. Пишите существенную для вас информацию.

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 31 Декабрь, 2019 21:03 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5848
Откуда: Москва
LKom писал(а):
Я не знаю что писать, не регламентировано. Пишите существенную для вас информацию.

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

Спасибо, LKom.

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

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 01 Январь, 2020 12:07 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
Владимир Паронджанов писал(а):
Изображение

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


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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 01 Январь, 2020 12:22 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5848
Откуда: Москва
Степан Митькин писал(а):
Неправильно. На вашей схеме, Владимир Даниелович, последовательно идёт ожидание События А, затем События Б и потом События В.

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

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

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 01 Январь, 2020 13:41 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1357
Элементарно просто, смотрите схему:

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

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 66 ]  На страницу 1, 2, 3, 4  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2024, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB