DRAKON.SU

Текущее время: Среда, 27 Март, 2024 08:20

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




Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Java try/catch/finally в языке ДРАКОН
СообщениеДобавлено: Суббота, 07 Ноябрь, 2015 03:45 

Зарегистрирован: Четверг, 02 Июль, 2015 13:47
Сообщения: 45
Дорогие участники форума,

Как представить в Драконе оператор Java try {...} catch (Exception1 e1) {...} catch (Exception2 e2) {...} finally {...} ?

Спасибо!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Java try/catch/finally в Драконе
СообщениеДобавлено: Воскресенье, 08 Ноябрь, 2015 01:11 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Olegar писал(а):
Как представить в Драконе оператор Java try {...} catch (Exception1 e1) {...} catch (Exception2 e2) {...} finally {...} ?

На сколько я знаю, устоявшегося мнения как отображать try - нет.
Могу предложить такой вариант:
Вложение:
try.png
try.png [ 7.28 КБ | Просмотров: 21451 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Java try/catch/finally в Драконе
СообщениеДобавлено: Воскресенье, 08 Ноябрь, 2015 09:21 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5845
Откуда: Москва
Olegar писал(а):
Как представить в Драконе оператор Java try {...} catch (Exception1 e1) {...} catch (Exception2 e2) {...} finally {...}
Олег, а как бы Вы сами ответили на свой вопрос?

Изложите Ваш вариант. Не бойтесь ошибиться.

Эдуард прав. Вопрос нуждается в обсуждении.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Java try/catch/finally в Драконе
СообщениеДобавлено: Воскресенье, 08 Ноябрь, 2015 22:21 

Зарегистрирован: Четверг, 02 Июль, 2015 13:47
Сообщения: 45
Спасибо, Эдуард. Блоки catch по смыслу хорошо представляются иконой Вариант. Нужны ли параллельные линии и стрелки схождения?

Владимир Даниелович, вот что у меня получилось, для первого примера с https://docs.oracle.com/javase/tutorial ... ether.html


Вложения:
trycatchfinally.png
trycatchfinally.png [ 12.63 КБ | Просмотров: 21420 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Java try/catch/finally в Драконе
СообщениеДобавлено: Понедельник, 09 Ноябрь, 2015 00:21 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5845
Откуда: Москва
Олег, в каком графическом редакторе Вы это нарисовали?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Java try/catch/finally в Драконе
СообщениеДобавлено: Понедельник, 09 Ноябрь, 2015 11:37 

Зарегистрирован: Воскресенье, 04 Ноябрь, 2007 23:01
Сообщения: 511
Были у нас эксперименты. Можно попробовать так:
Вложение:
drakon_ext_trycatchfinally.png
drakon_ext_trycatchfinally.png [ 22.64 КБ | Просмотров: 21390 ]
Секция "Entering try statement" становится ненужной, т.к. стоит в начале ветки. Если в задаче много веток, то можно поставить соединители и вынести обработку ошибок на отдельный лист.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Java try/catch/finally в Драконе
СообщениеДобавлено: Понедельник, 09 Ноябрь, 2015 18:53 

Зарегистрирован: Четверг, 02 Июль, 2015 13:47
Сообщения: 45
Спасибо, прекрасная идея использовать силуэт: получается на каждый из блоков try,catch,finally своя ветка. Можно ли так представить вложенные try?
Представляю вариант на русском в классическом синтаксисе силуэта, полагаясь на ключевые слова как достаточные для визуализации специфической семантики Java.


Вложения:
write list russian.png
write list russian.png [ 15.23 КБ | Просмотров: 21365 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Java try/catch/finally в Драконе
СообщениеДобавлено: Понедельник, 09 Ноябрь, 2015 19:20 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5845
Откуда: Москва
У меня формальные замечания

1. Удалить ветку Конец, она не нужна.

2. Ветку finally перенести направо и сделать крайней правой.

3. У ветки finally удалить икону Адрес и заменить ее на икону Конец.

4. Две ветки catch являются входными (а изображены как стандартные). Так нельзя. Надо ввести ОТЛИЧИТЕЛЬНЫЙ признак, что это входная ветка, а не стандартная.

Как это сделать?
Рэйлвэй предложил добавить сверху икону Заголовок.
Олег не согласился и убрал ее.
Я предлагаю нечто среднее. Залить икону Имя ветки цветом.

Каким цветом? Красным? Слишком ярко. Будет раздражать.
Может быть, розовым?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Java try/catch/finally в Драконе
СообщениеДобавлено: Понедельник, 09 Ноябрь, 2015 19:47 

Зарегистрирован: Четверг, 02 Июль, 2015 13:47
Сообщения: 45
Спасибо! Прилагаю исправленный вариант.


Вложения:
write list russian 2.png
write list russian 2.png [ 14.73 КБ | Просмотров: 21351 ]


Последний раз редактировалось Olegar Понедельник, 09 Ноябрь, 2015 20:39, всего редактировалось 3 раз(а).
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Java try/catch/finally в Драконе
СообщениеДобавлено: Понедельник, 09 Ноябрь, 2015 19:54 

Зарегистрирован: Воскресенье, 04 Ноябрь, 2007 23:01
Сообщения: 511
Olegar писал(а):
..вариант на русском в классическом синтаксисе силуэта, полагаясь на ключевые слова как достаточные для визуализации специфической семантики Java.
В каждой ветке catch должен присутствовать список веток. Если в проекте будет больше одной охраняемой ветки, станет непонятно, к чему каждый catch относится. У меня он сделан "ловушкой", совмещенной с иконкой "имя ветки".

Если для Вас важен базовый синтаксис Дракона, вставьте "полку" сразу после каждой "catch". Наверху полки напишите "CATCH", а внизу разместите список с именами охраняемых веток.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Java try/catch/finally в Драконе
СообщениеДобавлено: Понедельник, 09 Ноябрь, 2015 21:44 

Зарегистрирован: Четверг, 02 Июль, 2015 13:47
Сообщения: 45
Пример аналогичного примитива.


Вложения:
write list primitive.png
write list primitive.png [ 14.46 КБ | Просмотров: 21337 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Java try/catch/finally в Драконе
СообщениеДобавлено: Понедельник, 09 Ноябрь, 2015 23:43 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
Olegar,

что используете для рисования дракон-схем?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Java try/catch/finally в Драконе
СообщениеДобавлено: Вторник, 10 Ноябрь, 2015 00:26 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
Теория - http://src-code.net/try-catch-i-finally-java/

Вложение:
JavaTryCatchFinally.png

Фрагмент Дракон-схемы с обработкой исключения.

С ИС Дракон все элементарно просто.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Java try/catch/finally в Драконе
СообщениеДобавлено: Вторник, 10 Ноябрь, 2015 00:31 

Зарегистрирован: Четверг, 02 Июль, 2015 13:47
Сообщения: 45
Я использую идеальный редактор Дракон схем, описанный в книгах Владимира Паронджанова :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Java try/catch/finally в Драконе
СообщениеДобавлено: Вторник, 10 Ноябрь, 2015 00:35 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
Т.е., каменным топором высекаите в Корелдраве?

Рекомендую ИС Дракон.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Java try/catch/finally в Драконе
СообщениеДобавлено: Вторник, 10 Ноябрь, 2015 01:15 

Зарегистрирован: Четверг, 02 Июль, 2015 13:47
Сообщения: 45
LKom, давайте посмотрим что получается при вашем подходе. Заметьте, я изменил маршрут блоков catch в шампуре на главный - безошибочный с помощью рокировки.


Вложения:
write list LKom.png
write list LKom.png [ 14.88 КБ | Просмотров: 21312 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Java try/catch/finally в Драконе
СообщениеДобавлено: Вторник, 10 Ноябрь, 2015 07:33 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
Olegar, можно и так. Будет больше соответствовать последовательному написанию catch предложений в Java коде.

Конструкцию try/catch/finally не следует разбивать на несколько веток схемы Силуэт, т.к. теряется визуальная целостность try/catch/finally.

Т.к. инструкции в try и finally разнесены по нескольким иконам, то надо указать положение нижних границ - } .

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

----

Вложение:
СнимокCatch.PNG

Для пользователей хорошо знакомых с языком Java, можно упростить отображение предложения Catch до одной иконы Действие.


Последний раз редактировалось LKom Вторник, 10 Ноябрь, 2015 10:19, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Java try/catch/finally в Драконе
СообщениеДобавлено: Вторник, 10 Ноябрь, 2015 10:10 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5845
Откуда: Москва
..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Java try/catch/finally в Драконе
СообщениеДобавлено: Вторник, 10 Ноябрь, 2015 12:30 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
Olegar писал(а):
Как представить в Драконе оператор Java try {...} catch (Exception1 e1) {...} catch (Exception2 e2) {...} finally {...} ?

Я тоже задался этим вопросом. Но ничего путного придумать не смог.
В итоге я помещал всю конструкцию try { } catch { } внутри иконы "Действие".

Почему возникло это затруднение?
Из-за глубинной несовместимости исключений и ДРАКОНА.

Исключения подразумевают невидимые пути через алгоритм. В интернете полно ругани относительно пользы и вреда исключений.
Но несомненным является наличие этих невидимых путей.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Java try/catch/finally в Драконе
СообщениеДобавлено: Вторник, 10 Ноябрь, 2015 13:12 

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

Степан Митькин писал(а):
В ДРАКОНе же, напротив, особый упор делается на видимость всех путей.
Это верно.

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

Кто отсчитывает длительность паузы (например, 23 секунды)?
Прикладная программа (в которой имеется икона Пауза) или ОСРВ?
Эту операцию выполняет ОСРВ.

Между ОСРВ и программами реального времени существует огромное количество передач управления. Если все их показать, дракон-схема превратится в хаос. Она станет нечитаемой.

Предложение показать эти связи можно было бы назвать эргономическим безумием или эргономическим вредительством. Такое предложение сделало бы работу с дракон-схемой совершенно невозможной.

Это говорит о том, что ситуация с видимостью — невидимостью очень непростая. Большое спасибо Степану Митькину, что привлек внимание к этой сложнейшей проблеме и помог ее распутать.

Отсюда следуют

ВЫВОДЫ

1. В большинстве случаев в ДРАКОНе особый упор делается на видимость всех путей по передаче управления (как учит Степан Митькин. Спасибо, Степан за хорошую формулировку).

2. В системах реального времени особый упор делается на СМЫСЛЕ программы. Поэтому связи (по передаче управления) между программой и ОСРВ нарочно делаются НЕВИДИМЫМИ, чтобы не замусоривать зрительную сцену дракон-схемы.


Ситуация с исключениями для меня не ясна. Спасибо Олегу, что привлек внимание к этой теме.

Просьба к Степану

1. Запихнуть все в одну икону Действие — это предложение уязвимо для критики.

2. Большая просьба указать конкретные недостатки, которые Вы видите в дракон-схемах в данном теме.


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

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


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

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


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

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