Графическая инструментальная среда для визуального построения и применения пакетов программ тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат технических наук Феоктистов, Александр Геннадьевич

  • Феоктистов, Александр Геннадьевич
  • кандидат технических науккандидат технических наук
  • 2000, Иркутск
  • Специальность ВАК РФ05.13.11
  • Количество страниц 148
Феоктистов, Александр Геннадьевич. Графическая инструментальная среда для визуального построения и применения пакетов программ: дис. кандидат технических наук: 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей. Иркутск. 2000. 148 с.

Оглавление диссертации кандидат технических наук Феоктистов, Александр Геннадьевич

Введение.

Глава 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. Пакет программ машинного моделирования системы угловой стабилизации летательного аппарата с БЦВМ.

Рекомендованный список диссертаций по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Введение диссертации (часть автореферата) на тему «Графическая инструментальная среда для визуального построения и применения пакетов программ»

В практике проектирования систем управления сложными динамическими объектами широко применяются методы математического моделирования, позволяющие учитывать переменность коэффициентов и различного рода нелинейности при отработке таких систем. Основным программным инструментом метода математического моделирования являются пакеты прикладных программ, существенно повышающие уровень автоматизации решения прикладных задач.

В самом общем виде пакет программ представляет собой совокупность взаимосвязанных программ его функционального наполнения и средств управления ими (системного наполнения), обеспечивающих решение задач из некоторого заранее определенного класса в содержательных терминах проблемной области (ПО). К системному наполнению пакета программ предъявляются все более высокие требования и, как следствие, стоимость и трудоемкость создания системных компонентов пакетов традиционными средствами программирования неуклонно возрастает. Поэтому автоматизация разработки пакетов программ находится в числе наиболее актуальных направлений развития прикладного программного обеспечения.

Перспективным подходом к решению данной проблемы является создание инструментальных систем (ИС), поддерживающих функционирование и определенные технологии проектирования пакетов программ. Применение таких систем значительно сокращает сроки разработки, снижает стоимость и гарантирует высокое качество программного продукта.

Центральное место в современной методологии пакетов программ занимает языковая поддержка следующих этапов процесса их разработки и применения: 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 приложений. Первая глава в диссертации является центральной и посвящена вопросам построения графической модели ПО. В этой главе рассматривается разработанный автором диссертации графический язык спецификации модели ПО. В частности, описывается, используемый в этом языке, набор базовых графических примитивов (пиктограмм); дается понятие структурной схемы, способы ее построения и классификация структурных схем, используемых для создания модели ПО; описывается процесс иерархического конструирования модели ПО. В конце главы приведены основные алгоритмы построения структурной схемы ПО.

Похожие диссертационные работы по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Заключение диссертации по теме «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», Феоктистов, Александр Геннадьевич

Заключение

Главными результатами диссертационной работы являются и на защиту выносятся визуальная технология и графическая инструментальная программная среда для разработки, отладки, модификации и применения пакетов программ, как основного инструмента автоматизации процессов моделирования систем управления сложными динамическими объектами. Характерной особенностью данного подхода является тесная интеграция средств и методов визуального и доказательного (сборочного + конкретизирующего) программирования.

Более детально, на защиту выносятся:

1. Графическая модель ПО пакета программ и графический О-язык для ее описания, обеспечивающие быстрое и наглядное описание объектов ПО и отношений между ними.

2. Алгоритмы автоматического построения структурной схемы ПО.

3. Понятия и определения конкретизирующих преобразований структурных схем. Конкретизатор структурных схем абстрактных программ и процессоров, функционирующий на основе смешанных вычислений.

4. Системная архитектура и алгоритмы функционирования графической инструментальной среды ВИЗИТ для визуального построения и применения пакетов программ.

5. Программная реализация ГрИС ВИЗИТ на ПЭВМ.

Правильность и эффективность принятых в работе решений подтверждена опытом практической эксплуатации разработанных инструментальной системы и пакетов программ.

На разработанные программные средства получены 3 официальных свидетельства о регистрации программ в Российском агентстве по патентам и товарным знакам (РОСПАТЕНТ).

108

Инструментальная система ВИЗИТ внедрена в нескольких организациях образовательного и научно-исследовательского профиля.

С помощью ГрИС ВИЗИТ разработаны пакет программ SPECTR для вычисления собственных значений и векторов на основе фрагмента известной библиотеки EISPACK и пакет машинного моделирования системы угловой стабилизации летательного аппарата по каналу крена.

Изложенные в диссертации принципы визуальной разработки и применения пакетов программ и разработанное инструментальное обеспечение могут найти применение в других проблемных областях для автоматизации расчетных работ на основе соответствующих математических моделей, методов и методик их исследования.

109

Список литературы диссертационного исследования кандидат технических наук Феоктистов, Александр Геннадьевич, 2000 год

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с.

Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.