автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Графическая инструментальная среда для визуального построения и применения пакетов программ
Автореферат диссертации по теме "Графическая инструментальная среда для визуального построения и применения пакетов программ"
РОССИЙСКАЯ АКАДЕМИЯ НАУК СИБИРСКОЕ ОТДЕЛЕНИЕ ИНСТИТУТ ДИНАМИКИ СИСТЕМ И ТЕОРИИ УПРАВЛЕНИЯ
На правах рукописи
PPS т
УДК: 681.3.06 уЗ UV-Sd Sj^QC'
Феоктистов Александр Геннадьевич
Графическая инструментальная среда для визуального построения и применения пакетов программ
05.13. И - математическое и программное обеспечение
вычислительных машин, комплексов, систем и сетей
Автореферат диссертации на соискание ученой степени кандидата технических наук
Иркутск, 2000
Работа выполнена в Институте динамики систем и теории управления (ИДСТУ) СО РАН.
Научный руководитель:
доктор технических наук Г.А. Опарин
Официальные оппоненты:
доктор технических наук, профессор Л.В. Массель
кандидат технических наук И.В. Бычков
Ведущая организация:
Институт математики и экономики Иркутского государственного университета
Защита состоится 6 июля 2000г. в часов на заседании диссертационного совета ДООЗ.64.01 при Институте динамики систем и теории управления СО РАН по адресу:
664033, г.Иркутск, ул.Лермонтова, 134.
С диссертацией можно ознакомиться в библиотеке Института динамики систем и теории управления СО РАН.
Автореферат разослан " Ь " июня 2000г.
И.о.ученого секретаря диссертационного совета Д003.64.01, д.т.н., профессор А.И.Тятюшкин
Общая характеристика работы
Актуальность темы. В практике проектирования систем управления сложными динамическими объектами широко применяются методы математического моделирования, позволяющие учитывать переменность коэффициентов и разного рода нелинейности при отработке таких систем. Основным программным инструментом математического моделирования являются пакеты прикладных программ, существенно повышающие уровень автоматизации решения прикладных задач. Создание и применение инструментальных систем (ИС), поддерживающих функционирование и определенные технологии проектирования пакетов программ, значительно сокращают сроки разработки, снижают стоимость и гарантируют высокое качество программного продукта.
Центральное место в современной методологии создания пакетов программ занимает инструментальная поддержка следующих этапов процесса их разработки и применения: 1) описание знаний о проблемной области (ПО); 2) формирование постановок исследовательских задач в контексте сформированного описания ПО и конструирование схем решения этих задач (конструирование абстрактных программ) в терминах понятий ПО (с возможностью автоматического получения разрешающих схем решения и их автоматического преобразования); 3) исполнение схемы решения задачи путем ее интерпретации или синтез для этой схемы программы на базовом языке программирования.
Традиционная ориентация инструментальных систем на использование текстовых языков, несмотря на удобство их синтаксических конструкций, в конечном счете, не адекватна графическому образному мышлению исследователя-проектировщика систем управления, особенно на стадии первичных представлений о ПО. Исследования в области перспективных технологий программирования показывают, что визуальные методы и графический стиль программирования (Л.А.Калужнин, А.П.Ершов, М.С.Бургин, И.В.Вельбицкий, В.В.Иванищев, Э.Х.Тыугу, G.A.Raeder, Chang Shi-Kuo и др.) предлагают более естественную форму для выражения алгоритмов и структур данных по сравнению с текстовыми линейными языками.
Таким образом, создание графической инструментальной среды (ГрИС) для разработчиков и пользователей пакетов программ, обеспечивающей снижение требований к уровню их подготовки, а также естественность представления широкого класса алгоритмов и структур данных, а поэтому уменьшение вероятности ошибок и ускорение процесса разработки сложных программных комплексов и решения прикладных задач, представляет одно из важнейших направлений теории и практики автоматизации программирования. Графические возможности современных ЭВМ делают возможным эффективное решение этой задачи.
Цель работы. Основной целью диссертации является разработка и реализация для персональных компьютеров специализированной инструментальной среды, обеспечивающей простоту, ясность и выразительность интерфейса с пользователем и позволяющей наглядно отображать процессы представления, накопления, модификации, отладки и использования пакетных знаний любой допустимой сложности на разных уровнях абстракции и детализации.
Методы исследования. При решении поставленных задач использовались методы системного и прикладного программирования, характерные для автоматизации разработки больших программных комплексов, методы доказательного программирования и методы систем баз данных.
Научная новизна. Новизна представленного в диссертации подхода состоит в тотальной графической визуализации и инструментальной поддержке всех этапов технологического процесса построения и применения пакетов программ, создания, в конечном счете, среды, адекватной графическому образу мышления специалиста в ПО.
Практическая значимость. Применение разработанной в диссертации инструментальной системы ВИЗИТ дает возможность специалистам в ПО самостоятельно, без участия высококвалифицированных системных программистов, накапливать в памяти компьютера большие массивы разнородных знаний и эффективно использовать эти знания для решения возникающих задач.
Исследование, разработка и применение рассматриваемых в диссертации программных средств выполнены в течении 1987-2000г.г. в рамках плановых тем ИДСТУ СО РАН, в рамках ГНТП "Информатизация России" (проект N 222.30, 1991-1995г.г.; проект 037.02.296.108/1-96, 1996-1998г.г.), а также поддержаны грантом РФФИ (проект N95-07-19045).
Получены 3 свидетельства об официальных регистрациях программ в Российском агентстве по патентам и товарным знакам (РОСПАТЕНТ).
Инструментальная система ВИЗИТ внедрена в нескольких организациях образовательного и научно-исследовательского профиля.
Апробация работы. Основные результаты работы докладывались на конференциях молодых ученых вузов Иркутской области (Иркутск 1987, 1988), на школах по технологии разработки ППП (Иркутск, 1989, Адлер, 1991), на Всероссийской школе "Компьютерная логика, алгебра и интел-лектное управление" (Иркутск, 1994), на Международных симпозиумах "Интеллектуальные системы" (ИНТЕЛС'96, Санкт-Петербург, 1996, ИНТЕЛС'98, Псков, 1998), на XI Байкальской международной школе семинаре "Методы оптимизации и их приложения" (Иркутск, 1998), на конференции «Ляпуновские чтения» (Иркутск, 1999), на семинарах ИДСТУ СО РАН. ' . '
Публикации. По теме диссертации опубликовано 15 печатных работ.
Структура и объем работы. Диссертация состоит из введения, четырех глав, заключения, списка литературы из 79 наименований, восьми при-
ложений и списка сокращений. Общий объем работы 148 страниц, из них 108 страниц основного текста, включающего 9 рисунков и 1 таблицу.
Содержание работы
Во введении выполнен обзор визуальных методов и средств программирования применительно к пакетам программ, а также основных направлений исследований и существующих программных средств по конкретизации программ, обоснована актуальность темы диссертации, сформулирована цель исследования, показана научная новизна и практическая значимость полученных результатов, приведена структура работы в виде кратких аннотаций глав.
В первой главе разработаны графическая модель ПО ГрИС ВИЗИТ и графический G-язык для ее описания, позволяющие: изображать описание ПО в логически структурированном двумерном виде; формулировать в графических терминах постановку исследовательской задачи; наблюдать за процессом синтеза абстрактной программы и ее преобразованиями; наглядно видеть выполнение абстрактной программы и получаемые промежуточные и конечные результаты; увидеть где и когда происходит некорректное действие, если выполнение абстрактной программы не дает ожидаемых результатов. Приведена технологическая схема построения графической модели ПО с помощью G-языка, разработаны и реализованы алгоритмы автоматического построения структурной схемы ПО.
В первом разделе главы рассмотрена символьная модель ПО ГрИС ВИЗИТ, которая полностью совпадает с соответствующей моделью ПО своего прототипа ИС САТУРН1.
Под моделью ПО понимается структура MnO=<Z,D,F,M,P>. Здесь Z= {z,,rj,...,z„} - конечное множество (вектор) параметров ПО, причем параметру е Z соответствует домен £> е D. F= {/,,/2,••■,/„} - конечное
множество символов операций арности q,xst,q2*s2.....q„ хsm; с каждым
символом операции / е F арности q х s связан набор in{f) входных (вход операции) и out(f) выходных (выход операции) параметров из Z. Операция / е F описывает возможность вычисления параметров oui(f) из параметров in{f) с помощью некоторой процедуры из М. В качестве параметров могут выступать как простые переменные, так и переменные сложной природы (массивы, структуры, объекты и т.д.); важно лишь, что каждому параметру г, s гдолжно соответствовать определённое множество его значений D,. PaZxF - множество условных операций (продукций). Семантика продукции р=<1,/>, I е Р, определяется следующим образом: если значение логического параметра / равно true, то, вообще говоря, возможно
' Васильев C.H., Опарин Г.А. Интеллектный подход к автоматизации проектных расчетов сложных управляемых систем // Оптимизация, управление, интеллект.-2000,-№4.- СЛ11-126.
выполнение операции / (в качестве условия допускается использование как самого логического параметра, так и его отрицания). В общем случае предполагается, что в имеются операции, выходы которых содержат логические параметры кортежей отношения Р.
В модели ПО выделяются три концептуально обособленных слоя знаний: вычислительных (знания о модулях), схемных (знания о параметрах и операциях) и продукционных (знания об условных операциях), над которыми формируются постановки задач и так называемые процессоры обработки знаний, обеспечивающие диалоговое конструирование ветвящихся и итеративных абстрактных программ с автоматическим планированием линейных участков вычислительного процесса. Каждый слой оперирует своим набором понятий. Иерархия слоев устроена так, что понятия продукционного слоя раскрываются через (имеют ссылки на) понятия схемного слоя, которые, в свою очередь, раскрываются через понятия вычислительного слоя. При этом в описании модели ПО выделяются следующие типы объектов (понятий или концептов): модуль, параметр, операция, продукция, процессор, постановка задачи. Описания объектов перечисленных типов составляют содержимое базы знаний пакета программ. Каждое описание соответствует объекту определенного типа. Значение объекта определяется значениями атрибутов объекта. В конце раздела приводится перечень атрибутов каждого объекта.
Во втором разделе главы введены понятия и определения, используемые при описании графической модели ПО ГрИС ВИЗИТ: пиктограмма - графический примитив, снабженный набором атрибутов (размер пиктограммы, число состояний пиктограммы, графические изображения состояний, число портов, список координат портов), с которым связаны синтаксические и семантические правила, позволяющие ему представлять элементы языка; структурная схема (СС) - плоскостной ансамбль взаимосвязанных пиктограмм (размеченный ориентированный или неориентированный граф); СС объекта - графическое представление описания структуры объекта; СС связей объекта - графическое представление связи объекта с другими объектами; СС непроцедурной и комбинированной постановки задачи — это СС процессора, расширенная средствами визуальной постановки задачи; СС процедурной постановки задачи и полной постановки задачи (абстрактной программы) - фрагмент СС процессора, дополненный графическими аналогами системных операторов; СС планирования вычислений - СС процессора, расширенная средствами визуализации процесса планирования вычислений; СС исполнения абстрактной программы - фрагмент СС процессора, расширенный средствами визуального мониторинга процесса решения задачи в режиме интерпретации. Под графической моделью ПО понимается семейство СС перечисленных выше типов.
Далее разработан Б-язык, имеющий две алгоритмически и функционально эквивалентные формы описания модели ПО (текстовую и графиче-
скую) и обладающий гибкими средствами создания СС из графических примитивов. При использовании графической формы, определенным наборам атрибутов каждого объекта символьной модели ПО ставится в соответствие символ в-языка, а описания объекта и отношений между ними представляются в виде соответствующих СС, что позволяет осуществить быстрый наглядный просмотр и редактирование всех описаний за счет возможностей более глубокого агрегирования информации. Текстовая форма С-языка применяется для внутреннего представления и хранения СС.
Множество символов в-языка распадается на три группы: пиктограмм Е, линий соединений Ь и надписей Я. В свою очередь, множество Е состоит из двух непересекающихся подмножеств В я и, где В - базисное множество пиктограмм, и - множество проблемно-ориентированных пиктограмм, создаваемых разработчиком пакета программ для однозначной идентификации объектов ПО на СС и отражения их концептуального смысла. В множестве В также выделяются подмножества А, О и С соответственно пиктограмм атрибутов объектов, системных операторов и коннекторов. Пиктограммы системных операторов исключают потребность в ключевых или зарезервированных словах и применяются при построении СС полной и процедурной постановок задач. Пиктограммы коннекторов (графические примитивы, используемые при слиянии и разветвлении линий соединений) предназначены для уменьшения общего числа линий соединений и их пересечений, что приводит к повышению наглядности СС. Множество Ь включает набор линий соединений пиктограмм из Е. Надписи (элементы множества II) представляют собой содержательные имена объектов.
Определена совокупность правил, устанавливающая, какие символы в-языка (из А, О и Ц), в каком порядке могут быть соединены соответствующими линиями (I), чтобы в итоге получилась СС, допустимая в 0-языке. В самом общем виде СС определяется как совокупность множеств 5" = (Е*, Ь*, Я*, С*), где Е*еЛи(Юи, Ь*, Я*, С* - подмножества соответствующих множеств Ь, Я, С.
Разработана технология построения графической модели ПО, включающая три этапа:
1) Создание разработчиком пакета программ для каждого объекта ПО уникальных пиктограмм, наилучшим образом отражающих концептуальный смысл данного объекта.
2) Создание СС параметров, операций, продукций и модулей (в рамках подсистемы конструктор пакета). При этом для каждого из этих объектов автоматически формируются и обновляются СС связей данного объекта с другими объектами, которые предназначены для контроля целостности базы знаний пакета программ при вводе, модификации и удалении объектов. СС связей процессора строится в диалоговом режиме. На СС связей процессора графически отображается какие параметры и операции
включены в данный процессор. На ее основе автоматически строится СС процессора - размеченный ориентированный граф, содержащий два типа вершин и три типа дуг: входная дуга соединяет вершину-входной параметр с вершиной-операцией, выходная дуга соединяет вершину-операцию с вершиной-выходным параметром, и, наконец, дуга-продукция соединяет вершину-логический параметр с вершиной-операцией. Задача построения СС процессора заключается в автоматическом формировании по формальному описанию модели процессора изображения такого ориентированного графа на экране компьютера.
Традиционные визуальные средства объектно-ориентированного программирования, используемые, например, для конструирования структурной схемы ПО «вручную» в хорошо известной системе NUT2, ориентированы на опытного исследователя-проектировщика и становятся неэффективными при резком возрастании числа объектов ПО. В ГрИС ВИЗИТ СС процессора строится автоматически по запросу, выполняемому после модификации модели процессора. Далее эта схема может быть скорректирована проектировщиком «вручную», что обеспечивает повышенную эффективность процесса построения сложных структурных схем в целом.
В данной главе представлены алгоритмы автоматического построения СС процессоров, для которых главным критерием качества результирующей СС процессора является ее наглядность с точки зрения геометрического представления на схеме причинно-следственных зависимостей между операциями и параметрами процессора, обеспечивающая эффективное (быстрое, простое и понятное) отображение процесса использования пакетных знаний при решении вычислительных задач. При этом различные критерии качества, первостепенные для проектирования различных технических устройств (например, минимизация суммарной длины проводников, числа пересечений, числа наиболее длинных связей, длины проводника и др.), отходят на второй план, а соответствующие им алгоритмы автоматического размещения элементов становятся неприменимы.
В процессе конструирования СС процессора используется внутреннее представление модели процессора МОП=(А,В,С), где А, В, С - булевы матрицы размерности mxn, единичные элементы которых определяются следующим образом: a,j=l для Zjein(fi); Ьу=1 для Zjeout(fl); с,,=1 для <Zj,fi>eP. Остальные элементы матриц А, В, С равны нулю. Алгоритм построения СС процессора разбит на 5 шагов:
I. , Формирование булевой матрицы предварительного размещения операций Т0;
II. Формирование булевой матрицы предварительного размещения параметров Тр на основе матрицы Т0;
2 Enn Tyugu. From Object-Oriented to Knowledge-Based Programming (NUT System Development Experience). In: Proceedings of 10th Knowledge-Based Software Engineering Conference (KBSE'95), Boston, MA, USA, 1995, pp 88-95.
III. Формирование на основе Т0 и Тр матрицы размещения (координатной решетки) Тг;
IV. Построение графического изображения СС процессора по матрице размещения Тг в виде стандартной формы языка реализации алгоритма (MS Visual Basic), при этом пиктограммы параметров и операций процессора из матрицы Тг размещаются на форме в качестве элементов управления данной формы и снабжаются соответствующими виду объекта контекстными меню и процедурами обработки событий;
V. Оптимизация графического изображения СС процессора.
3) На заключительном этапе создаются (на основе СС процессоров) СС постановок задач, планирования вычислений, абстрактных и специализированных программ, исполнения абстрактных программ (в рамках подсистемы монитор пакета). При этом пиктограммы (элементы управления соответствующей формы языка реализации) СС процессора снабжаются соответствующими контекстными меню и процедурами обработки событий, обеспечивающими функционирование конкретной СС: разметку исходных и целевых параметров задачи на СС непроцедурной постановки задачи; выбор требуемых системных операторов, параметров и операций на СС процедурной постановки задачи; визуализацию процесса планирования вычислений в автоматическом или пошаговом режимах и формирование СС абстрактной программы на СС планирования вычислений; ввод исходных данных, исполнение абстрактной программы в автоматическом или пошаговом режимах интерпретации и просмотр результатов расчетов на СС исполнения абстрактной программы; задание контекстных условий для специализации абстрактной программы.
Технологическая схема построения графической модели ПО приведена на Рис.1.
Во второй главе предлагаются методы конкретизации СС, основанные на аппарате смешанных вычислений и визуализации процесса преобразования СС. Показано, что диапазон применения средств конкретизации в ГрИС ВИЗИТ шире традиционного диапазона применения аналогичных средств, используемых в системах автоматизации построения пакетов программ на этапе разработки проблемных модулей3. В отличие от ряда известных отечественных и зарубежных программных разработок, ориентированных на решение проблемы конкретизации программ, написанных на языках программирования общего назначения4, рассматриваемые в диссертации средства конкретизации применяются к СС процессоров и абстрактных программ (при этом текст программы на базовом языке програм-
3 Бежанова M.M., Поттосин И.В. Средства разработки прикладного программного обеспечения с точки зрения современных требований и возможностей // Пакеты прикладных программ. Программное обеспечение вычислительного эксперимента,- М.: Наука, 1987. - C.S2-100.
4 Касьянов В.Н. Трансформационные методы и средства конструирования эффективных и надежных программ ( Кибернетика и системный анализ.- 1993.- N2,- С.30-40.); Kleinmbatscher P., Kriegshaber А., Zochling R., Gluck R. Fortran program specialization (ACM SIGPLAN Notic.- 1995.-30, N4. - P.61-70.) и др.
Рис.1.
мирования, если это требуется, синтезируется автоматически). Специфика графического конструирования СС, при их конкретизации, требует применения специальных алгоритмов преобразования (не используемых при конкретизации программ, написанных на языке программирования общего назначения) таких, как удаление (вставка) пиктограмм, линий соединений и коннекторов, оптимизация их графического размещения и др.
Смешанные вычисления в ГрИС ВИЗИТ используются для решения следующих проблем:
1) Специализация поливариантной СС абстрактной программы путем задания значений логических параметров, управляющих выбором алгоритмов решения задачи, с последующим удалением неиспользуемых альтернатив условных операторов и оптимизацией СС остаточной программы;
2) Специализация СС абстрактной программы путем фиксации значений части параметров (фиксация значения параметра означает, что при выполнении вычислений данное значение неизменно в любой точке исполняемой программы) с последующим выполнением частичных вычислений, редуцирующих и оптимизирующих преобразований;
3) Вычисления по СС абстрактной программы с частично заданными начальными данными с целью получения промежуточного результата, вычисляемого один только раз, и СС остаточной программы, многократно применяемой в дальнейшем и использующей в качестве входных данных полученный ранее промежуточный результат и задержанные на этапе частичных вычислений данные. После проведения частичных вычислений к СС абстрактной программе применяются редуцирующие и оптимизирующие преобразования.
4) Специализация СС процессора при частично заданных значениях логических параметров продукций, которые позволяет осуществлять выбор алгоритмов решения задачи. При этом какая-то часть модели ПО для данной задачи (или класса задач) становится избыточной. Такого рода избыточность в описании процессора устраняется путем специализации СС процессора.
5) Специализация СС процессора путем элиминации из СС объектов, ставших избыточными в силу сужения класса решаемых задач.
Если в первых трех случаях, при выполнении смешанных вычислений, мы имеем дело с преобразованием абстрактной программы в его, ставшем уже традиционным, понимании - преобразование программа-данные (А.П.Ершов), то в последних двух случаях происходит специализация описания ПО.
Для реализации процесса выполнения смешанных вычислений в ГрИС ВИЗИТ разработан интерпретатор частичных вычислений (Рис.2), принцип работы которого основывается на последовательном распознавании, графической разметке и исполнении фрагментов СС абстрактной программы (или процессора).
Рис. 2. Интерпретатор частичных вычислений
В третьей главе разработана системная архитектура и алгоритмы функционирования графической инструментальной среды для визуальной разработки и применения пакетов программ. Рассмотрены принципиальные моменты программной реализации ГрИС ВИЗИТ.
В общем виде структура ГрИС ВИЗИТ представляется в виде двух тесно связанных через базу знаний подсистем: графического конструктора пакета и графического монитора пакета.
Конструктор пакета реализован в виде пошагового транслятора СС, что обусловлено частыми модификациями модели ПО при разработке пакета программ. Данный подход обеспечивает трансляцию описания каждого объекта в отдельности вне зависимости его связи с другими объектами ПО и создает благоприятную среду для удобной и эффективной отладки пакета программ как в целом, так и отдельных его компонент. К основным функциям конструктора пакета относятся ввод, модификация и документирование описаний объектов ПО в виде СС объектов, а также их преобразование во внутреннее представление и размещение полученных массивов информации в системной базе данных пакета программ.
Основными компонентами конструктора пакета являются: конструктор библиотек проблемных модулей, конструктор схемных и продукционных знаний, библиотекарь пиктограмм, библиотекарь СС, конструктор монитора пакета, графический интерфейс с базовым языком программирования. Библиотекарь пиктограмм является автономным компонентом и может использоваться независимо от среды ГрИС ВИЗИТ. Связь между встроенными компонентами конструктора пакета и библиотекарем пиктограмм осуществляется через системную базу данных. Библиотека подпрограмм графического интерфейса с базовым языком программирования предоставляет возможность ее применения при разработке различных программных приложений с использованием библиотекаря пиктограмм. Конструктор монитора пакета обеспечивает автоматическую генерацию архитектурно подобных управляющих программ процессоров по их описаниям.
К основным функциям монитора пакета относятся построение и редактирование СС постановок задач, планирование на их основе СС абстрактных программ, ввод исходных данных, проведение вычислений по СС абстрактных программ, вывод полученных результатов. Основными компонентами монитора пакета являются визуальный постановщик задач, визуальный планировщик СС абстрактных программ и исполнительная подсистема.
В целом, в рамках ГрИС ВИЗИТ (Рис.3) разработаны и реализованы развитые средства визуализации и графические редакторы пакетных знаний, постановок исследовательских задач, процессов планирования, конкретизации и исполнения абстрактных программ, обеспечивающие особую (повышенную) наглядность описания ПО и решаемых на этом описании исследовательских задач.
Рис.3. Системная архитектура ГИС ВИЗИТ.
ГрИС ВИЗИТ реализована на языке MS Visual Basic и работает под управлением OS Windows. В качестве СУБД для системной и пользовательских баз данных используется реляционная СУБД MS Access.
В четвертой главе демонстрируются возможности инструментальной системы ВИЗИТ в части описания ПО, постановок задач и планирования схем их решения на примере разработки двух пакетов программ.
Средствами первого пакета программ решается наиболее часто используемая при анализе и синтезе систем управления задача вычисления собственных векторов и значений с использованием подпрограмм библиотеки EISPACK. При использовании вычислительных возможностей различных библиотек подпрограмм, в частности, EISPACK, исследователь (специалист в ПО) зачастую сталкивается с необходимостью разрабатывать управляющую программу на одном из языков программирования для решения своих исследовательских задач с применением процедур выбранной библиотеки программ. При этом перед ним встает вопрос выбора и корректного применения конкретных процедур. Разработанный средствами ГрИС ВИЗИТ пакет программ обеспечивает исследователю ПО возможность решать свои задачи в привычных для него терминах и понятиях по определенным технологическим схемам.
Второй пакет программ, разработанный с помощью ГрИС ВИЗИТ, предназначен для машинного моделирования процесса угловой стабилизации по каналу крена летательного аппарата с цифровой системой управления. Пакет машинного моделирования является специализированным, что выражается наличием в его составе системных средств выполнения численного интегрирования систем обыкновенных дифференциальных уравнений, продвижения и проверки окончания модельного времени, визуального представления результатов моделирования в виде графиков на экране компьютера.
Опыт создания рассмотренных выше программных систем подтверждает правильность и эффективность разработанного в диссертации подхода к автоматизации визуального построения и применения пакетов программ.
Приложения содержат дополнительный материал, характеризующий ГрИС ВИЗИТ в плане описания графических моделей ПО разработанных пакетов программ, осуществления постановок задач и планирования схем их решения, специализации СС процессоров и абстрактных программ, исполнения СС абстрактных программ.
Основные результаты диссертации
1. Разработаны графическая модель ПО пакета программ и графический G-язык для ее описания, обеспечивающие быстрое и наглядное описание объектов ПО и отношений между ними.
2. Разработаны и реализованы алгоритмы автоматического построения СС процессоров.
3. Сформулированы понятия и определения конкретизирующих преобразований СС, а также разработан и реализован конкретизатор СС абстрактных программ и процессоров, функционирующий на основе смешанных вычислений.
4. Разработана системная архитектура и алгоритмы функционирования графической инструментальной среды ВИЗИТ для визуального построения и применения пакетов программ.
5. Выполнена программная реализация ГрИС ВИЗИТ на ПЭВМ.
Список публикаций по теме диссертации
1. Феоктистов А.Г. Универсальный генератор автономной рабочей программы в метасистеме САТУРН II Тез.докл. IV конф. молодых ученых вузов Иркутской обл. Иркутск: ИГУ, 1987.- С.37.
2. Феоктистов А.Г., Феоктистов Д.Г. Генератор программ в инструментальной системе САТУРН // Тез.докл. VI конф. молодых ученых вузов Иркутской обл. Иркутск: ИГУ, 1988,- С.12.
3. Феоктистов Д.Г., Феоктистов А.Г. Генерация рабочих программ в инструментальной системе САТУРН // Программное обеспечение ЭВМ новых поколений. Тез.докл. VIII Сибирской школы по пакетам прикладных программ.- Иркутск: ИрВЦ СО АН СССР, 1989,- С.135.
4. Опарин Г.А., Феоктистов А.Г. Организация системной части lililí по линейной алгебре EISPACK средствами ИС САТУРН // Программное обеспечение математического моделирования, управления и искусственного интеллекта. Тез.докл. IX школы ППП-91.- Иркутск: ИрВЦ СО АН СССР, 1991.- С.112.
5. Опарин Г.А., Феоктистов А.Г., Феоктистов Д.Г., Конкретизатор схем вычислительного процесса в пакетах программ с автоматическим планированием вычислений // Компьютерная логика, алгебра и интел-лектное управление,- Иркутск: ИрВЦ СО РАН, 1994,-Т.1.-С.140-157.
6. Богданова В.Г., Опарин Г.А., Феоктистов А.Г., Автоматизация разработки схемоориентированных языков графического описания для моделирования систем блочной структуры // Компьютерная логика, алгебра и интеллектное управление.- Иркутск: ИрВЦ СО РАН, 1994,- Т.1.-С.101-114.
7. Опарин Г.А., Феоктистов А.Г., Феоктистов Д.Г. Комбинированный исполнитель схем вычислительного процесса в инструментально-технологическом комплексе САТУРН/ПЗ // Компьютерная логика, алгебра и интеллектное управление. - Иркутск: ИрВЦ СО РАН, 1995.-Т.З.- С.156-168.
8. Опарин Г.А., Феоктистов А.Г., Богданова В.Г. Системная САТУРН-среда пакетов знаний И Труды Второго международного симпозиума
"Интеллектуальные системы" (ИНТЕЛС'96)". Под ред. Пупкова К.А. (Санкт-Петербург, 1-4 июля 1996г.) В двух томах. Т.2.- М.: Изд-во РУДН-ПАИМС, 1996,- С.99-104. 9. Опарин Г.А., Феоктистов А.Г., Феоктистов Д.Г. Комбинированный режим исполнения абстрактных программ в инструментально-технологическом комплексе САТУРН/ПЗ // Автоматика и вычислительная техника. - 1996, N6. - С.77-84. Ю.Опарин Г.А., Феоктистов А.Г., Феоктистов Д.Г., Журавлев А.Е. Инструментальные средства построения и эксплуатации пакетов знаний // Управляющие системы и машины. - 1997, N1-3.-С.138-143. 11.Опарин Г.А., Феоктистов А.Г., Феоктистов Д.Г., Журавлев А.Е., Богданова В.Г. Графический конструктор широкоформатных структурных схем (ГрафКоСС). Свидетельство об официальной регистрации программы для ЭВМ N 970364. Москва: РосАПО, 1997.1с. 12.Опарин Г.А., Феоктистов Г.А., Богданова В.Г. Графическая системная САТУРН-среда пакетов знаний // Сб. трудов III межд.симпоз. "Интеллектуальные системы" (ИНТЕЛС'98). М.: ООО "TBK", 1998,- С.224-227. 13.Опарин Г.А., Феоктистов А.Г., Богданова В.Г., Новопашин А.П. Графический пакет программ LibPic (LibPic). Свидетельство об официальной регистрации программы для ЭВМ N 980495. Москва: РосАПО, 1998.1с. 14.0парин Г.А., Феоктистов А.Г., Богданова В.Г. Графический конструктор ИТК ВИЗИТ (ViDes). Свидетельство об официальной регистрации программы для ЭВМ N 990559. Москва: РОСПАТЕНТ, 1999.1с. 15.Опарин Г.А., Феоктистов А.Г. Конкретизатор структурных схем решения задач в пакетах знаний // Информационные технологии контроля и управления транспортными системами,- Иркутск: ИрИИТ, 2000.-Вып.6,- С.43-53.
В совместных работах автору принадлежат: [2, 3, 5, 14, 15] - технический проект и реализация; [4, 13] - реализация; [6, 11] - технический проект и реализация интерфейса и языка описания структурных схем; [710] - архитектура и алгоритмы функционирования монитора пакета программ; [12] - графическая модель ПО.
Оглавление автор диссертации — кандидата технических наук Феоктистов, Александр Геннадьевич
Введение.
Глава 1. Графическая модель проблемной области.
1.1. Символьная модель проблемной области в системе ВИЗИТ.
1.2. Графическая модель проблемной области в системе ВИЗИТ.
1.2.1. Графический в-язык описания пакетных знаний.
1.2.2. Расширение базового набора символов О-языка.
1.2.3. Графическая модель проблемной области в рамках конструктора пакета.
1.2.4. Графическая модель проблемной области в рамках монитора пакета.
1.3. Алгоритмы построения структурных схем процессоров.
1.3.1. Алгоритм А1.
1.3.2. Алгоритм А2.
1.3.3. Алгоритм АЗ.
1.3.4. Алгоритм А4.
1.3.5. Алгоритм А5.
Глава 2. Конкретизация структурных схем.
2.1. Основные понятия и определения.
2.2. Интерпретатор частичных вычислений.
2.2.1. Блок интерпретации.
2.2.2. Блок конкретизации.
2.3. Конкретизация структурных схем на основе смешанных вычислений
2.3.1. Конкретизация структурных схем абстрактных программ на основе смешанных вычислений.
2.3.2. Конкретизация структурных схем абстрактных программ на основе специализации.
2.3.3. Конкретизация структурных схем процессоров.
Глава 3. Архитектура системы ВИЗИТ.
3.1. Графический конструктор пакета.4.
3.1.1. Библиотекарь пиктограмм.
3.1.2. Графический интерфейс с базовым языком программирования.
3.1.3. Библиотекарь структурных схем.
3.1.4. Конструктор библиотек проблемных модулей.
3.1.5. Конструктор схем проблемной области.
3.1.6. Конструктор монитора пакета.
3.2. Графический монитор пакета.
3.2.1. Визуальный постановщик задач.
3.2.2. Визуальный планировщик структурных схем абстрактных программ.
3.2.3. Исполнительная подсистема.
3.3. Некоторые аспекты программной реализации системы ВИЗИТ.
Глава 4. Применение системы ВИЗИТ для разработки пакетов программ.
4.1. Графический пакет программ SPECTR для вычисления собственных значений и векторов с использованием библиотеки EISPACK.
4.2. Машинное моделирование цифровых автоматических систем управления летательных аппаратов с блочным описанием динамики функционирования.
4.2.1. Система ВИЗИТ как средство автоматизации машинного моделирования цифровых автоматических систем.
4.2.2. Пакет программ машинного моделирования системы угловой стабилизации летательного аппарата с БЦВМ.
Введение 2000 год, диссертация по информатике, вычислительной технике и управлению, Феоктистов, Александр Геннадьевич
В практике проектирования систем управления сложными динамическими объектами широко применяются методы математического моделирования, позволяющие учитывать переменность коэффициентов и различного рода нелинейности при отработке таких систем. Основным программным инструментом метода математического моделирования являются пакеты прикладных программ, существенно повышающие уровень автоматизации решения прикладных задач.
В самом общем виде пакет программ представляет собой совокупность взаимосвязанных программ его функционального наполнения и средств управления ими (системного наполнения), обеспечивающих решение задач из некоторого заранее определенного класса в содержательных терминах проблемной области (ПО). К системному наполнению пакета программ предъявляются все более высокие требования и, как следствие, стоимость и трудоемкость создания системных компонентов пакетов традиционными средствами программирования неуклонно возрастает. Поэтому автоматизация разработки пакетов программ находится в числе наиболее актуальных направлений развития прикладного программного обеспечения.
Перспективным подходом к решению данной проблемы является создание инструментальных систем (ИС), поддерживающих функционирование и определенные технологии проектирования пакетов программ. Применение таких систем значительно сокращает сроки разработки, снижает стоимость и гарантирует высокое качество программного продукта.
Центральное место в современной методологии пакетов программ занимает языковая поддержка следующих этапов процесса их разработки и применения: 1) описание знаний о ПО; 2) формирование постановок исследовательских задач в контексте сформированного описания ПО и конструирование схем решения этих задач из понятий ПО (с возможностью ав5 томатического получения разрешающих схем и их автоматического преобразования); 3) исполнение схемы решения задачи путем ее интерпретации или синтез для этой схемы программы на базовом языке программирования.
Использование текстового языка несмотря на удобство его синтаксических конструкций, использование словарей содержательных терминов ПО, специальные диалоговые формоориентированные шаблоны для представления информации, в конечном счете, не адекватно графическому образному мышлению исследователя-проектировщика систем управления особенно на стадии первичных представлений о ПО. Возникает необходимость в визуальном графическом языке, позволяющем фиксировать продукт мыслительной деятельности непосредственно в том виде, как он складывается традиционно в сознании пользователя, не прибегая к текстовым языкам посредникам.
За рубежом языки, опирающиеся на визуальную, графическую основу, получили название языков схем (структурных схем, граф-схем, блок-схем, диаграмм, структурограмм). Как отмечается в обзоре [1], такие языки предназначены для обработки объектов, которые не являются визуальными изначально, а представляются в таком виде для удобства пользователя. Эти языки, т.е. их программные конструкции и правила, могут иметь и текстовое и визуальное представление. Визуальные языки объединены одним общим понятием объектной иконы или пиктограммы [2]. Пиктограмма - это двойственное представление объекта, обозначаемое (хт, х;), где хт - логическая часть (значение), а х^ - физическая часть (изображение). Программные конструкты визуального языка рассматриваются как иконы процессов, т.е. двойственное, с логической и физической частями, представление вычислительного процесса, а применение визуального языка заключается в том, чтобы
3]: 6
- выбрать изображения, визуально представляющие структуры данных;
- изобразить желаемый алгоритм в логически структурированном, многомерном виде (двух или трехмерном);
- наблюдать за выполнением программы и наглядно видеть получаемые промежуточные и конечные результаты;
- видеть, где и когда происходит некорректное действие, если программа не дает ожидаемых результатов.
Графические возможности современных ЭВМ таковы, что открываются возможности использования способности человека обрабатывать изображения более эффективно, чем текст. Визуальные методы предлагают более естественную форму для выражения алгоритмов и структур данных по сравнению с текстовыми линейными языками [3]. Таким образом, с использованием графических схемных языков связывается одно из перспективных направлений развития прикладного программного обеспечения.
В пакетах программ визуальный графический подход позволяет описать ПО и постановки задач, а также реализовать мониторинг решения задач в виде плоскостных ансамблей связанных пиктограмм - структурных схем, выступающих в роли как спецификации понятий ПО (объектов и выполняемых над ними операций), так и описывающих отношения между ними. Графические представления впоследствии либо интерпретируются, либо подлежат переводу в текстовую форму для их дальнейшего анализа и трансляции.
Основной целью диссертации является исследование, разработка, реализация и применение графической инструментальной среды (ГрИС) ВИЗИТ для визуального построения и использования пакетов программ с использованием средств и методов доказательного (а именно конкретизирующего [4]) программирования. 7
1. Визуализация и конкретизация программ при автоматизированной разработке и эксплуатации пакетов программ (обзор)
Анализу вопросов визуализации процесса разработки и применения пакетов программ с точки зрения существующих средств и методов применяемых в данной области, а также особенностям предлагаемого в диссертации графического подхода посвящена первая часть обзора. Анализ основных направлений исследований по конкретизации программ и существующих инструментальных средств конкретизации составляет предмет второй части обзора.
1.1. Визуализация программ. Визуализация проектирования и применения сложных программных комплексов на сегодняшний день является одним из определяющих направлений развития прикладного программного обеспечения. Использование пиктограмм, структурограмм данных, блок-схем, различного рода диаграмм, графовых представлений, многооконного интерфейса и др. графических средств позволяет в сочетании с методами и средствами доказательного программирования совершенствовать методы разработки и эксплуатации программных комплексов и применяемые для автоматизации этой деятельности инструментальные средства. При этом, важными критериями оценки создаваемых инструментальных средств являются время разработки программного комплекса и требуемый уровень программистской квалификации специалиста в ПО, как правило, не профессионального программиста. Увеличение дружественности программных инструментов за счет применения технологии графической визуализации - направление исследований, которое активно развивается в современном программировании.
Одной из первых отечественных работ теоретического плана по применению графических средств в программировании является работа Л.А.Калужнина [5]. В ней рассматриваются граф-схемы алгоритмов, пред8 ставляющие собой графический аналог логических схем алгоритмов, введенных А.А.Ляпуновым в 1953 г. для описания блок-схем программ [6]. Классической работой по логическим схемам алгоритмов является работа Ю.ИЛнова [7]. Однако, как отмечает А.П.Ершов в [8], эта работа «не стала известна широкому кругу читателей, прежде всего, из-за того, что она написана довольно трудным языком, расчитанным в большей степени на специалистов по математической логике, нежели на программистов». Поэтому А.П.Ершов в своей работе [8] поставил цель найти более простое изложение работы [7]. Оказалось, что «если вместо логических схем алгоритмов, имеющих вид строк символов, рассматривать ориентированные графы, в которых операторы и логические условия являются вершинами графа, а стрелки изображают передачи управления, то уже за счет этого можно сделать большинство конструкций более прозрачными и понятными».
Таким образом, можно сказать, что блок-схемы в программировании являются как средством наглядного описания процессов, так и конструктивной схемой мышления. Как правило, документация по программным системам содержит блок-схемы [9]. В результате развития блок-схем появился целый ряд их модификаций: структурные схемы программ, схемы информационных связей, ШРО-диаграммы и т.д. [9].
Почти двадцать лет понадобилось для того, чтобы теоретическое исследование блок-схем в программировании перешло в фазу их практического использования. К этому периоду становления графического стиля программирования относятся работы [10-18]. К числу наиболее известных отечественных разработок этого периода, относится Я-технология, основанная на проектировании программ посредством их представления в виде иерархической системы Я-схем - нагруженных по дугам ориентированных графов.
В процессе экспериментирования с графическими языками программирования наряду с их несомненными достоинствами выявились и некоторые их недостатки [19], связанные с применением к разработке программ не9 большого объема, где выделение структуры алгоритма в явном виде с помощью блок-схем не требуется и может лишь замедлить работу. В этом случае информация в блок-схеме избыточна, т.к. структура алгоритма прозрачно отражена в самой программе. Для разработки же больших систем программного обеспечения (к которым относятся пакеты прикладных программ), при решении сложных проблем с помощью ЭВМ, наличие блок-схем приносит неоспоримую пользу. В этом случае, как правило, возникают ситуации, сложность которых превосходит возможности даже наиболее подготовленных специалистов.
Нельзя не отметить в этом контексте приведенную в [19] положительную оценку блок-схем с точки зрения психологии человека. Все дело в том, что блок-схемы до определенной степени отражают временные соотношения в программе и в соответствующем ей вычислительном процессе, что обеспечивает более полное использование возможностей человеческого мозга, т.к. в мозгу человека существует специальная система обработки пространственно-временной информации. При решении сложных проблем (а сложность задач, для решения которых применяется вычислительная техника, растет) и при разработке больших систем привлечение дополнительных ресурсов человеческого мозга способствует повышению эффективности работы и достижению лучших результатов.
Значительно большая наглядность блок-схем позволяет использовать и другую особенность человеческого мышления. А именно, как показало изучение развития мышления, существует два типа мышления: абстрактное -теоретическое и конкретное - практическое. Оба типа развиваются и функционируют в непрерывном взаимодействии. Поэтому блок-схемы (как и любые схемы) дают возможность объединить абстрактное и конкретное мышление, так как они наглядно даны в пространстве (становясь объектом зрительного восприятия) и в то же время воплощают в условной форме сущест
10 венные отношения, отвлеченные от свойств реальных объектов и процессов, т.е. являясь объектом теоретического мышления.
Таким образом, для разработки и сопровождения больших программных систем графические языки спецификации и описания ПО имеют неоспоримые преимущества перед символьными языками. Наличие этих достоинств графического языка ни в коей мере не отвергает символьный язык. Более того, в развитых инструментальных средах программирования необходимо наличие двух алгоритмически и функционально эквивалентных форм - графической и символьной, а также конверторов, обеспечивающих переход от одной формы к другой. Дело в том, что языки основанные как на пространственных, так и на символьно-операторных структурах наиболее эффективны при решении сложных проблем [20].
На решение сложных проблем ориентированы и системы искусственного интеллекта, для теоретического исследования знаний в которых традиционно используется графическая нотация. Это, например, семантические сети [21], объектом описания которых являются элементы окружающего мира и связи между ними, сети Петри [22] (являющиеся обобщением графов переходов и конечных автоматов), которые представляют не только сам процесс, но и его управление. Изображения и графы в искусственном интеллекте эффективно используются для доказательства теорем [23]. Они оказывают большую помощь в проверке отсутствия зацикливания этапов, в полном и эффективном хранении задачи в памяти, в организации ввода новых элементов.
На практике использование семантической сети в качестве основного средства визуального представления знаний и визуального конструирования программ реализовано, например, в системе КЕ\¥ [24]. Сети Петри на практике широко используются в виде их проблемно-ориентированных расширений, среди которых наиболее известны Е-сети, комби-сети, Р1РО-сети, М-сети, словарные сети и др. Выбор конкретного языка сетей Петри определя
11 ется содержанием задач использования сетевых подсистем. Например, в [25] сети Петри используются при создании программного комплекса диспетчерского управления по эталонной сетевой модели гибкого производственного комплекса, в [26] для описания и изучения структурной динамики параллельных программ.
Среди семантических сетей выделяется важный для представления модели ПО класс сетей, называемых функциональными сетями [21]. Функциональные сети характеризуются наличием функциональных отношений. Их часто называют «вычислительными моделями», так как они позволяют описывать процедуры «вычислений» одних информационных единиц через другие. Вычислительные модели лежат в основе системы ПРИЗ [27]. Идеографическая модель ПО в системе автоматизации моделирования экономических, социальных и производственных систем САПФИР [28] также представляет развитие вычислительной модели.
Непосредственное отношение к сетевым моделям в программировании имеют исследования по реляционным, сетевым и иерархическим базам данных. Разработка моделей «сущность-связь» [29] еще больше сближает это направление с исследованиями в искусственном интеллекте.
С точки зрения визуализации процессов представления знаний, планирования и выполнения вычислений в пакетах программ можно выделить три группы инструментальных средств, автоматизирующих эти процессы.
1) Математические пакеты программ для выполнения научных и инженерных расчетов, базирующиеся на принципе визуализации (например, пакет визуального моделирования SIMULINK, входящий в состав системы MATLAB [30]). В таких системах отсутствуют средства доказательного программирования, а основной упор делается на визуализацию построения модели из блоков и визуализацию результатов научных расчетов.
2) CASE (Computer Aided Software Engineering) - системы позволяют в наглядной форме моделировать предметную область, анализировать эту мо
12 дель на всех этапах разработки и сопровождения программного средства, и разрабатывать приложения в соответствии с информационными потребностями пользователя. Большинство существующих CASE-средств основано на методологиях структурного или объектно-ориентированного анализа и проектирования, использующих спецификации в виде различного рода диаграмм. В структурных методологиях используют диаграммы потоков данных, функциональные диаграммы, диаграммы «сущность-связь», и диаграммы переходов состояний структурных диаграмм. В результате объектно-ориентированного проектирования получают набор взаимосвязанных диаграмм следующих типов [31]: диаграммы классов, диаграммы объектов, диаграммы модулей, диаграммы процессов.
Создание и модификация подобных диаграмм осуществляется с помощью специальных графических редакторов или диаграммеров, являющихся сервисными средствами на этапах анализа требований и проектирования спецификаций и позволяющих пользователю полностью сосредоточиться на собственно проектировании, не отвлекаясь на решение второстепенных вопросов, связанных с размещением диаграмм, их компановкой и т.п.
Однако следует отметить, что по мнению автора работы [29], в России наблюдается фетишизация CASE-средств, хотя, как отмечается в [32] существует множество примеров их неудачного внедрения, в результате чего CASE-средства становятся «полочным программным обеспечением» (shelfware). Одним из недостатков большинства CASE-систем [33] является поддержка единственной стратегии «grafics-in, text-out» (графика на входе, текст на выходе). Но нередко, как уже отмечалось выше при рассмотрении блок-схем, текст на специализированном языке может дать лучшее формальное описание, чем множество изображений и манипуляции мыши и необходимо разумное сочетание графической и символьной составляющей в рамках одного языка спецификаций.
13
3) Инструментальные средства разработки пакетов программ, с использованием средств графической визуализации ПО.
Одной из первых отечественных разработок в этой области являются система ДИСУППП [34] и ее графический аналог система ГРАФ-ПРОЦЕСС [35]. Обе базируются на абстрактно-автоматной модели - недетерминированном многовариантном преобразователе, функционирование которого специфицируется графами маршрутизации - ориентированными взвешенными мультиграфами. При решении задач обе системы поддерживают динамическое планирование вычислительного процесса.
Зарубежные инструментальные средства такого типа обычно либо акцентируют внимание на графической парадигме создания моделей, когда пользователь фактически "собирает" задачу из графических примитивов, за каждым из которых "стоит" объект в программном смысле (например, системы [36]) или просто предоставляет пользователю богатую библиотеку классов, из которых, как из кирпичиков, можно "сложить" нужную модель (примером является библиотека классов 1ЬОО [37]). Оба подхода, тем не менее, требуют высокой или средней программистской квалификации разработчика.
В диссертации используется иной - знаниеориентированный - подход, в котором функции синтеза модели и алгоритмов ее исследования возлагаются на графическую инструментальную среду системы ВИЗИТ, оставляя пользователю главным образом концептуальный уровень разработки. Данный подход базируется на графической визуализации и инструментальной поддержке всех этапов технологического процесса построения и применения пакетов программ, гибком сочетании графических и символьных языковых средств, комплексном применении при синтезе программ методов доказательного (сборочного + конкретизирующего) программирования.
В самом общем идейном плане и поставленной цели исследования и разработки (графическое описание модели ПО + синтез программ) система
14
ВИЗИТ близка к системе NUT [38], однако средства достижения цели (имеется ввиду архитектура системы, ее языковое, алгоритмическое, информационное обеспечение, программная реализация) в системе ВИЗИТ является уникальными и нацелены в основном на решение задач моделирования, анализа и проектирования систем управления сложными динамическими объектами. В этом смысле система ВИЗИТ является специализированной и отличается от системы NUT так же, как прототип ВИЗИТа система САТУРН [69] отличается от прототипа NUTa системы ПРИЗ [27]. Исследования по графической ориентации обоих систем, как ПРИЗ, так и САТУРН, были начаты практически одновременно и относятся к началу 90-х годов. Идея о необходимости привлечения графических средств в процессе конструирования пакетов программ "витала в воздухе" и появившиеся графические возможности компьютеров позволили реализовать эту идею на практике.
1.2. Конкретизирующее программирование. Согласно А.П.Ершову [40] конкретизирующее программирование, как один из способов доказательного программирования, дает метод построения специализированных программ из универсальной заготовки путем выполнения над ней определенных преобразований. Эти преобразования используются для синтеза, оптимизации, доказательства правильности и отладки программ. На основе анализа этапов становления и развития исследований по данной проблематике, а также ряда работ обзорного и обобщающего характера [41-45], можно выделить следующие направления применения аппарата конкретизирующих преобразований программ:
1) Смешанные вычисления. В основу данного направления [40] положена идея частичного вычисления функции по неполному набору значений ее переменных. Аппарат смешанных вычислений тесно связан с предложенной А.П.Ершовым концепцией трансформационной машины - некоторого абстрактного вычислительного устройства, командами которого являются базовые трансформации, а данными - программы [46]. Применение аппарата
15 смешанных вычислений (в их исходном понимании как преобразование пар программа-данные) к программам обеспечивает многообразие использования программного обеспечения.
2) Специализация программ. Данное направление концептуально связано со смешанными вычислениями. Конкретизирующее программирование [45] реализует принцип многократного применения программного продукта, содержанием которого является настройка готовой универсальной программы на некоторый суженный класс ее конкретных применений, с целью повышения качественных характеристик этой программы (т.е. формирование частного алгоритма в виде остаточной программы, генерируемой некоторым смешанным вычислителем).
3) Оптимизация программ. Преобразование программы в целях улучшения ее качества в традиционном для оптимизирующих трансляторов смысле [44], но с учетом характеристик самой трансляции и среды исполнения.
4) Логическое программирование. Как отмечается в работе [47], в логике формальные доказательства отличаются от обычных программ тем, что содержат больше информации об алгоритме, чем необходимо для его исполнения. Поэтому, возможно использование этой дополнительной информации для автоматического преобразования алгоритмов, в частности для их адаптации к специальным случаям. Эффективные методы выполнения и преобразования существующих доказательств рассматриваются в работе [47].
Применительно к разработке и применению пакетов программ для методов конкретизирующего программирования потенциально имеется широкий спектр их использования. В частности, задача адаптации целевой программы к текущему контексту ее использования может быть выполнена в пакетах программ как на уровне специализации проблемных модулей, так и на уровне специализации постановок задач, планов решения задач, описания модели проблемной области и ряда других компонентов пакета программ.
16
Этот диапазон приложений конкретизирующего программирования шире традиционного диапазона применения аналогичных средств, используемых в системах автоматизации построения пакетов программ на этапе разработки проблемных модулей [48] - подпрограмм на языках программирования общего назначения.
В отличии от ряда известных отечественных и зарубежных программных разработок, ориентированных на решение проблемы конкретизации программ, написанных на языках программирования общего назначения (например, [49-52]), рассматриваемые в диссертации средства конкретизации программ применяются к структурной схеме ПО и к структурной схеме абстрактной программы. Это позволяет повысить обозримость результирующих графических описаний модели ПО, а также частично заменить более сложные алгоритмы конкретизации программы на языке программирования общего назначения более простыми алгоритмами конкретизации структурной схемы абстрактной программы (при этом текст программы на базовом языке программирования, если это требуется, синтезируется автоматически).
2. Актуальность темы
Итак, создание удобной среды для разработчиков и пользователей пакетов программ, обеспечивающей снижение требований к уровню их подготовки, а также естественность представления широкого класса алгоритмов и структур данных, а поэтому уменьшение вероятности ошибок и ускорение процесса разработки сложных программных комплексов и решение прикладных задач, представляет одну из важнейших задач теории и практики автоматизации программирования. Данная тематика является предметом интереса специалистов в течение уже более 20 лет. Взгляды на пути реализации идеи автоматизации процессов разработки пакетов программ эволюционируют вместе с эволюцией взглядов на технологию программирования. В настоящее
17 время актуальность проблемы возросла в связи с тем, что резко повысилась потребность в создании больших программных комплексов в короткие сроки. С другой стороны, современные достижения в компьютерной технике делают возможным более эффективное решение этой задачи.
3. Цель работы
Основной целью диссертации является разработка и реализация для персональных компьютеров специализированной графической инструментальной среды ВИЗИТ, обеспечивающей простоту, ясность и выразительность интерфейса с пользователем и позволяющей наглядно отображать процессы представления, накопления, модификации, отладки и использования пакетных знаний любой допустимой сложности на разных уровнях абстракции и детализации.
4. Методы исследования
При решении поставленных задач использовались методы системного и прикладного программирования, характерные для автоматизации разработки больших программных комплексов, методы доказательного программирования и методы систем баз данных.
5. Научная новизна
Новизна представленного в диссертации подхода состоит в тотальной графической визуализации и инструментальной поддержке всех этапов технологического процесса построения и применения пакетов программ, создания, в конечном счете, среды, адекватной графическому образу мышления специалиста в ПО.
18
6. Практическая значимость
Применение разработанной в диссертации инструментальной системы ВИЗИТ дает возможность специалистам в ПО самостоятельно, без участия высококвалифицированных системных программистов, накапливать в памяти компьютера большие массивы разнородных знаний и эффективно использовать эти знания для решения возникающих задач.
7. Апробация
Основные результаты работы докладывались на конференциях молодых ученых вузов Иркутской области (Иркутск 1987, 1988), на школах по технологии разработки 111111 (Иркутск, 1989, Адлер, 1991), на Всероссийской школе "Компьютерная логика, алгебра и интеллектное управление" (Иркутск, 1994), на Международных симпозиумах "Интеллектуальные системы" (ИНТЕЛС'96, Санкт-Петербург, 1996, ИНТЕЛС'98, Псков, 1998), на XI Байкальской международной школе семинаре "Методы оптимизации и их приложения" (Иркутск, 1998), на конференции «Ляпуновские чтения» (Иркутск, 1999), на семинарах ИДСТУ СО РАН (Иркутск).
8. Внедрение
Исследование, разработка и применение рассматриваемых в диссертации программных средств выполнены в течении 1987-2000г.г. в рамках следующих плановых тем ИДСТУ СО РАН: N0186.0096390 (1986-1990г.г.); N01.9.10.0067440 (1991-1995 г.г.), N 01.960.0 06321 (1996-1998).
Исследования выполнялись также в рамках ГНТП
Информатизация России" (проект N 222.30, 1991-1995г.г.; проект 037.02.296.108/1-96, 1996-1998г.г.) и поддержаны грантом РФФИ (проект N95-07-19045).
19
Разработанные программные средства зарегистрированы в Российском агентстве по патентам и товарным знакам (РОСПАТЕНТ) [63,65,66].
Инструментальная система ВИЗИТ внедрена в нескольких организациях образовательного и научно-исследовательского профиля.
9. Личный вклад автора
Рассматриваемые в диссертации исследования и практические работы выполнены в лаборатории "Технология создания прикладных программных средств" ИДСТУ СО РАН в рамках обозначенных ранее плановых тем.
Лично автором выполнен обзор по применению методов визуального и конкретизирующего программирования при разработке пакетов программ, разработаны графический язык спецификации модели ПО, алгоритмы построения графической модели ПО, конкретизатор структурных схем решения задач, системная архитектура графической инструментальной среды, выполнена программная реализация всех подсистем ГрИС ВИЗИТ.
10. Структура работы и публикации
Диссертация состоит из введения, четырех глав, заключения и 8 приложений. Первая глава в диссертации является центральной и посвящена вопросам построения графической модели ПО. В этой главе рассматривается разработанный автором диссертации графический язык спецификации модели ПО. В частности, описывается, используемый в этом языке, набор базовых графических примитивов (пиктограмм); дается понятие структурной схемы, способы ее построения и классификация структурных схем, используемых для создания модели ПО; описывается процесс иерархического конструирования модели ПО. В конце главы приведены основные алгоритмы построения структурной схемы ПО.
Заключение диссертация на тему "Графическая инструментальная среда для визуального построения и применения пакетов программ"
Заключение
Главными результатами диссертационной работы являются и на защиту выносятся визуальная технология и графическая инструментальная программная среда для разработки, отладки, модификации и применения пакетов программ, как основного инструмента автоматизации процессов моделирования систем управления сложными динамическими объектами. Характерной особенностью данного подхода является тесная интеграция средств и методов визуального и доказательного (сборочного + конкретизирующего) программирования.
Более детально, на защиту выносятся:
1. Графическая модель ПО пакета программ и графический О-язык для ее описания, обеспечивающие быстрое и наглядное описание объектов ПО и отношений между ними.
2. Алгоритмы автоматического построения структурной схемы ПО.
3. Понятия и определения конкретизирующих преобразований структурных схем. Конкретизатор структурных схем абстрактных программ и процессоров, функционирующий на основе смешанных вычислений.
4. Системная архитектура и алгоритмы функционирования графической инструментальной среды ВИЗИТ для визуального построения и применения пакетов программ.
5. Программная реализация ГрИС ВИЗИТ на ПЭВМ.
Правильность и эффективность принятых в работе решений подтверждена опытом практической эксплуатации разработанных инструментальной системы и пакетов программ.
На разработанные программные средства получены 3 официальных свидетельства о регистрации программ в Российском агентстве по патентам и товарным знакам (РОСПАТЕНТ).
108
Инструментальная система ВИЗИТ внедрена в нескольких организациях образовательного и научно-исследовательского профиля.
С помощью ГрИС ВИЗИТ разработаны пакет программ SPECTR для вычисления собственных значений и векторов на основе фрагмента известной библиотеки EISPACK и пакет машинного моделирования системы угловой стабилизации летательного аппарата по каналу крена.
Изложенные в диссертации принципы визуальной разработки и применения пакетов программ и разработанное инструментальное обеспечение могут найти применение в других проблемных областях для автоматизации расчетных работ на основе соответствующих математических моделей, методов и методик их исследования.
109
Библиография Феоктистов, Александр Геннадьевич, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
1. Хлебцевич Г.Е., Цыганкова С.В. Визуальный стиль программирования: понятия и возможности. // Программирование.- 1990.- №4. - С.68-79.
2. Chang Shi-Kuo. Introduction: visual languages and iconic languages // N.Y.: Visual languages, 1986. P. 1-7.
3. Glinetr E.P. Tanimoto S.L. PICT: an interactive graphical programming environment // Computer. 1984. V.17. №11. P.2-25.
4. Ершов А.Г. Научное основы доказательного программирования // Вестник АН СССР.-1984.- №10. С.9-19.
5. Калужнин JI.A. Об алгоритмизации математических задач // Проблемы кибернетики.-1959, вып 2. С.51-58
6. Ляпунов А.А. О логических схемах программ // Проблемы кибенрне-тики. -М: ГИФМЛ, 1958. Вып.1.
7. Янов Ю.И. О логических схемах алгоритмов // Проблемы кибернетики." М.: ГИФМЛ, 1958. Вып1.
8. Ершов А.П. Операторные алгоритмы. 3. Об операторных схемах Янова// Проблемы кибернетики.- 1968, вып20. С. 181-200.
9. Зиглер К. Методы проектирования программных систем М.: Мир, 1985.- 328с.
10. Кутепов В.П., Кораблин Ю.П. Язык граф схем параллельных алгоритмов // Программирование 1978.- №1. - С.3-11.
11. Бургин М.С. Язык блок-схем (BS-язык) в качестве языка программирования // Вопросы радиоэлектроники. Сер.ЭВТ-1973.- №7. С.39-58.
12. Raeder G.A. Survey of current grafical programming technique // IEEE Computer.- 1985. 18(8). P.ll-25.
13. Robert J.K. A State transition diagramm language for visual programming // IEEE Computer.-1985. 18(8). P.51-59.
14. Notkin D. The Gendral Project // The Jonal of Systems and Software.-1985. 5(2).110
15. Wittby R. Dimensional flowcharting // Software practice and Experience- 1977. №7. P.72-91.
16. Moriconi M., Hare D.F. The PegaSys System: pictures as formal documentation of large programs // ACM Transactions on Programming Languages and Systems. 1986.- V.8.- № 4.- P.524-546.
17. Вельбицкий И.В. Технология программирования. Киев: Техника, 1984.-279с.
18. Курганский В.И. Анализ и генерация текстов программ методом функциональных диаграмм // Пакеты прикладных программ. Итоги и применения. Новосибирск: Наука.- 1986.- С.68-81.
19. Бургин М.С. Блок-схемы в программировании: доводы за и против // Управляющие системы и машины.-1996.- №4/5. С. 19-29.
20. Lewis B.N., Horabin I.S.,Gane С.Р. Flow-charts, logical trees and algo-ritms for rules and regulations. London: Academic Press, 1967. - P240.
21. Искусственный интеллект. В 3-х кн. Кн.2. Модели и методы: Справочник / Под редакцией Поспелова Д.А. - М.: Радио и связь, 1990. -304с.
22. Petri G.A. Communication mit automata. Technishe Horhschule Darmstadt Bonn. -1962.
23. Лорьер Ж.JI. Системы искусственного интеллекта.- М.: Мир, 1991. 568с.
24. Воинов А.В., Гаврилова Т.А., Данцин Е.Я. Язык визуального представления знаний и его место в САКЕ-технологии // Известия Академии Наук. Теория и системы упраления. 1996.- №2. - С. 146-151.
25. Лескин А.А., Мальцев П.А., Спиридонов A.M., Сети Петри в моделировании и управлении. Л.: Наука, 1989. - 133с.
26. Котов В.Е. Сети Петри. М.: Наука, 1984. - 160с.
27. Тыугу Э.Х. Концептуальное программирование. М.: Наука, 1984. -255с.1.l
28. Иванищев B.B. Автоматизация моделирования потоковых систем. Л.: Наука, 1986. - 142с.
29. Аджиев В. Объектная ориентация: философия и футурология // Открытие системы. Наука. 1996.- №6. - С40-45.
30. Гультяев А.К. MATLAB 5.2. Имитационное моделирование в среде Windows. Практическое пособие.- СПб.: КоРОНАпринт, 1999.- 288с.
31. Буч Г. Объектно-ориентированное проектирование с примерами применения М.: Конкорд, 1992. - 519с.
32. Вендеров A.M. CASE-технологии. Современные методы и средства проектирования информационных систем. М.: Финансы и статистика, 1998.-176с.
33. Вороненко Д. Будущее CASE-средств глазами программиста // Компьютеры+программы. 1996.- №7. - С65-67.
34. Перевозчикова O.JL, Ющенко Е.Л. Система диалогового решения задач на ЭВМ. Киев: Наукова Думка, 1986. - 264с.
35. Перевозчикова О.Л. Инструментарий конструирования систем диалогового решения задач // Кибернетика.- 1989.- N6.- С. 17-27.
36. Кисель Е.Б. Обзор функциональных возможностей и технических характеристик системы G2 // Экспертные системы реального времени. М.: РОСНИИ ИТиСАПР, 1995. - С.38-43.
37. Forgy C.L. RETE: a fast algorithm for many pattern/many objects pattern match problem // Artificial Intelligence, 1982. V.19. №1. P.17-37.
38. Батанов Л.А. Автоматизация проектирования цифровых вычислительных устройств. -М.: Энергия, 1978.- 80с.112
39. Ершов А.П. Научные основы доказательного программирования: Научн.сообщ. // Вестн. АН СССР.- 1984.- N10.- С.9-19.
40. Цейтлин Г.Е., Ющенко E.JI. Трансформационный синтез программ // Системная информатика. Вып.З. Программные и вычислительные системы: методы и языки анализа. Новосибирск: ВО «Наука», Сибирская издательская фирма, 1993.- С.99-129.
41. Смешанные вычисления и преобразование программ. / Сб. научных трудов под ред. Котова В.Е. Новосибирск: ВЦ СО АН СССР, 1991.-259с.
42. Непомнящий В.А., Сабельдфельд В.К. Трансформационный синтез корректных программ // Прикладная информатика. Вып 2 (11). М.: Финансы и статистика, 1986.- С. 19-88.
43. Касьянов В.Н., Поттосин И.В. Методы построения трансляторов.-Новосибирск: Наука, 1986.- 344с.
44. Касьянов В.Н. Оптимизирующие преобразования программ.- М.: Наука, 1988.- 336с.
45. Ершов А.П. Об одном теоретическом принципе системного программирования // Докл.АН СССР.- 1977.- Т.233, N2.- С.272-275.
46. Гоуд К.А. Доказательства как описания вычислений // Математическая логика в программировании. М.: Мир, 1991. - С.311-330.
47. Бежанова М.М., Поттосин И.В. Средства разработки прикладного программного обеспечения с точки зрения современных требований и возможностей // Пакеты прикладных программ. Программное обеспечение вычислительного эксперимента.- М.: Наука, 1987.- С.82-100.
48. Касьянов В.Н., Поттосин И.В. Системы конкретизации: подход и основные понятия. Препр. ВЦ СО АН СССР N349.Новосибирск, 1982.- 22с.
49. Непомнящий В.А., Воробьев С.Г., Сулимов A.A. Проблемно-ориентированная система верификации программ СПЕКТР / Кибернетика.-1987.- N6.- С.31-37,113
50. Касьянов В.Н. Трансформационные методы и средства конструирования эффективных и надежных программ / Кибернетика и системный анализ.- 1993.- N2.- С.30-40.
51. Kleinrubatscher P., Kriegshaber A., Zochling R., Gluck R. Fortran program specialization // ACM SIGPLAN Notic.- 1995.- 30, N4.- C.61-70.
52. Феоктистов А.Г. Универсальный генератор автономной рабочей программы в метасистеме САТУРН //Тез.докл. IV конф. молодых ученых вузов Иркутской обл. Иркутск: ИГУ, 1987.- С.37.
53. Феоктистов А.Г., Феоктистов Д.Г. Генератор программ в инструментальной системе САТУРН // Тез.докл. VI конф. молодых ученых вузов Иркутской обл. Иркутск: ИГУ, 1988.- С.12.
54. Опарин Г.А., Феоктистов А.Г., Феоктистов Д.Г. Комбинированный режим исполнения абстрактных программ в инструментально-технологическом комплексе САТУРН/ПЗ // Автоматика и вычислительная техника. 1996, N6. - С.77-84.
55. Опарин Г.А., Феоктистов А.Г., Феоктистов Д.Г., Журавлев А.Е. Инструментальные средства построения и эксплуатации пакетов знаний // Управляющие системы и машины. 1997, N1-3.-С.138-143.
56. Опарин Г.А., Феоктистов А.Г., Феоктистов Д.Г., Журавлев А.Е., Богданова В.Г. Графический конструктор широкоформатных структурных схем (ГрафКоСС). Свидетельство об официальной регистрации программы для ЭВМ N970364. Москва: РосАПО, 1997. 1с.
57. Опарин Г.А., Феоктистов Г.А., Богданова В.Г. Графическая системная САТУРН-среда пакетов знаний // Сб. трудов III межд.симпоз. "Интеллектуальные системы" (ИНТЕЛС'98). М.: ООО "TBK", 1998.- С.224-227.
58. Опарин Г.А., Феоктистов А.Г., Богданова В.Г., Новопашин А.П. Графический пакет программ LibPic (LibPic). Свидетельство об официальной регистрации программы для ЭВМ N 980495. Москва: РосАПО, 1998. 1с.
59. Опарин Г.А., Феоктистов А.Г., Богданова В.Г. Графический конструктор ИТК ВИЗИТ (ViDes). Свидетельство об официальной регистрации программы для ЭВМ N 990559. Москва: РОСПАТЕНТ, 1999. 1с.115
60. Опарин Г.А., Феоктистов А.Г. Конкретизатор структурных схем решения задач в пакетах знаний // Информационные технологии контроля и управления транспортными системами.- Иркутск: ИрИИТ, 2000.- Вып.6.-С.43-53.
61. Visual Basic 6.0. СПб: БХВ Санкт-Петербург, 1998. - 992с.
62. Васильев С.Н., Опарин Г.А. Интеллектный подход к автоматизации проектных расчетов сложных управляемых систем // Оптимизация, управление, интеллект.-2000.- №4.- С.111-126.
63. Логическое проектирование СБИС. Москва: Мир, 1988, 310 с.
64. А.В.Карабегов, Т.М.Тер-Микаэлян. Введение в язык SDL. Москва: Радио и связь, 1993, 183с.
65. Мелихов А.Н., Берштейн Л.С., Курейчик В.М. Применение графов для проектирования дискретных устройств. М.: Наука, 1974.- 304с.
66. Юдин О.Н. Единая система автоматизации проектирования ЭВМ. -М.: «Сов.радио», 1976.- 176с.
67. Бульонков М.А. От специализации к смешанным вычислениям./ Сб. научных трудов под ред. Котова В.Е. "Смешанные вычисления и преобразование программ".-Новосибирск: ВЦ СО АН СССР, 1991.- С.88-111.
68. Касьянов В.Н., Сабельфельд В.К. Инструментальные средства преобразования программ. Препр. ВЦ СО АН СССР N765 .Новосибирск, 1987.-19с.
69. Уилкинсон, Райнш. Справочник алгоритмов на языке АЛГОЛ. М.: Машиностроение, 1976.-389с.116
70. Пугачев B.C. Основы автоматического управления. М.: Наука. 1967.-680с.
71. Справочник по теории автоматического управления / Под редакцией Красовского A.A. М.: Наука, 1987. - 712с.
-
Похожие работы
- Разработка метода и инструментальных средств визуального моделирования и документирования системы знаний предметных задач при проектировании САПР машиностроительного назначения
- Программные технологии визуальной реконструкции и анализа сетевых моделей генетических, экологических и социальных систем
- Инструментальная среда для разработки пакетов программ диагностики сложных технических систем
- Исследование и разработка графического интерфейса с использованием альтернативных средств ввода-вывода
- Инструментальные средства интеграции и оптимизации представления графической информации в базах данных САПР
-
- Системный анализ, управление и обработка информации (по отраслям)
- Теория систем, теория автоматического регулирования и управления, системный анализ
- Элементы и устройства вычислительной техники и систем управления
- Автоматизация и управление технологическими процессами и производствами (по отраслям)
- Автоматизация технологических процессов и производств (в том числе по отраслям)
- Управление в биологических и медицинских системах (включая применения вычислительной техники)
- Управление в социальных и экономических системах
- Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
- Системы автоматизации проектирования (по отраслям)
- Телекоммуникационные системы и компьютерные сети
- Системы обработки информации и управления
- Вычислительные машины и системы
- Применение вычислительной техники, математического моделирования и математических методов в научных исследованиях (по отраслям наук)
- Теоретические основы информатики
- Математическое моделирование, численные методы и комплексы программ
- Методы и системы защиты информации, информационная безопасность