ДРАКОН

Дружелю́бный ру́сский алгоритми́ческий язы́к, кото́рый обеспе́чивает нагля́дность(сокр.ДРАКОН) —визуальныйалгоритмическийязык программированияи моделирования(см. также:UML).
Язык построен за счёт формализации и эргономизацииблок-схемалгоритмов, описанных вISO5807:1985иГОСТ19.701—90.
Язык может быть использован для разработки программреального времени.
Правила языка ДРАКОН по созданию диаграмм разрабатывались с учётом требованийэргономики, то есть изначально оптимизировались длявосприятияалгоритмов человеком с использованием технологий компьютерной графики. Язык рассчитан на создание программ, которые можно было бы просматривать как модели, содержащие код на текстовом языке.
На языке ДРАКОН можно писать программы для ЭВМ за счёт включения в себя функциональности и синтаксиса поддерживаемого ИС ДРАКОН или DRAKON Editor текстового языка программирования. При этом программа для ЭВМ, написанная таким образом, считается написанной на гибридном языке ДРАКОН-[название языка].
Программа, написанная на «чистом» языке ДРАКОН, является моделью поведения.
ДРАКОН как часть космической программы «Буран» разрабатывался начиная с 1986 года при участииМинистерства общего машиностроения СССР(Научно-производственный центр автоматики и приборостроения им. акад. Н. А. Пилюгина, Москва) иАкадемии наук СССР(Институт прикладной математики им. М. В. Келдыша).
Работы по разработке языка были закончены в 1996 году (уже спустя 3 года после закрытияпрограммы «Буран»), когда была созданаавтоматизированная система проектированияпрограммных систем(CASE-технология) ГРАФИТ-ФЛОКС. Эта технология эксплуатируется в международном проекте «Морской старт», разгонный блок «Фрегат»; модернизированная ракета-носитель (РН) тяжёлого класса «Протон-М»; разгонный блок ДМ-SLБ(проект «Наземный старт»); разгонный блокДМ-03; первая ступень южнокорейской ракеты-носителя лёгкого классаKSLV-1 (Korean Space Launch Vehicle #1); РН лёгкого классаАнгара 1.2; РН тяжёлого классаАнгара-А5.
В результате ДРАКОН превратился в семейство языков моделирования:
Система управления советского орбитального корабля «Буран» управляет полётом корабля и его всеми бортовыми системами.
Головным мозгом Бурана служит Бортовой вычислительный комплекс.
Основным разработчиком бортового и наземного программного обеспечения системы управления Бурана являлсяНаучно-производственный центр автоматики и приборостроения имени академика Н. А. Пилюгина(далее — Пилюгинский центр). Для сложной системы управления «Бураном» потребовалось создать язык программирования высокого уровня, предназначенного для решения задач в реальном времени. При разработке «Бурана» проблема разработки и тестирования программного обеспечения считалась одной из наиболее сложных, поэтому в 1983 году разработчики «Бурана» обратились в Институт прикладной математики с задачей разработки бортового программного обеспечения. По их оценкам, для этой работы требовалось несколько тысяч программистов, так как предполагалась экономия объёма памятибортового компьютера"Бисер-4"за счёт использованияассемблера. После ознакомления с задачей математики решили разработать проблемно-ориентированные языки, основанные на терминах, понятиях и форме представления алгоритмов управления и испытаний, используемых разработчиками корабля.
Разработка была выполнена небольшим коллективом программистов Института прикладной математики РАН за три года. Для разработки бортового программного обеспечения был создан специализированный язык реального времени ПРОЛ2 (руководитель авторского коллектива Виктор Крюков)и базирующаяся на нём система автоматизации программирования и отладки САПО ПРОЛ2. Для разработки программного обеспечения наземных испытаний корабля был созданпроблемно-ориентированный языкДИПОЛЬ и базирующаяся на нём система автоматизации программирования и отладки (руководитель Владимир Луцикович).
В Пилюгинском центре под руководством Константина Фёдорова был создан языкЛАКСдлямоделирования.
В 1986 году начальник комплексного отделения Юрий Трунов (впоследствии ставший Генеральным конструктор Пилюгинского центра)предложил создать универсальный язык, способный собой заменить ПРОЛ2, ДИПОЛЬ и ЛАКС из-за их узкой специализации. Было решено, создать язык, выходящих за рамки традиционного программирования, например сглаживаниечеловеческого фактора.
В связи с этим при создании языка ДРАКОН были выдвинуты необычные для программистов и математиков требования гуманитарного характера:
Разработка языка ДРАКОН началась в1986 году.
Через 11 лет на базе ДРАКОНа была построена автоматизированная Технология разработки алгоритмов и программ (CASE-технология) под названием «ГРАФИТ-ФЛОКС». С их помощью были разработаны алгоритмы и программы разгонного блокаДМ-SLмеждународного проекта «Морской старт». В общей сложности на разработку и отработку программного обеспечения и других элементов системы управления ушло три года. К 1999 году все работы были закончены.
Первый пуск с комплекса «Морской старт» состоялся 28 марта1999 годасо стартовой платформы «Одиссей» в Тихом океане в районе острововКирибати. Позже по программе «Морской старт» было проведено свыше 30 ракетных пусков.
Поскольку результаты использования ДРАКОНа были стабильно высокими, руководство Пилюгинского центра приняло решение об использовании ДРАКОН-технологии и в последующих проектах.
На начальном этапе развития информация о ДРАКОНе была недоступна для пользователей, так как работы поракетно-космическим программами, в частности, покосмической программе Буранбылистрого засекреченыкак составляющиегосударственную тайну. В тот период область применения ДРАКОНа была ограниченаракетно-космической техникой.
В результате политикигласностиирассекречиванияранее закрытых сведений о проектах, появилась возможность приспособитьинструментальные средстваязыка ДРАКОН для гражданских нужд широкого применения на персональных компьютерах. Сфера применения языка стала постепенно выходить за рамками ракетно-космической техники(недоступная ссылка с 04-06-2016 [3179 дней]), например для решения задач впредметных областяхиотраслях экономики. В открытой литературе стали доступны публикации по языку ДРАКОН. Часть этих материалов появилась в Интернете в конце 2006 года.
Близким аналогом семейства языков ДРАКОН является «R-технология производства программ, или технология двумерного программирования», созданная вИнституте кибернетики имени В. М. Глушкова, причём графика дракон-схем в ДРАКОН-семействе служит аналогом графики Р-схем в R-технологии. В технологическом комплексе программиста RТКпринцип обработки информации в компьютере подразумевает деление на R-машину, R-языки R-технологию. ДРАКОН использует тот же принцип, выраженный с помощью другого понятийного аппарата.
Аналогом дракон-схем (как алгоритмического языка моделирования) являются диаграммы поведения языкаUML:диаграмма деятельности,диаграмма состояний(UML state machine)и некоторые диаграммы взаимодействия, например, диаграмма синхронизации (timing diagram).
Более фундаментальными аналогами дракон-схем являются собственноблок-схема,диаграмма Насси-Шнейдермана,псевдокод (язык описания алгоритмов)и др.
Основной задачей разработчиков было создание единого универсального языка программирования и моделирования, который своей доступностью и мощностью способен заменить специализированные языки (как-тоПРОЛ2(для разработки бортовых комплексных программ Бурана),ДИПОЛЬ(для создания наземных программ Бурана) иЛАКС(для моделирования)).
На втором этапе разработки была предложена концепция гибридных языков программирования. В рамках этой концепции созданы инструментальные средства языка ДРАКОН для гражданских нужд широкого применения в несекретном варианте. Так появиласьинтегрированная среда разработкиалгоритмов и программ под названием «ИС Дракон».
Схемы и алгоритмы, разработанные с помощью этого языка, просты и понятны любому человеку, далёкому от программирования. По мнению доктора технических наук О. Г. Григорьева, доктора технических наук Г. Д. Волковой и других специалистов,
По мнению некоторых специалистов, основными критериями качества программы являются понимаемость (читаемость), сопровождаемость и надёжность (корректность). Эффективным средством для улучшения понимаемость алгоритмов являетсявизуализацияпрограммирования.
Основным требованием к визуальному языку ДРАКОН является упрощение визуального восприятия алгоритмов.
По мнению создателя языка:
По мнению специалистов, благодаря использованию дракон-схем алгоритмы и программы становятся более понятными, доходчивыми, ясными, прозрачными.
Иными словами, за счёт упора на визуальную составляющую, ДРАКОН резко снижает порог требований к программисту и упрощает чтение программы. Это происходит за счёт того, что структура программы описана блок-схемой (если быть точным, то дракон-схемой, она же на английскомdrakon-chartвместоflowchart), в то время как на письменном языке расписано наполнение программы.
В итоге трудные для быстрого распознавания и понимания элементы языка (как-то операторы, вводимые и читаемые в виде текстовых символов на каком-либо языке речи), являющиеся «бутылочными горлышками» как для обучения языку, так и для общего понимания сути имеющейся программы, заменяются на интуитивно понятные схемы, на которых наглядно показан маршрут, который должна «пройти» программа.
Вследствие этого работники быстро овладевают дракон-схемами и успешно создают алгоритмы и прикладные программы без программистов или с их минимальным участием.
Описанным выше способом предполагалось реализовать язык программирования, который бы работник умственного труда (в частности проектировщик, инженер аэрокосмической промышленности), мог бы использовать, чтобы лично создавать программу, не тратя большое время на овладение искусством программирования (и не рискуя спрятать ошибку во всём дорогостоящем проекте, допустив критическую неточность в техзадании, порученному специально приглашённому программисту). Более того, подобный подход может способствовать привитию культуры программирования, которая поощряет использование готовых стандартизированных наработок в виде готовых элементов программ (code snippets), имеющих подходящуюлицензию.
* Облегчение чтения программы, скорее всего, происходит за счёт того, что при чтении ДРАКОН-схемымозгчитателя автоматически производит разделение труда, а именно, делегирует распознавание «узора» (то есть собственно схемы программы) зрительному отделу мозга, уменьшая объём работы для анализа текстовой информации. Вышеуказанный способ, предположительно, позволяет расширить ограничения «кошелька Миллера» за счёт, по сути, использования двух отдельных «кошельков» памяти одновременно. Альтернативное мнение: узор участка программы ДРАКОН отражается в памяти как отдельная единица, занимая в «кошельке Миллера» кратковременной памяти меньше объёма.
Вкратце, ДРАКОН подвергается критике по следующей причине: язык, говоря на сленге программистов, изначально задуман быть настолькосинтаксически сладок, насколько это достижимо для визуального языка; при этом возможность имплементации дополнительных функций и повышения мощности языка возлагаются на «поглощаемый» ДРАКОНом (используемый в конечном гибридном языке) текстовый язык программирования.
Язык ДРАКОН выполняет две принципиально разные функции.
Таким образом, ДРАКОН одновременно обращён к двум совершенно разным аудиториям, чтобы выявить и учесть потребности каждой аудитории и по возможности удовлетворить их наилучшим образом. В этом состоит одно из ключевых преимуществ, поскольку ДРАКОН можно использовать как язык взаимопонимания междунепрограммистамиипрограммистами,между не программирующим большинством специалистов и программирующим меньшинством.
Императивная (процедурная) часть языка ДРАКОН опирается на новуюпарадигму программирования—двумерное (графическое)структурное программирование. Идеи классического структурного программирования разрабатывались, когдакомпьютерная графикафактически ещё не существовала и основным инструментом алгоритмиста и программиста был одномерный (линейный илиступенчатый) текст.
Правила двумерного структурного программирования существенно отличаются от классического одномерного (текстового)структурного программирования. До появления компьютерной графики методология классического структурного программирования быланаилучшимрешением.
Первый шаг по направлению к двумерному структурному программированию был сделан вСССРв рамках Р-технологии производства программ, или «технологии двумерного программирования», созданной вИнституте кибернетики имени В. М. Глушковав 1970 годах. Автор Р-технологии программирования доктор физико-математических наук профессорИгорь Вельбицкийпредложил пересмотреть понятие «структура программы». По его мнению, «структура — понятие многомерное. Поэтому отображение этого понятия с помощью линейных текстов (последовательности операторов) сводит практически на нет преимущества структурного подхода. Огромные ассоциативные возможности зрительного аппарата и аппарата мышления человека используются практически вхолостую — для распознавания структурных образов в виде единообразной последовательности символов».
Графическая система Р-технологии программирования закреплена в стандартахГОСТ 19.005—85,ГОСТ Р ИСО/МЭК 8631—94и международном стандартеISО 8631Н.
С появлением компьютерной графики ситуация изменилась. Используя выразительные средства графики, появилась возможность видоизменить, развить и дополнить три базовые (текстовые) управляющие конструкции (последовательность,ветвление, цикл), а также полностью отказаться отключевых словif, then, else,case, switch, break,while, do, repeat, until, for, foreach, continue, loop, exit, when, last и т. д. и заменить их на управляющую графику, то есть использовать двумерное структурное программирование.
По мнению разработчиков языка ДРАКОН, чтобы добиться улучшения, надо перейти от одномерного (классического) структурного программирования к двумерному (графическому) структурному программированию: многие ограничения и запреты, неизбежные при текстовом структурном программировании, во многих случаях противоречат здравому смыслу, затрудняют понимание алгоритмов и программ, искажают нормальный ход человеческой мысли.
Недопустимо запрещать правильный процесс мышления. Его надо разрешить. Шампур-метод и язык ДРАКОН устраняют этот недостаток.
При использовании шампур-метода набор управляющихключевых слов(идентификаторов) текстового структурного программирования становится ненужным. При визуальном структурном подходе программист работает только с чертежом программы (дракон-схемой), не обращаясь к её текстовому представлению. Точно так же программист, работающий, например, наДельфи, не обращается кассемблеруимашинному коду— они для него просто не существуют. Во многих случаях (список которых ещё предстоит уточнить) желательно отказаться от текстовых управляющих структур, заменив их управляющей графикой.
Фактически, ДРАКОН — это не просто новый язык (новое семейство языков), а новый взгляд наимперативное (процедурное) программированиеи новое мировоззрение. Наибольшую трудность в течение длительного времени представляли математика и эргономикаблок-схем. Нужно было создать математически строгий метод формализации блок-схем, позволяющий превратить блок-схемы в программу, пригодную для ввода в компьютер и трансляции вобъектный модульпрограммы. При создании языка ДРАКОН эта задача была решена с помощью визуальногологического исчисления(исчисления икон), которое лежит в основе графического синтаксиса языка ДРАКОН; метода Ашкрофта-Манны, который является математическим обоснованием дракон-схемы «силуэт»; двумерного структурного программирования. Одновременно была решена задача эргономизации блок-схем, то есть задача приспособления блок-схем для наиболее удобногочеловеческого восприятияипонимания.
ДРАКОН — графический (визуальный) язык, в котором используются два типа элементов:
Поэтому язык ДРАКОН имеет не один, а два синтаксиса: графический и текстовый.Графический (визуальный) синтаксисохватывает алфавит икон, правила их размещения в поле чертежа и правила связи икон с помощью соединительных линий.Текстовый синтаксисзадаёт алфавит символов, правила их комбинирования и привязку к иконам (привязка необходима потому, что внутри разных икон используются разные типы выражений).
По мнению доктора технических наук профессора Александра Потий и др., использование дракон-схем в качестве нотации для моделированияпотоков работпозволяет избежать недостатков, присущих традиционным нотациям описания процесса, например,IDEF3. Основой дракон-схемы является чертёж, предназначенный быть простым и понятным, который обеспечивает более высокую продуктивность мозга за счёт «симультанизации»зрительного восприятия чертежа.
Симультанизацияозначает увеличение скорости работы мозга при переходе от сукцессивного восприятия текста (медленный приём детальной информации с помощью центрального зрения (central vision)) к быстрому симультанному восприятию чертежа (быстрый панорамный приём обзорной информации с помощью периферийного зрения (peripheral vision)), то есть восприятию имеющейся структуры программы той же структурой мозга, которая распознаёт фигуры и узоры. Благодаря использованию специальных формальных и неформальных когнитивных приёмов нотацияdrakon-chartдаёт возможность изобразить любой, даже очень сложный процесс в ясной и доходчивой форме. Такая форма позволяет значительно сократить интеллектуальные усилия эксперта, необходимые для зрительного восприятия, понимания, верификации и безошибочного принятия решения относительно степени соответствия характеристик процесса заданным требованиям. Иными словами, блок-схемы, выполненные по инструкциям к ДРАКОНу, используют приёмы графического дизайна как готовый способ облегчения восприятия информации, содержащейся в программе, а именно, позволяет охватить всю структуру программы, прилагая малое количество внимания (не предъявляя требований кen:Attention spanимеющего дело с программой человека и не занимая его внимание долгое время).
ДРАКОН — не один язык, а целое семейство, которое может включать теоретически неограниченное число ДРАКОН-языков, на практике имеющее большое количество таковых. Все языки ДРАКОН-семейства имеют одинаковый графический синтаксис, что обеспечивает зрительное сходство дракон-схем различных ДРАКОН-языков, визуально отделяя код на ДРАКОНе и не на нём. Каждый язык семейства отличается тем, что имеет свой собственный текстовый синтаксис (то есть, использует синтаксис совместимого текстового языка программирования).
Строгое разграничение графического и текстового синтаксиса позволяет в максимальной степени расширить сферу применения языков семейства, обеспечивая гибкость и универсальность выразительных средств языка: текстовыескрипты, уже созданные на совместимом текстовом языке программирования не зависят от действий, совершаемых программированием навизуальномДРАКОНЕ. При этом единообразие правил графического синтаксиса семейства ДРАКОН-языков обеспечивает их концептуальное единство. Разнообразие текстовых правил (то есть возможность выбора любого текстового синтаксиса), в свою очередь, определяет гибкость языка и лёгкую настройку на различные предметные и иные области.
В состав семейства входит универсальный визуальный алгоритмический язык, являющийся развитиемблок-схеми представляющий собой язык моделирования, а не программирования, а также гибридные языки программирования.
Императивную (процедурную) часть языка Дракон можно присоединить к некоторым языкам программирования и получить так называемые гибридные языки:
Точно так же можно построить языки Дракон-C#, Дракон-Python, Дракон-Tcl, Дракон-Erlangи другие. При создании гибридного языка Дракон-Синеобходимо, в частности, создать транслятор из дракон-схемы в исходный код языкаСи. В этом случаеСиявляетсяцелевымязыком.
При использовании гибридных языковисходным текстомпрограммы считается дракон-схема и только она. Приотладке программыне следует вносить исправления в промежуточные файлы на целевых языках, например, вСи-файлы; все исправления нужно вносить висходный код, то есть в дракон-схему.
Далее в качестве примера представлен порядок работы при разработке программы на гибридном языке Дракон-Си с помощью инструментальной программы ИС Дракон. Сначала в графической среде ИС Дракон разрабатывается на языке дракон-схем алгоритм, а затем программа. После этого инструментальная программа ИС Дракон транслирует полученный код дракон-схемы в исходный код языка Си. В заключение производится запуск компилятора языка Си, который осуществляет стандартную компиляцию в объектный код.
Описанный порядок работ используется, когда объём программы сравнительно небольшой. Если же программа большая (что имеет место при разработке программного обеспечения для системы управления ракет-носителей или разгонных блоков космических аппаратов), используется Технология разработки алгоритмов и программ ГРАФИТ-ФЛОКС.
Как и все прочие языки, ДРАКОН опирается на математику и логику. Однако кроме того, онучитываеткогнитивные вопросы.
Благодаря использованию формальных и неформальных когнитивных приёмов дракон-схемы позволяют изобразить решение любой, сколь угодно сложной процедурной проблемы в предельно ясной, наглядной и доходчивой форме. Это даёт возможность значительно сократить интеллектуальные усилия персонала, необходимые для зрительного восприятия, понимания, верификации и безошибочного решения проблем. А также улучшить понимаемость алгоритмов и программчитающим их человеком. В основе языка ДРАКОН лежит идея когнитивнойформализациизнаний, позволяющая сочетать строгость логико-математической формализации с точным учётом когнитивных (познавательных) характеристик человека.
С точки зрениячеловеческого фактора, исторический процесс развитияязыков программированиясопровождается улучшениемпонятностиалгоритмов и программ, повышением производительности труда программистов. На первом этапе произошёл переход отмашинных кодовкавтокодам и ассемблерам. Затем появилисьязыки высокого уровня, которые (по сравнению сассемблером) сделалиисходный текстпрограммы более понятным и удобным для человека и значительно увеличили производительность труда программистов. В современных условиях качественная программа должна обладать, помимо надёжности и эффективности, ещё и таким важнейшим качеством как понимаемость. Для улучшения понятности можно использовать сочетание некоторых языков высокого уровня с языком ДРАКОН, которые вместе образуют, так называемые, «гибридныеязыкиДРАКОНа»: Дракон-Delphi, Дракон-1С, Дракон-ASM, Дракон-Oberon, Дракон-Java, Дракон-C#, Дракон-C, Дракон-Python, Дракон-Tcl, Дракон-Javascript, Дракон-Lua, Дракон-Erlang. При этом функция исходного кода программы переходит к дракон-схемам. Это позволяет отказаться от текстовых управляющих структур, используемых в языках высокого уровня, и заменить их на управляющую графику ДРАКОНа. Исходный код программы становится более понятным и удобным для человека, увеличивается производительность труда программистов.
Основой графического синтаксиса языка ДРАКОН является графический алфавит. Алфавит состоит из графических элементов (графических фигур), которые называютсяиконами.
В языке ДРАКОН имеется 27 икон (см. рисунок).
Для каждой иконы задана ориентация, однозначно показано направление соединительных линий, входов и выходов. Благодаря жёстко заданной ориентации икон и соединительных линий в большинстве случаев отпадает необходимость использовать стрелки.
Стрелки в дракон-схемах используются крайне редко — только для обозначения некоторых типов цикла.
Благодаря отсутствию стрелок дракон-схемы становятся более лаконичными.
Отсутствие стрелок, минимизация изломов линий, запрет на использование пересечений, отсутствие внутренних соединителей (предназначенных для того, чтобы избежать пересечения соединительных линий), соблюдение специальных математических и эргономичных правил (правило шампура, правило главного маршрута, правило побочных маршрутов, правило рокировки и т. д.) и ряд других особенностей — всё это в совокупности обеспечивает повышение качества дракон-схем. Именно поэтому некоторые авторы характеризуют или отождествляют дракон-схемы как «правильно составленные блок-схемы».
ДРАКОН имеет не только иконы, но имакроиконы.Макроиконы — это графические слова языка ДРАКОН. Подобно тому, как слова слагаются из букв, макроиконы (графические слова) состоят из икон (графических букв). В языке ДРАКОН имеется 21 макроикона (см. рисунок). Иконы и макроиконы — это строительные блоки, из которых создаются дракон-схемы.
Важной частью макроикон служатвалентные точки(на рисунке они показаны как маленькие чёрные кружки).В эти точки последовательно вводятся иконы и макроиконы, которые в совокупности образуют графический узор и (после заполнения икон текстом) превращаются в дракон-схему.
Дракон-схема — этоблок-схемас точно определёнными свойствами. В этом разделе дан сравнительный анализ свойств и показано, что дракон-схема является правильно составленной блок-схемой.
Блок-схемыпопулярны, так как они графически отображают логику программы с помощью стандартных геометрических фигур и соединительных линий. Они представляют собой «интуитивно понятный метод представления управляющей последовательности алгоритма».
Вместе с тем, блок-схемы подвергаются критике. Противники блок-схем утверждают, что они не поддаются формализации, поэтому их «нельзя использовать как программу для непосредственного ввода в машину». Блок-схемы не согласуются соструктурным программированием, поскольку в значительной степени ориентированы на использованиеgoto. Блок-схемы широко использовались в течение ряда лет, однако сейчас их популярность падает; они «затемняют особенности программ, созданных по правилам структурного программирования».
При достаточно большой степени детализации блок-схемы становятся «громоздкими и теряют своё основное достоинство — наглядность структуры алгоритма». Обозримыми и понятными являются блок-схемы только для небольших алгоритмов. Доктор технических наук профессор Михаил Лекарев полагает, что если для простой задачи блок-схемы алгоритмов обеспечивают безусловную наглядность, то с ростом сложности ситуация меняется на противоположную: логическая структура алгоритма становится трудной для восприятия и исчезает, превращаясь в «клубок спагетти».
Блок-схемы продолжают оставаться самой известной нотацией для записи алгоритмов. Однако сегодня эта нотация для программистов «утратила свою актуальность». Основной недостаток блок-схем заключается в том, что они не приучают к аккуратности при разработке алгоритма. Ромб можно поставить в любом месте блок-схемы, а от него повести выходы на какие угодно участки. «Так можно быстро превратить программу в запутанный лабиринт, разобраться в котором через некоторое время не сможет даже сам её автор».
Блок-схемыне позволяют изображать сложные алгоритмы с необходимой полнотой и наглядностью. Чтобы устранить недостатки, нужноупорядочитьблок-схемы. Упорядоченные блок-схемы (в данном случае drakoncharts или дракон-схемы) подчиняются строгим формальным правилами правилам эргономичных алгоритмов.
В отличие от классических блок-схем, упорядоченные дракон-схемы пригодны для формализованной записи и автоматического полученияисполняемого кода. Запрещено пересечение линий, которое путает читателей и затрудняет понимание алгоритма, удалены другие недочёты. Дракон-схемы позволяют ликвидировать или существенно ослабить недостатки блок-схем.
Упорядоченные блок-схемы специально сконструированы таким образом, чтобы превратить сложный алгоритм в удобную схему, обеспечивающую быстрое и лёгкое понимание. По мнению специалистов, благодаря использованию дракон-схем алгоритмы становятся более понятными, доходчивыми, ясными, прозрачными.
Эргономичные методы, применяемые в дракон-схемах, существенно улучшают восприятие алгоритмов. Язык упорядоченных блок-схем обеспечивает разработку сложных алгоритмов с сохранением наглядности даже для многостраничных схем.
Имеются медицинские учебники, в которых используются наглядные графические инструкции для медицинского персонала, написанные в виде упорядоченных блок-схем на языке ДРАКОН.
В классической работе «Заметки по структурному программированию»Эдсгер Дейкстраиспользовал блок-схемы для анализа структуры программ и предложил четыре принципа структуризации блок-схем:
Обычная практика разработки и вычерчивания блок-схем не учитывает рекомендации Дейкстры. Это объясняется тем, что принципы Дейкстры не получили своего закрепления в стандартах на блок-схемы — международном стандартеISO 5807:1985иГОСТ 19.701—90.
Рекомендации Эдсгера Дейкстры очень важны, так как они открывают путь к совершенствованию блок-схем, делают их более удобными и наглядными. Дракон-схемы — это усовершенствованные блок-схемы, построенные на основе принципов Дейкстры. Принципы необходимы потому, что они позволяют осуществитьструктуризацию и формализацию схем программ.
Дракон-схемы есть не что иное, как правильно составленные блок-схемы. Язык ДРАКОН строится на основе блок-схем с целью их улучшения. Использование эргономичных правил ДРАКОНа позволяет упорядочить графический чертёж алгоритма и обеспечить более эффективное восприятие блок-схемы человеком.
Методы проектирования, ориентированные на дракон-схемы, позволяют преодолетьалгоритмическую сложность. Существенно, что усовершенствованные блок-схемы, построенные по правилам языка ДРАКОН, обеспечивают разработку сложных алгоритмов «с сохранением наглядности даже для многостраничных схем». По мнению некоторых учёных, хотя стандарты на блок-схемы считаются действующими, фактически они давно устарели. С появлением дракон-схем блок-схемы потеряли своё значение, так как они во всех отношениях уступают дракон-схемам. Для построенияблок-схемнаиболее рационально использовать алгоритмический язык ДРАКОН.
Для обозначения блок-схем, построенных по правилам языка ДРАКОН, используется термин «дракон-схемы». Дракон-схема — это упорядоченная и усовершенствованная на основании принципов Дейкстрыблок-схема.
По своей концепции же ДРАКОН был создан как способ сделать тождественной блок-схему программы и готовый к компиляции исходный код программы
То есть: подобный подход резко снижал время, требуемое на подготовку инженера к овладению программированием, практически устраняя «порог вхождения» для работы с программой. Иными словами, ДРАКОН задуман как язык, имеющим одновременно высокую мощь, лёгок в освоении и имеющий низкий порог требований к программисту (низкий «порог вхождения»)
ДРАКОН — это эргономичный стандарт для графического представления учебной информации. Язык ДРАКОН учит методистов и учителей правильному составлению блок-схем.
Визуальный язык ДРАКОН образует наглядную среду для первоначального обучения программированию и мог бы быть весьма полезен при организации школьных курсов информатики.
Блок-схемы, нарисованные по правилам языка ДРАКОН, отличаются чёткостью, наглядностью и прозрачностью структуры. А наглядность и доходчивость алгоритмов — это именно то, чего так остро недостаёт школьным учебникам.
При разработке единого стандарта на блок-схемы, снабжённого компьютерной поддержкой и рассчитанного на «постепенное внедрение во всех отраслях и предметных областях, целесообразно взять за основу язык ДРАКОН».
Этот раздел описывает особенности для блок-схем, удовлетворяющих требованиям языка ДРАКОН, позволяющих называть их дракон-схемами.
На рисунке(справа)показана дракон-схема «развилка» — графическийоператор ветвленияс двумя ветвями. Икона «вопрос» имеет один вход сверху и два выхода: вниз и вправо. Выход влево (в отличие от блок-схем) запрещён и никогда не используется. У остальных икон входы и выходы ориентированы строго по вертикали. Благодаря продуманной графической дисциплине в языке ДРАКОН применяются правила, облегчающие пониманиесмыслаалгоритма и обеспечивающиебыстрое восприятие читателем алгоритма в целом.
В дракон-схеме маршруты алгоритма следует рисовать не хаотично, а упорядоченно — по принципу «Чем правее — тем хуже»; чем правее расположен маршрут, тем более неприятную ситуацию он описывает. На рисунке(справа)два маршрута. Они соответствуют двум ситуациям. Если нет дождя — это хорошо, если дождь идёт — плохо. Главный маршрут алгоритма (основная ветвь программы) идёт по левой вертикали (по шампуру), демонстрируя, что всё хорошо. Переход вправо (на правую вертикаль) описывает нежелательную ситуацию, потому что неприятно гулять под дождём.
Правило «Чем правее, тем хуже» — одно из многих правил, которые в совокупности значительно облегчают чтение, понимание, анализ и разработку сложных алгоритмов.
На рисунке(справа)показана дракон-схема «Цикл ДО» — графический операторdo-while.Спортсмениликультурист, чтобы накачать мускулатуру, поднимает штангу до тех пор, пока не устанет. Если устал, тренировка прекращается.
В цикле ДО сначала выполняется действие (Подними вес) и только после этого задаётся вопрос (Устал?).
Икона «вопрос» изображается так же, как и в предыдущем случае. Она имеет один вход сверху и два выхода: вниз и вправо. Выход влево запрещён.
В блок-схемах линии расположены хаотично и могут быть направлены в любую сторону. Поэтому для указания направления процесса в блок-схеме необходимы стрелки. В дракон-схеме ситуация иная. Беспорядок устранён, все линии упорядочены и направлены строго вниз. Поэтому необходимость в стрелках отпадает. Исключением является стрелка цикла, которая загибается вверх против часовой стрелки.
Иллюстрациясправадемонстрирует непрограммуи непоток управления, апоток работ. Язык ДРАКОН позволяет единообразно описыватьпотоки управленияипотоки работ, используя единый набор графических операторов. Суть в том, что ДРАКОН является не только языком программирования, но и языком описания бизнес-процессов, учебным языком для изучения медицинских алгоритмов и т. д.
На рисунке(справа)показана дракон-схема «Цикл ПОКА» — графический операторwhile. Человек проголодался, но дома нет ничего, кроме котлет. Он ест одну котлету за другой, пока не насытится.
В цикле ПОКА сначала задаётся вопрос (Голодный?) и только после этого выполняется (или не выполняется) действие (Съешь котлетку). В самом деле, если человек с самого начала не голоден, он обедать не станет. На рисунке отказ от еды изображён так. Если перед обедом на вопрос «Голодный?» получен отрицательный ответ, значит, из иконы «Вопрос» выходим вниз через Нет и действие «Съешь котлетку» ни разу не выполняется.
Рассмотрим три последних примера. Все они нарисованы единообразно — во всех схемах начало и конец расположены на одной вертикали (на шампуре), причём эта вертикальне имеет разрывов и изломов.Подобное единообразие содействует стандартизации дракон-схем и облегчает их запоминание.
Ещё одно отличие дракон-схем от блок-схем состоит в том, чтоориентациявходных и выходных линий графоэлементов (икон) в дракон-схемах задана однозначно, а в блок-схемах — неоднозначно. Например, в блок-схемах входную линию можно подводить к графическому блоку (символу) не одним, а двумя разными способами — не только сверху, но и слева. Выходную линию можно присоединять к блоку (символу) не одним, а тремя способами — не только внизу, но и справаи даже слева.
В языке ДРАКОН этот недостаток устранён с помощью принципов Эдсгера Дейкстры, использованных для однозначного упорядочивания входных и выходных линий графических фигур.
Иллюстрация внизу демонстрирует работу алгоритмической конструкции силуэт в динамике с помощьюанимации. Анимация показывает перемещение рабочей точки дракон-алгоритма от начала до конца с учётом работы циклов.
Алгоритм «Рыбная ловля» (Fishing) состоит из четырёх веток:
Главный маршрут каждой ветки показан с помощью жирной линии, которая называетсяшампур.Каждый маршрут от иконы Заголовок «Fishing» до иконы Конец осуществляется с помощью непрерывной линии, не имеющей разрывов. Анимация показывает, что любой человек может провести по маршруту пальцем или указкой, не отрывая палец от бумаги или экрана.
Это означает, что в силуэтеграф потока управлениявсегда имеет путь между входной вершиной графа (иконой Заголовок) и любой вершиной (узлом) графа потока управления. Следовательно, силуэт не может иметь «мёртвого кода» (недостижимых вершин) графа потока управления.
Дракон-схема силуэт представляет собой конечный автомат. Ветки силуэта можно трактовать как состояния автомата. По этой причине язык ДРАКОН позволяет реализоватьавтоматное программирование.
Медицинские алгоритмыиспользуются воврачебной практикеи медицинских исследованиях в текстовой и графической форме. Графическое представление медицинских алгоритмов в видеблок-схеми дракон-схем используется для наглядного изображения действиймедицинского персоналаи процессов, протекающих ворганизмепациента.
На первом этапе применялись блок-схемы, заменившие неудобное и ненаглядное текстовое описание алгоритмов. Например, графические медицинские алгоритмы представлены в учебнике «Практическое руководство для врачей общей (семейной) практики», вышедшем под научной редакцией академикаРАМН, доктора медицинских наук, профессораИгоря Денисова. В учебнике в видеблок-схемграфически показаны диагностические алгоритмыклинических синдромов, часто встречающиеся в практике, например:
Учебник предназначен дляврачей общей практики (семейных врачей), участковых терапевтов ипедиатров, амбулаторно-поликлинических врачей других специальностей,интернов,клинических ординаторов, студентов медицинских вузов.
Со временем выяснилось, что блок-схемы не позволяют изображать сложные алгоритмы с необходимой полнотой и наглядностью. Недостаток блок-схем состоит в том, что при большой степени детализации они становятся громоздкими и теряют своё основное достоинство — наглядность структуры алгоритма. Кроме того, блок-схемы не приучают к аккуратности при описании алгоритма. Ромб можно поставить в любом месте блок-схемы, а от него повести выходы на какие угодно участки. Так можно быстро превратить алгоритм в запутанный лабиринт, разобраться в котором через некоторое время не сможет даже сам его автор.
Возникла необходимость устранить отмеченные недостатки и упорядочить блок-схемы. Упорядоченные блок-схемы (дракон-схемы) подчиняются строгим формальным правилами правилам эргономичных алгоритмов. Запрещено пересечение линий, которое путает читателей и затрудняет понимание алгоритма. Дракон-схемы позволяют ликвидировать или существенно ослабить недостатки блок-схем. Упорядоченные блок-схемы специально сконструированы таким образом, чтобы превратить сложный алгоритм в удобную схему, обеспечивающую быстрое и лёгкое понимание. Эргономичные методы, применяемые в дракон-схемах, существенно улучшают восприятие алгоритмов. Язык упорядоченных блок-схем обеспечивает разработку сложных алгоритмов с сохранением наглядности даже для многостраничных схем.
Имеются медицинские учебники, в которых используются наглядные графические инструкции для медицинского персонала, написанные в виде упорядоченных блок-схем на языке ДРАКОН.
В учебном курсе «Неотложная медицинская помощь»используются упорядоченные блок-схемы в качестве графических инструкций для медицинского персонала.Служба скорой помощи— одно из важнейших звеньев системы оказания медицинской помощи населению. Действияспециализированных и линейных бригад скорой помощидолжны выполняться очень чётко; последовательности таких действий описываются с помощью дракон-схем и называются алгоритмами. В учебном курсе «Неотложная медицинская помощь» имеется глава «Как читать алгоритмы?», поясняющая порядок чтения дракон-схем.
Упорядоченные блок-схемы наглядно показывают неотложные спасательные действия и процедуры, которые должны точно и безупречно выполнять работники скорой помощи приугрожающих жизни пациента состояниях. В начале учебного курса говорится: «Последовательность сложных или более важных действий написана в алгоритмах, подготовленных по методике языка ДРАКОН. Цель алгоритмов — помочь как можно лучше запомнить последовательность действий при оказании неотложной медицинской помощи».
В учебнике «Начальная неотложная акушерская помощь», изданном под научной редакцией доктора медицинских наук, профессора Руты Надишаускене, приведены медицинские алгоритмы, часто встречающиеся в практической работе неотложной акушерской помощи при диагностике, реанимации и родовспоможении, например:
Алгоритмы представлены в наглядной форме в виде упорядоченных блок-схем на языке ДРАКОН. Учебник предназначен для медицинских работников скорой помощи, специалистов, работающих в приёмных отделениях и учащихся — будущих акушеров, фельдшеров и студентов медицинских вузов.
Фибрилляция предсердий(прежнее название, мерцательная аритмия) — нарушение ритма сердца, для которого характерна частая (более 350 импульсов в минуту) неритмичная хаотическая электрическая активность предсердий, приводящая к прекращению работы предсердий как единого целого. На рисунке справа представлен алгоритм терапевтической тактики при фибрилляции предсердий.
При частых (чаще одного раза в месяц) или плохо переносимых рецидивах фибрилляции предсердий с нестабильнойгемодинамикойпоказана противорецидивная антиаритмическая терапия. Кроме того, для профилактики рецидивов используют ибета-адреноблокаторы. При безуспешности кардиоверсии или частых рецидивах фибрилляции предсердий (ФП), несмотря на медикаментозную противорецидивную терапию (или при противопоказаниях к ней) рекомендуют при хорошей переносимости ФП отказаться от попыток восстановления синусового ритма и перевести ФП в постоянную с поддержанием нормосистолии. Если у больного фибрилляция предсердий сопровождаетсяартериальной гипотензией, острым коронарным синдромом, прогрессированиемстенокардии,сердечной недостаточности, больного необходимо направить к кардиохирургу.
Важнуюроль играютмедицинскиеалгоритмы, описывающиегрупповуюработу врачей или иного медицинского персонала. На рисунке справа представлена графическая инструкция, предписывающая и синхронизирующая между собой точно скоординированную совместную работу двух работников скорой помощи.
Инструкция определяет порядок выполнения неотложных действий медицинской бригады по спасению пострадавшего мотоциклиста, находящегося без сознания после дорожной аварии с подозрением на перелом позвоночника у основания черепа. Данный медицинский алгоритм описывает одновременную (параллельную) работу двух медицинских работников.
Дракон-схемы используются крайней мере в одном медицинском учебнике, изданном вЛитве.
На рисунке справа показана упорядоченная блок-схема «План мероприятий по подготовке и проведению цикла тематического усовершенствования врачей „Организация и методика преподавания семейной медицины“». Данный план (алгоритм) предназначен для преподавателей кафедр медицинских вузов и учебных заведений послевузовского профессионального образования врачей, участвующих в подготовке врачей общей практики (семейных врачей).
На схеме выделены четыре ветки силуэта, описывающие последовательность выполняемых преподавателями работ:— разработка учебных пособий и учебного плана;— разработка методик;— получение заявок на переподготовку;— подготовка документов к занятиям.
В 1996 годуГосударственный комитет Российской Федерации по высшему образованиювключил изучение языка ДРАКОН в программу курса «Информатика» для направлений:
В официальном документеГоскомвуза«Примерная программа дисциплины „Информатика“» имеется раздел, посвящённый языку ДРАКОН и использующий его понятийный аппарат:
«Примерная программа дисциплины „Информатика“» одобрена Президиумом совета по информатике Госкомвуза. Председатель Президиумаакадемик РАНЮрий Журавлёвявляется руководителем Секции прикладной математики и информатикиОтделения математических наук РАН, а также заместителем Академика-секретаря Отделения математических наук РАН.
В одобренной академиком Журавлёвым «Примерной программе» содержится обоснование концепции и структуры учебного курса информатики; в частности, даётся обоснование использования языка ДРАКОН.
Далее в Программе указываются требования к языкупредставления процедурных знанийнового типа: общедоступного, человечного, предельно лёгкого в изучении и удобного в работе, создающего наиболее комфортные условия для работы человеческого мозга, позволяющего решать проблемы ценою минимальных интеллектуальных усилий, удовлетворяющего самым строгим эргономическим и дидактическим требованиям. Отмечается, что этим требованиям соответствует язык ДРАКОН — «один из самых лёгких языков представления знаний и самый первый язык, с которого нужно начинать обучение алгоритмическому мышлению и программированию».
При коллективной интеллектуальной работе важную роль играет интеллектуальное взаимопонимание и интеллектуальное взаимодействие между специалистами. Для улучшения взаимопонимания необходимо иметь общую языковую основу. Благодаря своей человечности (эргономичности) язык ДРАКОН относительно легко устраняет барьеры взаимного непонимания (в части процедурных знаний) между работниками различных специальностей: врачами и физиками, математиками и конструкторами, биологами и экономистами, программистами и технологами и т. д. Тем самым ДРАКОН создаёт универсальную языковую основу для процедурного интеллектуального взаимодействия между людьми, в частности, между участниками многопрофильных проектов. В результате этот «язык взаимопонимания» заметно упрощает междисциплинарное и иное общение между представителями разных организаций, ведомств, отделов, лабораторий, научных школ и профессий, отчасти играя роль «производственного эсперанто».
ВСибирском государственном индустриальном университетестуденты изучают язык ДРАКОН и осваивают интегрированную среду «ИС Дракон» на кафедре прикладной информатики для представления алгоритмов решения проблем управления при подготовке магистров, обучающихся по направлению: 140400.68 «Электроэнергетика и электротехника», профили подготовки «Электроприводы и системы управления электроприводов», «Автоматизированные электромеханические комплексы и системы».
ВНовокузнецком филиалеКемеровского государственного университетастуденты изучают язык ДРАКОН и осваивают интегрированную среду «ИС Дракон» на кафедре математики и математического моделирования согласно программе«М2.ДВ.4 Инструментальные средства визуального программирования», составленной в соответствии с требованиями федерального государственного образовательного стандарта высшего образования по направлению подготовки 010400.68 «Прикладная математика и информатика» для магистерской программы «Математическое моделирование» и утверждённой деканом факультета информационных технологий доктором технических наук профессором Валерием Калединым.
В Белоруссии вМинском высшем радиотехническом колледжеотмечают: «Как показал опыт применения языка ДРАКОН в лабораторном цикле „Изучение аналоговых и цифровых приборов“, студенты на порядок быстрее усваивают принципы работы операционных усилителей и регистрации их амплитудных и частотных характеристик».
Можно привести ещё ряд примеров, но в целом можно отметить малую известность языка среди преподавателей высшей школы.
Вначальной школефакультативноиспользуютсяпропедевтические курсыАлександра Горячева «Информатика в играх и задачах» для 1-4 классов и «Информатика и ИКТ» для 3 и 4 класса. На первом этапе для изображения процедурных знаний в этих курсах использовались традиционные блок-схемы, но затем — после ознакомления с правилами построения ДРАКОН-схем — ситуация изменилась в пользу ДРАКОНа.
Как отмечает создатель пропедевтических курсов кандидат педагогических наук Горячев, «для представления информации о процедурных знаниях мы планируем использовать блок-схемы с рекомендациями автора визуального языка ДРАКОН».
Рабочая программа «Информатика для начинающих» для 2-4 классов, утверждённая руководителем Методического объединения педагогов Веренко Л. И., предусматривает изучение алгоритмов на основе языка ДРАКОН в рамках темы «Страна волшебных алгоритмов» (объём 26 часов)по учебному пособию «Занимательная информатика».
Изучениеинформатикивосновной школеопределяетсяГосударственным образовательным стандартом. В 2004 году появился стандартосновного общего образованияпо Информатике и ИКТ (информационно-коммуникационные технологии). В соответствии со стандартом подготовлено учебное пособие по алгоритмике «Занимательная информатика», основанное на языке ДРАКОН. В 2007 году пособие вышло в свет в издательствеДрофа— специализированном издательстве, выпускающем учебную и методическую литературу для дошкольных учреждений, начальной, основной, средней и высшей школы. Это было уже третье издание книги, исправленное и дополненное с учётом замечаний учителей и специалистов.
Учительская газета опубликовала отзыв о книге и языке ДРАКОН.
В журнале «Вестник Российской академии наук» опубликована рецензия доктора технических наук Я. В. Безеля, в которой отмечается, что алгоритмический язык ДРАКОН разработан совместными усилиями Министерства общего машиностроения СССР (Научно-производственный центр автоматики и приборостроения им. акад. Н. А. Пилюгина, Москва) и Академии наук СССР (Институт прикладной математики им. М. В. Келдыша). Этот язык универсален. Он может применяться для наглядного представления и быстрой разработки алгоритмов не только в космосе, но и в земных видахчеловеческой деятельности. Практическая полезность ДРАКОНа получила высокую оценку: министерство образования РФ включило его изучение в программу дисциплины «информатика»высшей школы. О лёгкости его усвоения говорит хотя бы тот факт, что он положен в основу игрового учебного пособия по информатике для детей младшего и среднего школьного возраста.
Как отмечает Безель, в своё времяН. И. Лобачевскийдал замечательно яркую оценкуискусственным языкам: «Чему одолжены своими блестящими успехами науки, слава нынешних времён, торжество ума человеческого? Без сомнения, искусственному языку своему!». Разделяя эту мысль, автор книги вместе с тем подвергает критике существующие подходы к созданию языков. Он считает, что разработчики языков не должны игнорировать накопленный наукой огромный багаж знаний об устройстве и работе мозга. Концепция искусственных языков нового поколения должна опираться на междисциплинарный подход.
Проблемы понимания и взаимопонимания, продолжает Безель, автор книги рассматривает как ключевые проблемы информатики. Понимаемость программы определяется как свойство программы минимизировать интеллектуальные усилия, необходимые для её усвоения. Одно из неоспоримых достоинств книги состоит в разработке практического метода, позволяющего создать принципиально новый подход к решению проблемы понимания, который, в свою очередь, тесно связан с проблемой улучшения работы ума.
По словам Безеля, автор демонстрирует его на примере языка ДРАКОН. При его разработке была объявлена стратегическая цель: создать наиболее комфортные условия для работы человеческого интеллекта, обеспечить наилучшие возможности для повышения эффективностиколлективного разумаспециалистов. В результате должен появиться общедоступный, предельно лёгкий в изучении и удобный в работе язык, позволяющий решать проблемы ценою минимальных интеллектуальных усилий по принципу «сделай сам» (то есть без помощи программистов икогнитологов).
Основная литература по языку ДРАКОН
Язык ДРАКОН для медицинских работников скорой помощи
Другие авторитетные источники
Материалы научных, научно-методических и научно-практических конференций
Программа Степана Митькина «DRAKON Editor»
Программа «ИС Дракон»
Среда разработки Дракон-Тех
Дополнительные материалы