Владислав Жаринов писал(а):
Первое - изломы дуг. Что хорошо у В.Д. - дуги следования всегда звенья вертикалей (ну, здесь - горизонталей будут).
А это и подразумевает "линейчатость" вершин - а не точечность, как в Р-схемах.
Что открывает возможность нагрузить (разметить) узел достаточно длинным текстом - раз изломы недопустимы, то промежутки между вертикалями обычно будут достаточно велики.
Второе - "слепленность" дуг. Узлы "многие ко многим" надо раскрывать через комбинации "один ко многим" и "многие к одному". ...
Соглашусь, и с такими эффектами я и пытаюсь бороться. Вроде как, потенциал есть. Вот картинка из книги Вельбицкого и др. "Технологический комплекс производства программ ...", с.60:
Вложение:
velb_scheme_txt.PNG [ 58.25 КБ | Просмотров: 14275 ]
Вроде, переварить подписи более-менее можно. Ранее я показывал очередную тренировку:
В общем, как-то нужно не допускать ощущения, что вместо подписанного графа мы имеем текст, помещенный в какую-то таблицу. Схемка из прошлого поста (с табличками) наводит на мысли попробовать таблицы с "волнистыми" линиями в стиле IDEF..., или без внешних рамок, что-то вроде:
Вложение:
r_tabl.PNG [ 14.61 КБ | Просмотров: 14275 ]
Одним словом, пока рано "сдаваться", но силы утихают, что-то
.
Владислав Жаринов писал(а):
Кстати, для схем данных это требование нормализации на определённом этапе... а там математики (начиная с Кодда и даже раньше) поработали уже неплохо...
идёт это сейчас и для схем управления... по крайней мере, в рамках теории потоков работ на базе сетей Петри... Но вот как это делать для Р-схем как графов, двойственных к блок-схемам (в том смысле, что семантика вершин и рёбер меняется местами) - вопрос отдельный...
Может быть, есть какая-нибудь ссылочка по поводу теории потоков работ на базе сетей Петри в рамках "реляционных отношений" (и не только) ?
Владислав Жаринов писал(а):
И вот здесь третье - возможность той самой "жизни без графики вершин". При обычной семантике можем эту графику снять - что будет, обсуждалось здесь: viewtopic.php?p=73919#p73919. Дуги либо оставляем все, либо дуги естественного перехода заменяем смежностью записей вершин (тогда границы записей д.б. очевидны - у Вас это таблицы).
При двойственной же семантике с читаемостью хуже - придётся заменять рёбра таблицами, оставляя графику вершин (назначение которых не всегда очевидно).
Кстати, у Р-технологии ноги растут из автоматного программирования, и при снятии графики получается такая картина (граф-выдержка из той же книги Вельбицкого, со стр. 23):
Вложение:
velb_kvadr_ur.PNG [ 347.63 КБ | Просмотров: 14275 ]
Программа сводится к таблице из четырех колонок: первая и последняя - метки алгоритма, где последняя колонка задаёт переходы, вторая - предикаты и третья - действия. Так что, SQL-запросами можно "накрыть" не только декларативную часть (если она будет сведена к таблицам), но и алгоритмические "блок-схемы"
(кстати, вполне реальный потенциал).
Владислав Жаринов писал(а):
И ещё раз - если уж мы показываем "нерасшифрованными" взаимодействия совместно протекающих процессов на схеме - то это схема потоков работ. И вряд ли оправданно детализировать алгоритмы отдельных работ на той же схеме - нужно выносить на схемы-вставки, соответствующие работам... Потому что такие же схемы нужно будет составлять и для узлов координации - на базе алгоритмов реализации тех или иных механизмов взаимодействия (семафоров, разделяемых переменных, рандеву)...
Да-да, именно так и вынуждены делать. В своих последних примерчиках я тренировался, прежде всего, "впихнуть" содержательный текст, без него не всегда обойдёшься. Иногда приходится использовать и что-то вроде "областей", т.е. раскрывать не только один "квадратик". Кстати, я обратил внимание, что Вы используете и "туннели" (видимо, из IDEF...), тоже взял на заметку себе.
Владислав Жаринов писал(а):
С атрибутивной, если точнее... которая в недекларативной схеме (доалгоритмическая тоже будет императивной в смысле классификации программно строго формализованного отчуждаемого знания) всё-таки остаётся недекларативной... хотя может частично обеспечивать связывание с другими родами знания... система д.б. целостной...
Как раз я и подразумевал близость Р-схем к декларативным табличным данным, они и внешне "похожи" и связать их между собой "доктор прописал как".
Владислав Жаринов писал(а):
Усов уже напоминал, как это предолевается - минимизацией состава атрибутов, вписанных в узел - с чем согласен.
Предикаты же в Р-схеме, отражающие суть дела, при той же точности будут не проще...
Я под компактностью в Р-схемах подразумевал то, что в них требуется меньше "квадратиков", т.е. нет явных узлов развилки (вопрос, выбор), или разделения/слияния (при необходимости, всё это можно задать отдельными структурами). Но вопрос наглядности пока не решён, особенно, Вы верно заметили, в структурах "многие ко многим".
Владислав Жаринов писал(а):
PSV100 писал(а):
...а если ещё стандарт ДРАКОНа разбавить рядом дополнительных "бонусов" как здесь, например, то эргономика окажется под вопросом. Реальной такой практики у меня нет, так что утверждать что-то однозначно я не могу (наглядность Р-схем в подобных условиях тоже неизвестна).
Это возникло из чисто практической попытки описать, скажем, человеко-машинную систему в этой задаче... по ссылке как раз объяснены основания.
Да, конечно, причины таких решений очевидны, и я завидую Вашей изобретательности
Я тут оценил, сколько "стрелочек" нужно, если использовать "мульти-шампура":
Вложение:
strel.PNG [ 17.98 КБ | Просмотров: 14275 ]
фигуры 3 и 4 - для веточных циклов вместо "чёрточки" внизу, последние три - для "мульти-шампуров". К этому можно добавить "соединители":
(здесь не хватает пунктирных линий). При этом ещё возможна и горизонтальная ориентация всех стрелок, если ещё и синт-силуэты использовать. Одним словом, если собрать синтаксис граф-языка, правила, тезисы для построения схем и пр., то уже есть опасность получить дисциплину "Программирование на ... для профессионалов", и даже намечается "Как нельзя программировать ..."
Над упрощением уже нужно думать.
Спасибо за конструктивность.