Содержание к диссертации
Введение
1 Постановка задачи визуального конструирования управляющих алгоритмов 10
1.1 Предметная область — бортовые управляющие алгоритмы 10
1.1.1 Комплекс бортовой аппаратуры летательного аппарата.. 10
1.1.2 Бортовые управляющие алгоритмы 12
1.2 Анализ способов представления управляющих алгоритмов режима 14
1.3 Система разработки управляющих алгоритмов ГРАФКОНТ.. 20
1.4 Анализ существующих моделей управляющих алгоритмов... 24
1.4.1 Терминальное описание УА 24
1.4.2 Многовариантная модель 26
1.4.3 Многовходовая модель 27
1.5 Постановка задачи разработки визуального конструктора 30
2 Математические модели управляющих алгоритмов, используемые в визуальном конструкторе 32
2.1 Модификация многовходовой модели 32
2.1.1 Функциональная запись многовходовой модели 32
2.1.2 Модифицированная многовходовая модель 35
2.2 Структура временной диаграммы управляющего алгоритма.. 39
2.3 Модель графического представления управляющих алгоритмов 49
2.3.1 Множество элементов временной диаграммы 49
2.3.2 Отношения на множестве элементов 51
2.3.3 Определение дерева элементов 55
2.4 Набор операций визуального конструктора 61
2.4.1 Операции на дереве элементов 61
2.4.2 Определение временной диаграммы 63
2.4.3 Операции на временной диаграмме 65
3 Алгоритмические и языковые средства визуального конструктора 68
3.1 Графический язык описания временных диаграмм 69
3.1.1 Алфавит языка 69
3.1.2 Правила вывода 70
3.1.3 Конструирование управляющих алгоритмов на графическом языке 71
3.2 Алгоритмы транслятора многовходовой модели 73
3.2.1 Отображение, реализуемое транслятором многовходовой модели 73
3.2.2 Алгоритм трансляции многовходовой модели 75
3.3 Алгоритмы транслятора графического языка 78
4 Программные средства визуального конструктора 80
4.1 Структура визуального конструктора 80
4.1.1 Объектная модель визуального конструктора 83
4.1.2 Транслятор временных диаграмм 89
4.1.3 Транслятор многовходовой модели 89
4.2 Структура данных многовходовой модели 90
4.3 Визуальный конструктор в системе разработки управляющих алгоритмов 93
5 Заключение 95
Список использованных источников
- Предметная область — бортовые управляющие алгоритмы
- Модификация многовходовой модели
- Графический язык описания временных диаграмм
- Структура визуального конструктора
Введение к работе
В настоящее время все более широкое применение во всевозможных сферах науки и техники находят сложные технические системы. Такие системы, как правило, состоят из большого числа подсистем, включающих в себя приборы и другое оборудование различного предназначения. Сложность таких систем обуславливается сложностью и разнообразием решаемых ими задач.
Внутренняя структура сложных систем обычно характеризуется многоуровневой иерархией и многообразием связей между различными элементами [78]. Кроме того, система целиком или определенные ее подсистемы могут изменять свое состояние во времени по определенному закону [66].
Любая сложная система служит для решения определенной комплексной задачи (или ряда задач). Так как каждый прибор или агрегат, входящий в систему, служит своей определенной цели и имеет ряд своих состояний, то для решения общей задачи системы необходима четкая синхронизация и согласованная работа всех приборов и подсистем на уровне смены состояний [27]. Обычно задача синхронизации возлагается на отдельно выделяемый прибор, который осуществляет все управляющие и диспетчерские функции. В последнее время все чаще в качестве такого прибора используется микропроцессор или электронно-вычислительная машина [17].
Управляющий микропроцессор должен иметь управляющие и информационные связи со всеми основными подсистемами [11]. Для обеспечения синхронной и бесперебойной работы всех подсистем он должен взаимодействовать с другими приборами по строго определенному алгоритму. Такой алгоритм называется управляющим алгоритмом (УА). В общем случае в памяти управляющего микропроцессора может находиться несколько программ, реализующих УА, предназначенные для решения различных задач и выполняемых последовательно в реальном времени.
Диссертация посвящена разработке методов математического описания и средств визуального конструирования управляющих алгоритмов.
Предметом исследования данной работы являются бортовые управляющие алгоритмы, работающие в реальном времени, и их графическое представление - временные диаграммы.
Актуальность темы диссертации. Характерным примером сложных технических систем, состоящих из множества подсистем и приборов, являются современные летательные аппараты (ЛА), несущие на себе комплекс бортовой аппаратуры (БА). Управление многими элементами БА в той или иной степени автоматизировано, что упрощает решение задачи управления ЛА. Все управляющие элементы ЛА объединяются в бортовой вычислительный комплекс (БВК), который должен обеспечить согласованную работу всех подсистем, приборов и датчиков БА в различных режимах функционирования [56].
Для управления работой некоторых подсистем пишутся специальные программы, размещаемые затем в памяти БВК и вызываемые им в определенные моменты времени. Управление другими подсистемами сводится лишь к посылке им управляющих воздействий и приему от них информации об их состоянии. В свете вышесказанного видно, что работа управляющей программы состоит в согласованных и синхронизированных по определенному закону вызовах подпрограмм, управляющих приборами БА, анализе показаний датчиков, выдаче команд управления. Все эти функции реализуются в соответствии с управляющим алгоритмом [48].
Учитывая высокие требования к надежности и качеству управляющих алгоритмов ЛА, а также большое число различных элементов БА, становится очевидной сложность управляющего алгоритма. Обычно программа, реализующая такой алгоритм, включает сотни тысяч, а иногда и миллионы команд. Естественно, что проектирование и разработка такого алгоритма является сложной и трудоемкой задачей, возможной только с применением той или иной технологии автоматизации программирования.
В настоящее время существует несколько основных подходов к автоматизации программирования:
Системы, использующие универсальный текстовый редактор, транслятор, ориентированный на синтаксис, и компилятор.
Системы с усовершенствованным, узкопрофильным текстовым редактором, ориентированным на синтаксис (а нередко и семантику) определенного языка программирования.
Системы, позволяющие построить программу из отдельных готовых модулей, библиотек, классов, компонент и т.п.
Системы с графическим интерфейсом, дополняющим текстовое описание.
Визуальное программирование, позволяющее формировать программу из отдельных частей в виде блок-схемы или любого другого графического представления.
Одной из наиболее перспективных и удобных для пользователя технологий является технология визуального программирования. В рамках данной технологии пользователь может, используя отдельные заранее предопределенные модули или компоненты, конструировать в графическом виде структурную схему алгоритма, получая затем текст программы на выбранном языке программирования.
Кроме того, в последнее время все большее распространение приобретают системы и комплексы программ, направленные на автоматизацию всех процессов жизненного цикла продукта. Такие программные комплексы, как правило, реализуют ту или иную CALS-технологию (Continuous Acquisition and Life cycle Support), охватывая весь жизненный цикл разработки от проектирования до реального использования [57]. В данный момент для автоматизации процесса разработки управляющих программ летательных аппаратов в ГНП РКЦ «ЦСКБ-Прогресс» используется на практике программная система ГРАФКОНТ, разработанная в Самарском государственном аэрокосмическом университете под руководством Калентьева А.А. Данная система предоставляет средства автоматизированного описания требований, проектирования и отладки управляющих алгоритмов. Однако одним из главных недостатков системы является отсутствие средств графического описания управляющих алгоритмов, что существенно осложняет работу с системой.
В диссертации предлагается подход к автоматизации разработки управляющих алгоритмов бортовой аппаратуры с использованием средств визуального программирования, оперирующих на базе графического языка и разработанной математической модели УА. В то же время предложенный подход реализуется в рамках комплекса программ ГРАФКОНТ, что позволяет дополнить визуальными средствами разработки реализованную систему.
Разработка такой технологии является актуальной в силу следующих причин:
Сложность комплекса бортовой аппаратуры увеличивается с каждым годом, что влечет за собой увеличение сложности управляющих алгоритмов и, соответственно, сложности их написания.
Повышенные требования к надежности и качеству управляющих алгоритмов. Ошибки при проектировании алгоритма и разработке программы могут вызвать катастрофические последствия, приводящие зачастую к потере летательного аппарата.
Повышение эффективности труда инженеров-конструкторов, занимающихся проектированием управляющих алгоритмов за счет применения визуальных средств разработки.
Автоматизация всего процесса разработки позволит четче координировать действия участников процесса и обеспечит удобный доступ к информации обо всех стадиях, хранимой в электронном виде.
Цель работы. Целью данной работы является повышение эффективности разработки управляющих алгоритмов путем внедрения новых графических средств автоматизации.
Основные задачи. Определены следующие основные задачи диссертации:
Модифицировать используемую в системе ГРАФКОНТ многовходовую модель УА таким образом, чтобы данная модель позволяла описать алгоритмы любой структуры.
Разработать математическую модель временной диаграммы УА, которая позволила бы описать алгоритм с использованием предопределенных графических компонентов и принимала во внимание ограничения, налагаемые на временную диаграмму. Разработать графический язык описания временных диаграмм.
Разработать алгоритм, позволяющий преобразовывать математическую модель временной диаграммы в многовходовую модель, и алгоритм обратного преобразования.
Объединив разработки, построить систему визуального конструирования временных диаграмм УА, дополняющую существующую систему разработки ГРАФКОНТ.
Наиболее существенные результаты и научная новизна. В диссертации освещены следующие полученные в ходе исследований результаты:
Модифицирована многовходовая модель УА. Сделанные модификации позволяют говорить о многовходовой модели, как об универсальном средстве описания УА.
Предложена математическая модель УА, ориентированная на разработчика временных диаграмм.
Разработана система визуального конструирования, позволяющая строить временные диаграммы из отдельных элементов методом визуальной композиции.
В рамках существующей системы ГРАФКОНТ разработан и внедрен новый подход к разработке УА, основанный на технологии визуального программирования.
В диссертации разрабатывается новая технология автоматизированного проектирования управляющих алгоритмов. Анализ подобных систем показал, что они используют различные технологии, оперирующие с текстовым представлением алгоритмов. В диссертации же предлагается система, использующая технологию визуального программирования для конструирования УА в рамках CALS-технологии.
Теоретическая значимость исследования. Одними из основных теоретических результатов исследования являются модифицированная многовходовая модель УА и разработанная математическая модель графического представления алгоритмов. Эти модели могут быть использованы для описания различных управляющих алгоритмов и для создания на их базе других автоматизированных систем.
Практическая значимость исследования. Результат исследования -система визуального конструирования временных диаграмм бортовых алгоритмов представляет собой законченный программный продукт. Он позволяет значительно сократить время и повысить качество разработки управляющих алгоритмов за счет использования визуальных средств разработки. Система позволяет на этапе проектирования отслеживать возможные ошибки в алгоритме и предупреждать пользователя о месте их возникновения. Кроме того, разработанная система дополняет существующую систему разработки управляющих алгоритмов, и реализует новый подход к проектированию управляющих алгоритмов.
Апробация результатов исследования. Система визуального конструирования находилась в опытной эксплуатации и была внедрена в ГНП РКЦ «ЦСКБ-Прогресс» г. Самары.
Основные положения диссертации.
Модификация многовходовой модели УА.
Математическая модель графического представления временной диаграммы УА и графический язык описания временных диаграмм.
Алгоритмы преобразования модифицированной многовходовой модели в модель временной диаграммы и обратного преобразования.
Структура диссертации.
Диссертация состоит из введения, четырех глав и заключения.
В первой главе описывается предметная область, состоящая из комплекса бортовой аппаратуры и множества управляющих алгоритмов. Анализируются основные способы представления управляющих алгоритмов. Рассматривается структура системы ГРАФКОНТ и определяется новый подход к разработке алгоритмов с применением визуального конструктора. Анализируются модели управляющих алгоритмов, используемые на практике. Формулируется и формализуется основная задача диссертации, состоящая в разработке системы визуального конструирования временных диаграмм управляющих алгоритмов.
Во второй главе анализируется графический способ представления УА - временная диаграмма. На основе проведенного анализа вводится базовое множество элементов, на котором строится математическая модель временной диаграммы УА в виде алгебраической системы. Формулируются основные аксиомы модели и на их базе доказываются некоторые важные ее свойства. Разрабатывается набор операций визуального конструктора. Кроме того, проводится модификация многовходовой модели управляющего алгоритма, вводится новая, преобразованная форма ее записи.
В третьей главе на базе разработанной модели временной диаграммы строится графический язык, формулируются и рассматриваются его свойства. Также строятся алгоритмы трансляции многовходовой модели и модели графического представления УА.
Четвертая глава посвящена описанию программной реализации разработанных моделей и алгоритмов. Приводится структура программной системы, объектная модель представления внутренних данных и структуры входных и выходных данных. Описывается новый подход к проектированию УА с использованием визуального конструктора. Оценивается эффективность применения визуального коснтруктора.
Предметная область — бортовые управляющие алгоритмы
Для того чтобы рассмотреть и проанализировать виды и структуру управляющих алгоритмов летательного аппарата, необходимо рассмотреть объект управления - комплекс бортовой аппаратуры.
Современные летательные аппараты, как правило, предназначены для решения многих задач, что обуславливает большое количество приборов и подсистем различного предназначения. Одни системы предназначены для обеспечения жизнедеятельности и бесперебойной работы всего летательного аппарата. Другие имеют узкую направленность на решение определенной научной или технической задачи или на проведение экспериментов [1]. В состав этих систем входят элементарные технические устройства — датчики, приборы, агрегаты, двигатели и т.п.
Устройства общей направленности образуют системы. Системы, взаимодействуя друг с другом, все вместе образуют комплекс бортовой аппаратуры. Таким образом, весь комплекс можно описать иерархической моделью, показанной на рисунке 1.1.
Характерным примером системы, входящей в комплекс бортовой аппаратуры, является система управления движением. Она включает в себя следующие приборы: комплексная двигательная установка (КДУ), блок датчиков угловых скоростей, построитель местной вертикали, построитель местной вертикали высотный, приборы включения питания, отключение нагревателя воздуха, сигнализатор давления гидроаккумуляторов, сигнализатор давления наддува [75]. КДУ состоит из маршевого двигателя для управления движением центра масс и реактивных двигателей для управления движением относительно центра масс, в частности для гашения угловых скоростей.
Одной из задач, которые решает система управления движением, является задача перевода космического аппарата в ориентированное положение. Перевод производится после построения местной вертикали. Два типа построителей местной вертикали предназначены для построения ее на разновысотных орбитах. Прибор включения питания подает питание на все системы космического аппарата. Отключение нагревателя воздуха производится при переходе из дежурного полета в ориентированный. С использованием сигнализаторов давления управляемые реактивные двигатели выполняют перевод космического аппарата в ориентированное положение [56]. Все действия по переводу аппарата в ориентированное положение с использованием системы управления движением должны быть строго синхронизированы во времени и выполнены по определенному закону, в зависимости от состояния приборов и показаний датчиков.
Большинство устройств в комплексе бортовой аппаратуры имеют высокую степень автономности. Некоторые - полностью саморегулируемы, и не нуждаются ни в каких внешних управляющих воздействиях. Однако большинству приборов для синхронной и корректной работы необходимы управляющие сигналы извне.
Для управления комплексом бортовой аппаратуры предназначен бортовой вычислительный комплекс, который является одной из основных систем летательного аппарата. Комплекс включает в себя информационные и управляющие каналы связи практически со всеми остальными системами, а также содержит бортовую вычислительную систему. Бортовая вычислительная система, в свою очередь, состоит из нескольких цифровых вычислительных машин, каждая из которых ответственна за определенный круг задач [75]. На вычислительных машинах установлена бортовая операционная система, под которой выполняются все программы, реализующие управляющие алгоритмы.
Выполнение управляющих программ производится в реальном времени параллельно с опросом состояния датчиков и приборов и с передачей данных другим системам [62]. При этом большинство элементов бортовой аппаратуры пассивны с точки зрения управления и являются лишь получателями управляющих сигналов. Задача комплекса управления при этом ограничивается своевременной и синхронной выдачей таких сигналов в зависимости от состояния датчиков и приборов.
Как уже отмечено выше, непосредственное управление работой того или иного прибора осуществляется его собственной управляющей программой, реализующей управляющий алгоритм прибора. Этот алгоритм обеспечивает решение прибором своей функциональной задачи. Фактически, управляющие алгоритмы приборов являются управляющими алгоритмами низшего уровня.
На более высоком уровне находятся так называемые алгоритмы режима. Эти алгоритмы призваны обеспечить решение целевой задачи комплексом бортовой аппаратуры в определенной ситуации [56]. Характерными примерами режимов являются маневр, ориентация, внештатная ситуация и др. Соответствующими целевыми задачами являются перевод летательного аппарата в ориентированное положение, перевод в штатный режим полета и т.д. В своей работе алгоритмы режима вызывают управляющие алгоритмы приборов.
На самом верхнем уровне иерархии находится алгоритм планирования. Этот алгоритм ответственен за выполнение всей программы полета, которая включает в себя набор крупноблочных операций, таких как отделение, инициирование, решение целевых задач, завершение функционирования [86]. При выполнении этих операций летательным аппаратом, он последовательно находится в одном из множества режимов. Соответственно алгоритм планирования должен вызывать соответствующие алгоритмы режимов в определенные моменты времени.
Модификация многовходовой модели
Рассмотрим подробнее многовходовую модель управляющего алгоритма. Каждый линейный участок, входящий в модель, представляет собой набор последовательно выполняемых функциональных задач. Как было сказано ранее, функциональная задача с точки зрения управляющего алгоритма представляет собой «черный ящик», характеризующийся входными и выходными данными. Таким образом, функциональную задачу можно определить следующим образом.
Определение 2.1: Функциональная задача — это отображение у = f(x), где х, у — соответственно входные и выходные данные отображения.
При этом х и у являются некоторыми подмножествами (векторами) в информационном множестве.
Графическое представление такого определения представлено на рисунке 2. При этом если две функциональные задачи выполняются последовательно, то графически это можно представить следующим образом. Можно сказать, что последовательность функциональных задач, приведенная на рисунке 2.2, реализует отображение: у-ад«Ґ2(х2) (х,).
При этом операцию можно интерпретировать следующим образом: - композиция двух отображений, если х2 = уь В этом случае осуществляется композиция отображений: у = f(x) = (хг) fi(xi)- При этом ОЧеВИДНО, X = Х(, у У2 - последовательность двух отображений, если Х2 \ Уі Ф 0. В этом случае у = fix) = (f2(x2); fi(xO) их = х,и(х2\ уі), у = yi \ х2 w у2.
Распространяя рассуждение на произвольное количество последовательно выполняемых функциональных задач, получаем, что любой линейный участок реализует отображение у = f(x), являющееся комбинацией отображений входящих в него функциональных задач. Таким образом, представляя логические переменные условными блоками, многовходовую модель можно представить в виде блок-схемы. Пример такой блок-схемы, соответствующей дереву линейных участков из рисунка 1.9, приведен на рисунке 2.3.
Как видно из блок-схемы в зависимости от комбинации значений логических переменных ai и а2 алгоритм будет реализовывать различные функции. Если каждому линейному участку поставить в соответствие реализующее его отображение, то, например, при ai — 0 алгоритмом будет реализовано отображение у = f(x) = f2(x2) fi(X). Полное отображение алгоритма можно представить в следующем виде: Ґ2(х2) г і(х,),если aj =0 у = ґ(х)=«ґ4(х4) ґ3(хз) ґ1(х1),если (а,=1)л(а2 = 0) .f5 (х5) f3 (хз ) fi (хі Хесли (а, =1)л(а2 =1)
Определение 2.2: Представление многовходовой модели в виде реализуемого ей отображения будем называть функциональной записью многовходовой модели.
В дальнейшем при описании многовходовой модели будем использовать блок-схему или функциональную запись.
Характерной особенностью существующей многовходовой модели является древовидная форма представления линейных участков. При такой последовательности каждый линейный участок выполняется после одного и только одного другого линейного участка и может зависеть от выходных данных этого участка [53].
Однако как показывает практика, зачастую одна и та же часть алгоритма может быть выполнена при различных условиях. Так, например, ориентация летательного аппарата выполняется как первоначально, при выходе на орбиту, так и неоднократно в нештатных ситуациях, связанных с потерей ориентации [75]. В этом случае линейный участок (или последовательность линейных участков) может быть выполнен после завершения выполнения одного из двух других линейных участков. То есть имеет место зависимость одного линейного участка от выходных данных двух других участков. Такую зависимость, очевидно, нельзя описать средствами существующей многовходовой модели. Можно выделить два характерных случая таких алгоритмов. Рассмотрим подробно каждый из них.
1. Линейный участок выполняется последовательно за двумя другими линейными участками в случае, когда задачи, входящие в этот участок, должны быть выполнены независимо от значения условия, которое определяет выполнимость предыдущих линейных участков. Характерным примером такого случая является задача отключения нагревателя воздуха, которая выполняется в конце режима ориентации независимо от того, первоначально ли выполняется ориентация или вследствие возникновения нештатной ситуации. Данный случай можно представить в виде блок-схемы, приведенной на рисунке 2.4.
В данном примере функциональные задачи из LU4 выполняются независимо от значения переменной ai сразу после окончания выполнения линейных участков LU2 и LU3. При этом данную блок-схему уже нельзя описать бинарным деревом, так как полустепень захода в вершину LU4 равна двум.
Таким образом, возникает случай, когда передача управления между участками не связана непосредственно с логической переменной, что противоречит существующей многовходовой модели. При этом область определения отображения f4 формируется из областей значений отображений f2 и f3, то есть Х4 z у2 и х4 = Уз Данный случай легко описывается функциональной записью многовходовой модели: y = f(x) = ґ4(х4) Г2(х2) ґі(х1),если aj=0 ґ4(х4) ґз(хз) і і(х,),если а, =1
Таким образом, в модифицированной многовходовой модели мы откажемся от предикатной записи связи линейных участков, и будем использовать функциональную запись. При этом передача управления от одного линейного участка к другому не обязательно будет связана с предикатом условия, а сможет осуществляться и безусловно.
2. Второй случай связан с тем, что иногда требуется выполнить ту или иную часть алгоритма при разных значениях логических условий. Например, построитель местной вертикали должен быть включен как при отработке разгонного импульса, так и в случае отключения построителя высотной вертикали. В этом случае один и тот же линейный участок (или несколько линейных участков) должен быть выполнен в разных местах алгоритма при разных значениях разных логических переменных.
Графический язык описания временных диаграмм
Поскольку в качестве основной математической модели управляющего алгоритма, положенной в основу визуального конструктора, используется алгебраическая система, очевидно, что графический язык, базирующийся на такой модели, должен отвечать следующим требованиям:
1. Так как алгебраическая система рассматривается как пара D, R , где D - множество деревьев системы, R - отношение связи по управлению, графический язык должен содержать описание этого множества и отношений между элементами этого множества;
2. Основным множеством модели дерева алгоритма является множество элементов Е, поэтому графический язык должен содержать в себе описание всех элементов временной диаграммы.
3. Графический язык должен иметь средства для задания отношений на множестве элементов временной диаграммы, так как эти отношения входят в модель, описывающую дерево временной диаграммы.
Таким образом, разрабатываемый графический язык должен описывать как множество деревьев временной диаграммы, так и множество элементов каждого дерева, а также учитывать отношения на этих множествах. Иными словами это объектно-ориентированный язык, формализующий способы взаимодействия объектов [21].
Одним из основных множеств, необходимых для описания языка, является множество символов, составляющих алфавит языка [28]. В качестве алфавита разрабатываемого графического языка используется набор графических примитивов, описанный в 2.2. Таким образом, алфавит графического языка состоит из 16 графических символов, 12 из которых описаны в перечне графических элементов временных диаграмм и в ГОСТ 19.701-90, а остальные 4 описаны в пункте 2.2 настоящей диссертации. Эти 16 символов образуют множество терминалов формальной грамматики, соответствующей графическому языку. В дальнейшем для обозначения графических символов будем использовать их название. Таким образом, множество терминальных символов графического языка выглядит следующим образом: VT — {индикатор, передача/прием управления, выдача команды, выдача управляющего сигнала, текстовая часть, вызов подпрограммы, входной элемент, условный блок, уставка временного интервала, подключение/отключение канала, занесение запроса, выходной элемент, переход, пустой элемент, закрывающий элемент, принимающий элемент перехода} (1)
Каждый графический примитив может содержать достаточно большой участок последовательного кода, который может считаться единым и неделимым целым. Все графические примитивы будем разделять на 6 групп, описанных в 2.3.1. Таким образом, можно выделить 6 основных нетерминалов: Вход ::= входной элемент прием управления; ОВ ::= индикатор условный блок переход; ФЗ ::= выдача команды выдача управляющего сигнала текстовая часть вызов подпрограммы j подключение/отключение канала занесение запроса пустой элемент; УВИ ::== уставка временного интервала; КВ ::= закрывающий элемент принимающий элемент перехода; Выход : := выходной элемент передача управления.
Введенные основные нетерминалы образуют словарь или множество лексем графического языка, которое описывает все элементы временной диаграммы.
Для построения дерева из графических примитивов они связываются между собой, располагаясь на временной диаграмме вплотную друг к другу, и образуя линию временной диаграммы. Так как согласно утверждению 2.3 любое дерево полностью характеризуется множеством своих сквозных цепочек, то будем рассматривать формальную грамматику, порождающую сквозные цепочки дерева.
Согласно определению сквозной цепочки можно сформировать следующее правило вывода: СЦ ::= Вход ЦепочкаХВыход ;
При этом под нетерминалом Цепочка здесь понимается последовательность элементов, не содержащая входных и выходных элементов. Таким образом, для цепочки элементов можно сформулировать следующее правило вывода: Цепочка ::= ЛУ ЛУ ОВхЦепочка КВ ЛУ \ ЛУ ОВ Цепочка ] ЛУ КВ Цепочка
Здесь мы ввели дополнительный нетерминал ЛУ , соответствующий линейному участку, определенному в многовходовои модели управляющего алгоритма. Так как линейный участок представляет собой последовательность операторов без передач и приемов управления извне, то ему будет соответствовать следующее правило вывода: ЛУ ::= ФЗ ФЗ ЛУ УВИ УВИХИУ
Однако введенные правила не позволяют сформировать простейший структурный объект построенной модели — дерево нулевой длины. Действительно, согласно правилам вывода между входным и выходным элементами сквозной цепочки будет находиться хотя бы один элемент. Для того чтобы устранить эту противоречивость необходимо ввести следующее правило: ЛУ := 0, где 0 - обозначает пустой символ. Объединив все полученные нетерминалы, получим следующее множество: VN = { Вход , ОВ , ФЗ , УВИ , КВ , Выход , ЛУ , Цепочка , СЦ } (2) Таким образом, формальная грамматика сквозных цепочек выглядит следующим образом: G = VT,VN,S,R ,rfle VT — множество терминалов, определенное в (1); VN — множество нетерминалов, определенное в (2); S = СЦ - начальный символ. R — совокупность всех введенных правил вывода.
Анализируя введенные правила вывода, можно сказать, что построенная формальная грамматика является контекстно-свободной и определяет, таким образом, контекстно-свободный графический язык [90]. Благодаря использованию рекуррентных правил порождаемый язык бесконечен.
Структура визуального конструктора
Структура программных модулей, входящих в визуальный конструктор временных диаграмм, обусловлена математическим и алгоритмическим обеспечением системы. Кроме того, структурная схема обуславливается местом визуального конструктора в системе ГРАФКОНТ. Структура программных модулей визуального конструктора приведена на рисунке 4.1.
Основным программным средством системы ГРАФКОНТ является интегрированная оболочка, объединяющая все части системы. Интегрированная оболочка предоставляет пользователю удобную среду управления данными и средствами их обработки. При этом в рамках базового принципа CALS данные отделены от прикладных программных средств, которые представляют собой отдельные, вызываемые из интегральной оболочки, модули [68].
После вызова на выполнение визуального конструктора управление передается его оболочке, которая обеспечивает общий пользовательский интерфейс и согласованный вызов отдельных частей визуального конструктора. Общий вид оболочки визуального конструктора приведен на рисунке 4.2.
С помощью оболочки визуального конструктора пользователь может либо загрузить ранее созданный управляющий алгоритм, либо начать создание нового. Все возможные операции в оболочке могут быть осуществлены как с помощью меню, так и с помощью панелей управления. При открытии существующего алгоритма его многовходовая модель передается транслятору, который переводит ее в графическое представление. По окончании работы с управляющим алгоритмом, он может быть оттранслирован в многовходовую модель и в таком виде передан интегрированной оболочке. Кроме того, сконструированная временная диаграмма может быть распечатана на бумажном носителе либо сохранена в формате обмена чертежами dxf для последующей обработки в графических редакторах.
При редактировании алгоритма в визуальном конструкторе пользователю доступны два набора операций:
1. Операции с представлением алгоритма на временной диаграмме Данный набор операций предназначен в первую очередь для изменения параметров временной диаграммы как единого целого. Он включает в себя такие операции как изменение размеров чертежных листов, изменение пропорций элементов, добавление и удаление чертежных листов, перемещение отдельных деревьев на чертежных листах.
С помощью перечисленных операций пользователь может настроить параметры отображения временной диаграммы на листах, а также изменить расположение отдельных ее частей. В результате пользователю предоставляется возможность придать этому конструкторскому документу окончательный вид для дальнейшей печати или обработки. Это позволяет реализовать один из базовых принципов CALS - безбумажное представление информации в виде электронных документов [29, 93].
2. Операции с элементами на временной диаграмме
Эти операции предназначены для редактирования или конструирования временной диаграммы управляющего алгоритма. Они реализуют все операции на математической модели, разработанные и описанные во второй главе диссертации. Кроме того, для удобства пользователя реализованы операции копирования и вставки элементов через буфер обмена, что позволяет сократить объем действий при конструировании алгоритма из однотипных объектов.
С помощью перечисленных операций пользователю предоставляется возможность конструирования временной диаграммы управляющего алгоритма и редактирования параметров ее отображения. Основной задачей визуального конструктора при этом является задача оптимального и в то же время логически правильного расположения деревьев на чертежном листе. При этом необходимо учитывать как ограничения, налагаемые синтаксисом и семантикой временной диаграммы, так и ограничения чертежного листа, как конструкторского документа.
Соблюдение синтаксических ограничений реализовано на уровне математической модели и осуществляется в рамках операций с элементами временной диаграммы. Некоторые семантические ограничения, такие как, например, наличие соответствующего приема для каждой передачи управления, также реализованы на уровне модели в виде соответствующих отображений и отношений.
Для обеспечения ограничений документации при любом изменении конфигурации временной диаграммы или при осуществлении операции, конструктор проверяет все измененные деревья на взаимное непересечение и попадание в рамку чертежного листа и, если необходимо, автоматически осуществляет необходимые сдвиги. По желанию пользователя может быть включена опция автоматического разбиения деревьев и переноса их. частей на другие чертежные листы.
Кроме соблюдения перечисленных ограничений визуальный конструктор позволяет оптимизировать представление временной диаграммы на синтаксическом уровне. Так в частности реализовано автоматическое удаление пустых элементов диаграммы, а также комбинирование нескольких последовательных приемов информации в один. Эти операции позволяют автоматически привести временную диаграмму к оптимальному с точки зрения отображения виду.
Программное обеспечение визуального конструктора реализовано на языке Object Pascal с помощью среды разработки Borland Delphi. Данная среда является профессиональным средством разработки программ на IBM PC - совместимых компьютерах, обладает богатой библиотекой функций, развитыми графическими средствами, а также поддерживает современную объектно-ориентированную технологию программирования [24]. Визуальный конструктор предназначен для использования в операционных системах семейства Windows 9х, как наиболее широко используемых и предоставляющих необходимый уровень графического интерфейса.
При разработке визуального конструктора использовались механизмы объектно-ориентированного программирования, как наиболее современного подхода, отвечающего поставленным задачам [21, 25, 88]. Следующие пункты диссертации посвящены описанию объектных моделей визуального конструктора и реализованных трансляторов.