Д Р А К О Н О Г Р А Ф И К А
Вкратце рассмотрим, на чём основан подход создателя техноязыка и как его можно развить. Начнём с оформления данных, не структурированных так же строго, как содержание алгоритма или техпроцесса.
Умеренно быстрое начало | Визуализация знаний: эргономичность и формальность
Содержание
Метод Когнитивный Стиль: визуальное оформление
Графит-метод: визуальное конструирование
Неформальное введение в базис(шампур-)метод
Метод Когнитивный Стиль: визуальное оформление
Для эргономичной визуализации произвольных описаний (математических и пр.) создатель техноязыка предложил метод «Когнитивный стиль», независимый от степени абстрактности и когнитивного качества основного языка описания.
КогниСтиль служит средством визуализации произвольных (неформальных и неалгоритмических) знаний. Метод основан на применении вспомогательных блоков. Основные приемы описаны в /1, Гл.19/. Анализируя их, ключевые идеи КогниСтиля можно определить как:
зонирование диосцены путём разного оформления её частей и/или наложения на неё ограничителей зоны; в результате содержание сцены оказывается структурированным в соответствии с некоторой информационной моделью, и сцена легко "читается", подобно хорошо оформленному пульту оператора;
введение дополнительных пояснений и оценок основного содержания диосцены, которые максимально полно передают концептуальную модель, т.е. представление автора сцены о её интерпретации и применении (в т.ч. другими людьми);
установление дополнительных связей между зонами – служит для выражения как информационной, так и концептуальной модели, позволяя проследить содержание диосцены в динамике (например, ход математических преобразований).
Применение Когни Стиль организует документ как систему графики и текстов.
Очевидно, чем лучше структурирована информация и чем яснее изложена концепция диосцены, тем эффективнее передаётся то, что хотел сказать её автор. Это значит, что другой человек, владеющий данным методом, сможет быстрее и точнее извлечь из данных диосцены знания, т.е. понять её смысл.
По материалам из /1/ составлен алфавит КогниСтиль, приводимый в п. 1.2.1 Приложения 1 (также с краткими описаниями элементов).
В данном курсе КогниСтиль развит и допускает диофильмы, или последовательности диосцен-кадров, имеющих графические элементы указания взаимосвязи. Диофильмы можно использовать для удобства последовательного изложения материала либо для представления по частям содержания, не входящего целиком на один носитель данного формата. Последнее, как справедливо указано в /1/, эргономически неоправданно, однако в случаях, когда неудобно увеличивать формат носителя, а содержание не структурируется иерархически, приемлемо.
Графит-метод: визуальное конструирование
Чтобы отразить динамику состояния произвольных объектов (и, в частности, визуализировать операции сочинения визуалов), здесь предлагается графит-метод (от ГРАФика И Текст). Центральная идея метода – показать формально сочинение произвольных структур из заранее заданных элементов, подобно тому, как визуализируется сборка физических систем из деталей и узлов. Она раскрывается через две ключевых идеи:
1. Определять содержание текстоэлементов визуальных описаний на одном из известных метаязыков. В предлагаемой версии метода выбран РБНФ-язык в редакции, описанной в п/п 1.1.1.1 Приложения 1.
2. Визуализировать базовый набор операций конструирования. Предлагается два способа для этого. Во-первых, можно непосредственно показывать операции из базового набора; так делается на сборочных чертежах и схемах в конструкторской документации уже много лет. Во-вторых, можно рассматривать элементы как лексические единицы некоего языка и выразить синтаксис этого языка визуализацией одного из известных метаязыков описания синтаксиса.
По некоторым представлениям, базовые операции можно свести к прибавлению/вычитанию элементов и преобразованию отношений (взаимосвязей) между ними.
Итак, знаки и конструкции графит-метода управляют связанными знаками и конструкциями визуальных моделей.
При любом способе важную роль играет т.н. эллипсирование – выделение повторяющихся частей конструкции, для которых можно подробно показывать одну часть-образец, а остальные вхождения обозначать сокращённо. Это также давно используется в конструкторской документации. Графические сокращения в настоящее время определены в п. 1.2.3 Приложения 1.
По первому способу предлагается визуализировать операции как диоструктурные операторы (диостропы), приведённые в п/п 1.2.1.3 Приложения 1. Основные правила :
Объекты диостропов располагаются как внутри контура последних, так и вне его; в последнем случае показывается их участие в той или иной операции связями-отношениями.
Приложение операций показывается направляющими линиями (обычно кривыми со стрелкой); они идут от выбранных на объекте реперных точек к точкам стыка на структуре.
Возврат направляющих в некоторые места самого объекта означает последовательное повторение операции (прибавления того же элемента после уже прибавленных); если число повторов ограничено, то это специально указывается пояснениями.
Как правило, для абстрактных систем аксиоматически даются начальные формы-заготовки для создания тех или иных классов (подмножеств) структур.
По второму способу используются расширенные БНФ над графоэлементами и подсхемами, визуализируемые с участием знаков РБНФ-графит (см. п/п 1.3.1.4 Приложения 2).
Эллипсирование оформляется знаками-ограничителями. Текстом ограничителей могут являться РБНФ-выражения, которые тогда относятся к ограничиваемым элементам (подструктурам) и тем самым заменяют знаки РБНФ-графит.
Графит-метод также используется для описания состава тех или иных сущностей предметной области.
Неформальное введение в базис-(шампур-)метод
Пользуясь элементами графит-метода, предварительно раскроем суть базис-метода — но тоже по-своему, иначе, чем при определении метода как исчисления.
Формально базис-метод описан в /1/ и реализован в тезисах стандарта языка. Здесь мы изложим его идеи кратко и нестрого, имея в виду показать и ручное составление дракон-схем.
Далее будем пользоваться предварительными результатами «исправления имён» ДРАКОН-методологии, изложенными на этой странице.
Некоторые другие термины мы введём/заменим по ходу данного подпункта.
Исторически для описания деятельности выявлены три класса базовых алгоритмических структур управления – следования, ветвления и циклы. Для них были определены конструкции (подграфы) граф-схем в минимальном базисе т.н. бинарных (булевых) ГСА, или блок-схем и структурные расширения этого базиса. Базис-метод как теоретическая основа ДРАКОНа несколько иначе трактует структуру алгоритма. Из эргономических соображений и ГСА в техноязыке (дракон-схемы) изображаются иначе, чем в минимальном базисе.
По этому методу любой алгоритм визуализируется следующим образом. Дан алфавит техноязыка (множество вершин, в т.ч. представляющих операторы) и словарь (множество подграфов-макровершин). В совокупности они образуют лексику техноязыка. Лексические единицы оформлены как атомы — единицы алфавита исчисления схем. Рёбра графа атома (все или некоторые) определены как доступные (безусловно или условно) для вложения других атомов (любых или определённых); в терминах шампур-метода такое ребро понимается как разделённое вершиной — точкой ввода — на два подребра (мы называем их подзвеньями).
В составе атома мы будем выделять ядро — часть схемы атома внутри крайних точек ввода.
В шампур-методе ограничение круга атомов, доступных для вложения в точку ввода, не предполагается; это одна из оригинальных особенностей графит-метода.
Кроме лексики, заранее даны исходные формы дракон-схем. Им свойственны общие черты:
операторы связаны соединительными линиями и упорядочены сверху вниз по вертикали, называемой шампуром; шампур всегда ограничен снизу и сверху особыми вершинами;
исполнение по шампуру начинается с оператора, лежащего под верхней границей и завершается по достижении нижней границы; по завершении текущего оператора происходит естественный переход к лежащему ниже по вертикали;
Существуют два варианта исходных форм (заготовок) дракон-схем:
примитив – имеет единственный шампур, причём его границы являются одновременно началом и концом всего визуала;
силуэт – имеет два шампура; они линейно упорядочены, причём нижняя граница у последнего (в заготовке – второго) шампура есть конец для всего визуала, а у предыдущего (в заготовке – первого) шампура – безусловный переход на начало следующего.
Подробно примитив и силуэт мы рассмотрим позднее (см. п/р 2.2). Здесь покажем заготовки:
Заготовки дракон-схем
Шампур изначально содержит один участок (звено). Хотя операторов в нём ещё нет, но с точки зрения базис-метода он уже не пустой; здесь подготовлено место для ввода первой вершины (или макровершины) в виде особой вершины – точки ввода. Можно считать её местом разрешённого разрыва звена.
Отдельные элементы силуэта можно сгруппировать логически; на заготовке мы выделили, говоря издательским языком, «шапку» и «подвал» (то же самое сделано для переключающих макроикон, см. п. 3.5.1 Приложения 2). По аналогии с правилами составления физических схем, линия, в которую «втекают» все пути выполнения веток (своего рода «общий провод» схемы), названа нами «землёй».
Точки ввода бывают нейтральными и критическими (см. определения на схеме); на реальных дракон-схемах их не показывают, но подразумевают.
При наличии хотя бы одной вершины, добавленной в точку ввода, будем говорить, что данный шампур нагружен; иначе (если в последовательности вершин есть только точки ввода) будем называть шампур ненагруженным.
Попробуем системно структурировать содержание импер-схемы, получаемое данным методом.
Прежде всего уточним, что на схеме можно выделить либо структуру (подграф) правильную, подчиняющуюся правилам построения схем, либо произвольную область (подграф, а в предельном случае — схему целиком). Далее нас будут интересовать только правильные структуры.
Содержание шампура (выделенного между вершинами-границами заготовки либо между парой произвольных вершин, лежащих на одной оси) образует сепулька-блок (телесный).
Определение сепулька-блока (как «шампур-блока») дано создателем техноязыка в /1/.
Сепулька-блок, получаемый путём ввода атома, мы можем назвать базис-блоком. По смыслу определений шампур-метода создателем техноязыка базис-блок— то же самое, что структурный макроструктурный блок; видно, что при развёрнутом определении получается тавтология.
Можно говорить, что базис-блок обладает свойством атомарности - сохраняемости по ходу вывода (сочинения) топологии блока как структуры атомов, причём для любого входящего в эту структуру атома:
его вход либо является входом базис-блока, либо связан с выходом другого атома;
его выход либо является выходом базис-блока, либо связан со входом другого атома.
Т.е. можно в любом состоянии представить блок как структуру из атомов (хотя и необязательно тех, что были введены — если применялись также операции «редактирования по выделению», о чём скажем далее).
Поэтому мы также могли бы назвать базис-блок атомарным макроструктурным блоком, но определение «базис» отражает, что такая структура может (при доказательном выводе) представить любую схему деятельности (в частности, структуру маршрутов любой программы).
В силуэте шампур вместе с границами образует т.н. ветку. В ветке содержание шампура называется телом; в примитиве мы также будем называть телом его содержание.
Создателем техноязыка рассматривается переход от примитива к силуэту по различным основаниям. При этом тело примитива разносится на ряд тел веток силуэта. Можно показать, что возможен (и практически требуется) обратный переход, когда тела веток воссоединяются в единое тело примитива.
Макровиопы (слова техноязыка) образуются обязательно с участием операторов условного перехода; как следствие, макровиоп имеет хотя бы две вертикали. Одна вертикаль (идущая по оси входа в развилку) является главной, а остальные (идущие в стороне от этой оси) побочными. Побочные вертикали, не оканчивающиеся петлёй цикла, называют лианами.
Каждая вертикаль в макровиопе, как и в заготовках, содержит точку ввода для вставки другой иконы или макроиконы; за исключением макровиопа 7Д, все они критические.
Если макровиоп вставлен в шампур дракон-схемы (в т.ч. в главную вертикаль другой макровиопа, ранее вставленного в шампур), то главная вертикаль его есть часть шампура схемы.
В связи с этим в дракон-алфавите м.б. выделены следующие типы символов:
Лин-вершина – такой визуальный символ, что он:
имеет один вход и один выход;
по правилам техноязыка образует ядро атома сам по себе.
Структур-вершина – такой визуальный символ, для которого не выполняется хотя бы одно из свойств лин-вершины. При наличии в схеме (сепулька-блоке) таких вершин между началом и концом схемы (входом и выходом сепулька-блока) существует более одного маршрута.
Для упрощения графики в шампур-методе принято, что некоторые типы структур-вершин показываются просто стыком линий в атоме (заготовке), а именно:
соединители — в любых случаях;
разветвители — в «шапках» макровершины Переключатель и заготовки-силуэта.
Для целей структурного и логического анализа следует помнить об этом.
Как следствие, возможны разные типы базис-блоков по внутренней структуре:
Простой базис-блок – структура, в которой присутствуют только лин-вершины; естественным образом они упорядочены линейно (идут цепочкой).
Сложный базис-блок – структура, в которой присутствуют любые типы вершин, включая элементы ветвлений и циклов – развилки, переключатели, петли (в блок-схемах – предикатные и соединительные вершины с линиями обратной и/или прямой связи), причём через каждую вершину проходит хотя бы один путь от входа к выходу. Этот вид структуры более общий; он образуется из структур, содержащих структур-вершины (составных атомов). Также м.б. назван нелинейным.
Структура, полученная путём вложений лексических единиц в точки ввода, м.б. видоизменена путём т.н. операций с лианой - переносом концов (соединительных вершин) в другие места (формально — в точки ввода, считая соединитель за ядро атома) по определённым правилам (в частности, не нарушая топологических запретов).
Результатом операций с лианами будет появление макроструктурного блока нового рода:
Комплекс-блок — структура с одним входом и одним или несколькими выходами, в которой присутствуют любые типы вершин, включая элементы ветвлений и циклов – развилки, переключатели, петли, причём через каждую вершину проходит хотя бы один путь от входа хотя бы к одному из выходов. Комплекс-блок не м.б. представлен только через атомы; поэтому в «классических» терминах его можно назвать также неатомарным. Его структура всегда нелинейна.
Название от англ. complex — сложный1 (т.е. по определению не м.б. простого типа, в отличие от базис-блока). Однако здесь имеется в виду сложность не «физическая» (нелинейность топологии), а логическая — потенциальная запутанность маршрутов даже при избежании пересечений. Эта сложность проявляется и в том, что комплекс-блок не м.б. получен из заготовки только операцией ввода атома.
К этому роду относятся лианный и адресный виды макроблоков (в терминах шампур-метода). Мы будем называть лианный блок неатомарным базис-блоком; адресный в терминах создателя техноязыка можно назвать «нешампур-блоком».
Итак, при различном подразделении содержания на правильные структуры возможны:
сепулька-блоки (атомарные и лианные) или несепулька-блоки (адресные) — относительно числа выходов;
базис-блоки (атомарные) или комплекс-блоки (лианные и адресные) — относительно логической сложности топологии;
линейные (простые базис-блоки) или нелинейные (сложные базис-блоки, комплекс-блоки) — относительно физической сложности топологии.
Здесь отметим, что в гарантоспособной формализации деятельности (в ИТ в узком понимании называемой доказательным, или убедительным, программированием) базис-блока (и операции ввода атома) достаточно для построения структуры деятельности. Однако для этого нужно привлекать всё содержание описываемой деятельности; это одна из главных причин перехода к графит-методу.
Заметим также, что подграф, произвольно выделенный на схеме, также м.б. определён как несепулька-блок.
Наконец, для исключения частей схемы определяется операция удаления в двух вариантах:
специфическом — удаления концов заготовок;
обычном — удаления вершин (макровершин вместе с содержимым их вертикалей).
Оба варианта определены в исходной версии метода.
Заметим, что в этой версии удаление варианта переключателя не определено для случая, когда тело варианта (нелинейное) участвовало в операциях с лианой. Между тем в этом случае д.б. какие-то особенности (возможно, ограничения).
Также можно определить обычные операции «редактирования по выделению» (вырезание, вставку). По сути это уже не операции техноязыка, но и они должны подчиняться базис-методу, если мы хотим сохранить корректность вывода.
Так, если ранее пересаживались лианы, то выделить можно только целый фрагмент схемы, который вместе с новыми связями вертикалей разных макровершин образует базис-блок.
Исходя из сказанного, в общих чертах дракон-схема строится следующим образом.
в шампур(ы) выбранной сочинителем визуала формы последовательно вводятся вершины и/или макровершины;
внутрь макровершин вновь вводятся вершины (макровершины);
к отдельным видам вершин, макровершин, входящих в схему, можно добавлять стандартные блоки (варианты, синхронизаторы), а к силуэту – ветки;
полученная структура также может видоизменяться по определённым правилам.
Порядок операций определяется лишь статусом точек ввода схемы. Построение дракон-схемы в техноязыке считается завершённым (окончательно или промежуточно), когда она не имеет критических точек.
Работу над формально завершённой схемой, конечно же, можно возобновлять по усмотрению сочинителя; эту возможность обеспечивают нейтральные точки ввода в звеньях.
Ввод (добавление) означает следующие изменения структуры исходной формы:
в базис-блоке с ветвлениями и/или циклами (при наличии условных вершин) существуют также одна или более побочных вертикалей, содержание побочной вертикали ветвления выполняется вместо части главной, а цикла – наряду с содержанием главной;
в завершённом силуэте м.б. и более двух шампуров (по стандарту техноязыка – до 16).
Кроме того, на любом этапе построения между соседними лин-вершинами имеются точки ввода, причём хотя бы одна из них нейтральная. Исключением являются иконы в шапке переключателя: между ними лежат не точки ввода, а «гребёнка» из линий и разветвительных вершин (подразумеваемых, но не показываемых, как и соединительные вершины); в этом отношении шапка переключателя подобна шапке силуэта.
Шапку переключателя можно рассматривать как единую мультиразветвительную вершину и аналогично подвал – как единую мультисоединительную вершину.
Ввод в шампур – основная операция базис-метода; подробнее она раскрыта далее на схеме.
Принцип визуального вывода последовательности (построения шампур-блока)
В выборе для вставки макроиконы или лин-вершины, а также очередной точки вставки сочинитель в основном волен; главное – в итоге выполнить условие завершённости дракон-схемы (отсутствие критических точек). Одно мы можем указать точно: если в схему вставлялась хотя бы одна макроикона с критическими точками, то последним шагом для завершения всегда будет вставка лин-вершины (в последнюю критическую точку).
Видоизменение структуры примитива достигается пересадкой лиан – переносами концов (соединителей) по правилам техноязыка.
При видоизменении силуэта можно пересаживать лианы только в пределах «своей» ветки, а также заземлять некоторые лианы – переносить их концы на нижнюю горизонталь петли силуэта (опять же по правилам). Кроме того, м.б. изменен порядок веток – как физический (их позиции в силуэте), так и логический (порядок передачи управления, определяемый совпадением имён начал и концов веток). При этом исходят из следующих правил упорядочения веток (соответствия «физика-логика»):
более правая ветка должна работать (по шампуру) позже всех, находящихся левее;
с конца любого шампура (вертикали) силуэта управление может передаваться на начало того же или предшествующего (более левого) шампура; тогда образуется веточный цикл.
Также и нижняя граница последнего шампура может стать безусловным переходом на начало одного из предшествующих (тогда получаем «зацикленный» алгоритм, т.е. исполняемый бесконечно до прерывания работы исполнителя извне).
Операции с лианами проводятся по определённым правилам (в частности, не нарушая топологических запретов).
Продолжая издательскую аналогию, тела веток можно рассматривать как колонки страницы; к.-л. связи между ними, кроме как через шапку и подвал, в силуэте не допускаются. Для соседних же вариантов переключателя возможны связи через пересаженные лианы.
При видоизменении и примитива, и силуэта м.б. применены операции «редактирования по выделению».
По усмотрению сочинителя некоторые из вершин (макровершин вместе с содержимым их вертикалей) исключаются из схемы, как было описано выше.
Чтобы перестроить всю схему из одной формы в другую (напр. из примитива в силуэт) потребуется взять новую заготовку и перенести (опять-таки обычными командами вырезания/вставки) в её шампур(ы) содержимое прежней заготовки.
Итак, по базис-методу сложные структуры визуалов не строятся из отдельных вершин и линий, а, образно говоря словами главного героя кинокомедии «Служебный роман», «...появляются на свет готовыми работниками с окладом согласно штатному расписанию» :–) для переключателя имеем, так сказать, «вилку оклада» в виде переменного числа вертикалей. Правда, далее этих «работников» следует наделить конкретными «должностными обязанностями», т.е. нагрузить каждую вертикаль хотя бы одной вершиной или макровершиной (при этом в развилке и переключателе допустимо оставить одну из вертикалей ненагруженной) и описать передачи управления (условные и безусловные).
А как быть, когда мы ещё не знаем, как визуализировать очередной сепулька-блок? В этом случае ставим на его место вершину Комментарий; критическая точка ввода тем самым нейтрализуется. Комментарий здесь служит заместителем будущего сепулька-блока; его текст примерно описывает содержание блока (структуру и тексты его будущих вершин), сохраняя на схеме наши соображения по дальнейшей визуализации этой части алгоритма.
Здесь мы использовали для обозначения блоков графоэлементы, не входящие в алфавит техноязыка; поэтому наши схемы можно назвать драконоподобными. Большинство таких схем посвящено визуально-структурному анализу техноязыка; при этом основная часть содержания представляется обобщённо как макроструктурные блоки; здесь они играют ту же роль, что в текстовой алгебре неизвестные (неопределённые) величины (а их имена – те же «иксы» и «игреки»).
Неформальным действиям визуала (включая комментарии-заместители) в текстовом структурном кодировании соответствуют т.н. абстрактные операторы.
Теперь – несколько общих замечаний.
Отдельные схемы в документе являются драконоподобными, т.е. в них используется техноязык, но нарушаются некоторые его правила (алфавит, синтаксис) при сохранении базовых принципов (шампура, форм организации схем) с целью отразить неформальный (полуформальный) смысл деятельности, показать происхождение понятий техноязыка. Такие нестрогие схемы применяются не только в ДРАКОНе; так, своего рода эквивалентом их в IDEF-методологиях служат т.н. диаграммы «для справок» (FEO, см. /6, Гл.2/).
Иллюстрации организованы либо как законченные диосцены – когда содержание темы вмещается на формат носителя (здесь – лист А4), либо как серии диосцен, по которым распределяется содержание; такую серию мы именуем диофильмом, а каждую иллюстрацию – кадром. Штамп кадра оформлен так, чтобы указывать на продолжение или завершение серии.
Стили контура графоэлементов (линий и фигур) отражают их роль в описываемой системе.
Подробнее о графических обозначениях см. Приложение 1.
Для базовых конструкций визуализация на техноязыке сопоставляется с изображением в виде блок-схем для выявления отличий.
Видно, что ряд вершин употребляются только в заготовках и т.о. вводятся до начала построения, не участвуя в дальнейшем выводе дракон-схемы.
В начало страницы | Оглавление | Версия для печати
Copyright © Жаринов В.Н.
1 Для гарантоспособной алгоритмизации/программирования — избыточно сложный, т.к. затрудняет доказательное построение и формальную верификацию сочиняемого описания деятельности.