ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образования «Н...
6 downloads
181 Views
533KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образования «Нижегородский государственный университет им. Н. И. Лобачевского» Научно-Исследовательский Институт Прикладной Математики и Кибернетики Факультет вычислительной математики и кибернетики Кафедра интеллектуальных информационных систем и геоинформатики
Система поддержки графовых моделей. Конструктор сложных программных комплексов Методическое руководство для выполнения лабораторного практикума Нижний Новгород 2005
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образования «Нижегородский государственный университет им. Н. И. Лобачевского» Научно-Исследовательский Институт Прикладной Математики и Кибернетики
И. А. Прахов, С. Г. Кузин
Система поддержки графовых моделей. Конструктор сложных программных комплексов.
Методическое руководство для выполнения лабораторного практикума. Рекомендовано методической комиссией факультета вычислительной математики и кибернетики в качестве методического обеспечения специального курса лекций «Проектирование сложных прикладных программных комплексов», для студентов высших учебных заведений, обучающихся по специальности «Прикладная информатика».
Нижний Новгород 2005
УДК 681.3.06 (072) ББК В185 П 70 И.А.Прахов, С.Г.Кузин. Система поддержки графовых моделей. Конструктор сложных программных комплексов: Методическое руководство для выполнения лабораторного практикума. − Нижний Новгород: Издательство Нижегородского госуниверситета, 2005. – 36 с. Рецензент: профессор Ю. Л. Кетков Представлено краткое описание и инструкция по применению в лабораторном практикуме инструментальных программных комплексов «Система поддержки графовых моделей» и «Конструктор сложных программных комплексов». Приводятся задания для проведения лабораторного практикума. Конструирование программной системы ведется на основании сетевой модели вычислительного процесса с использованием разработанной ранее инструментальной системы поддержки графовых моделей СПГМ [1,3]. Цель лабораторного практикума — практическое освоение технологии сборки сложной программной системы из программных модулей. Проблемная область — вычислительные программные комплексы. Цикл лабораторных работ предназначается для выполнения на факультете ВМК ННГУ студентами третьего курса специальности «Прикладная информатика». Также может быть полезен для студентов и магистров смежных специальностей. Работа выполнена при финансовой поддержке Федеральной целевой программы "Интеграция" (проект № КО392). Научный руководитель Зав. каф. ИИСГео, проф.
/Ю.Г. Васин/
УДК 681.3.06 (072) ББК В185 © Нижегородский государственный университет им. Н.И. Лобачевского, 2005
1 Необходимые теоретические сведения 1.1 Понятие графовой модели Графовой моделью, для краткости, называют систему граф-схем (в частном случае может быть одна граф-схема), который представляет структуру некоторой сущности, а вершинам и/или дугам граф-схемы поставлены в соответствие атрибуты этой сущности. Для каждого элемента граф-схемы (вершина, дуга) соответствующие элементу атрибуты группируются в таблицу атрибутов. Для примера на рисунке 1.a изображена сущность – электронная схема. На рисунке 1.b изображена графовая модель электронной схемы. Элементам направленного графа, который представляет структуру электронной схемы, поставлены в соответствие таблицы атрибутов, представляющие параметры электронной схемы. В данном частном случае формат таблиц атрибутов вершин (дуг) одинаков для всех вершин (дуг). Каждый атрибут состоит из трех полей: "Имя атрибута", "Тип значения атрибута", "Значение атрибута". b Ток Номинал Элемент ИмяД
a R1 E
C1
real 0.5 real 10 char R char d1
Ток Номинал Элемент ИмяД
U real 1.0 ИмяВ string p1 R2
Ток Номинал Элемент ИмяД
real 0.5 real 1.0 U real 0.0 char E char d4 ИмяВ string p0
real 0.1 real 100 char C char d2
U real 0.5 ИмяВ string p2 Ток Номинал Элемент ИмяД
real 0.4 real 100 char R char d3
Рисунок 1. Электронная схема (a) и графовая модель электронной схемы (b). По сути дела, речь идет о сложно структурированной переменной типа "графовая модель" с областью допустимых значений "множество граф-схем", вершины и дуги которых помечены таблицами атрибутов. Также как с любой переменной, работа с графовой моделью осуществляется в три этапа: 1. декларация шаблона (типа) графовой модели – допустимый класс графов и допустимые типы таблиц; 2. создание экземпляра графовой модели, а именно, рисование допустимого графа, "привязка" к вершинам и дугам графа таблиц атрибутов; 3. использование графовой модели, т.е. чтение граф-схем и значений атрибутов вершин и дуг. Инструментальная Система Поддержки Графовых моделей (СПГМ) служит для реализации на экране компьютера в интерактивном режиме этапа 1 и этапа 2, а также для обеспечения реализации этапа 3 с помощью пользовательских прикладных программ. Шаблон графовой модели состоит из множества типов вершин и дуг. В данной реализации СПГМ на граф не накладывается никаких специфических условий. Поэтому описание шаблона графовой модели осуществляется лишь в виде совокупности типов для вершин и для дуг (Рисунок 2).
3
Каждая строка типа вершины (дуги) задает имя атрибута вершины "ИмяАВ" (имя атрибута дуги "ИмяАД") и тип значения атрибута "ТипА". Как для вершин, так и для дуг, пользователем может быть определено несколько различных типов. ИмяАД Ток Номинал Элемент ИмяД
ИмяАВ ТипА Акт U real ИмяВ string *** Атибуты вершины
ТипА Акт real real char char ***
Атрибуты дуги
Рисунок 2. Атрибуты типов вершин и дуг графовой модели, представленной на рисунке 1. В силу того, что экземпляр графовой модели рисуется на экране компьютера, рядом с изображением вершины (дуги) допускается визуализация лишь одного имени атрибута из соответствующей таблицы атрибутов. При определении типа вершины (дуги) также возможно задавать графический значок, который визуализируется на экране компьютера.
1.2 Использование графовой модели. Система поддержки графовых моделей позволяет создать экземпляр графовой модели на основании выбранного шаблона и сохранить его в виде бинарного файла. Каждая графовая модель разрабатывается для конкретной проблемной области. Экземпляр графовой модели используется приложением (Рисунок 3), которое специфично для этой проблемной области и разрабатывается на языке программирования C++. Создание шаблона (этап 1) и экземпляра (этап 2) графовой модели являются процессами, независимыми от проблематики модели, и для реализации этих этапов используется проблемно-независимая система поддержки графовых моделей. Тогда как использование (обработка) графовой модели существенным образом зависит от ее проблемного содержания, и приложение конструируется специфическим образом для каждой проблемной области. Для связи приложения с базой графовых моделей может использоваться универсальный для всех приложений интерфейс. Этот интерфейс оформлен в виде специфической DLL библиотеки, что обеспечивает стыковку С++ – приложения с СПГМ. Имеется также второй способ подключения приложения к базе графовых моделей, т.к. имеется возможность конвертации экземпляра графовой модели в текст XML. Это позволяет использовать СПГМ как средство генерации экземпляра графовой модели, который может затем использоваться независимо от СПГМ.
4
Создание экземпляра ГМ Создание шаблона ГМ
СПГМ База данных графовых моделей
XML экземпляра ГМ
Экземпляр ГМ Приложение1
Приложение2
Рисунок 3. Взаимодействие экземпляра графовой модели и приложения
1.3 Сетевая модель вычислительного процесса. В данной лабораторной работе используется приложение "Конструктор прикладных программ", которое позволяет создать сетевую модель вычислительного процесса и реализовать на ее основе функционирование соответствующей проблемно-ориентированной программной системы. Архитектура проектируемой программной системы приведена на рисунке 4.
Экземпляр сетевой модели вычислительного процесса
Управляющий процессор
Исходные данные d {σ}
Функциональный процессор Σ Результирующие данные r
Рисунок 4. Архитектура программного комплекса Здесь используется функциональный процессор с системой команд Σ, и управляющий процессор, генерирующий на основании модели вычислительного процесса траекторию вычислительного процесса (последовательность команд {σ}). В качестве модели вычислительного процесса используется сетевая модель, пример которой приведен на рисунке 5.
5
ВЫВОД
/σ2/
ОБРАБОТКА1
/σ3/ <<задача>>>
ЗАДАЧА
ε
ВВОД
ОБРАБОТКА
/σ1/
ОБРАБОТКА2
/σ4/ ОБРАБОТКА3
ε
/σ5/
Рисунок 5. Пример модели вычислительного процесса Специфика направленного графа этой модели – одна начальная вершина <>, в которую не заходит ни одна дуга, и одна конечная дуга ε, из которой не выходит ни одна дуга. Каждая дуга графа имеет верхнюю метку – лексему языка управления вычислительным процессом. Некоторые дуги имеют нижнюю метку – команду функционального процессора. Особо выделяется пустая дуга, помеченная пустым символом ε. Путь в сетевой модели определяется как последовательность дуг, ведущих из начальной вершины в конечную вершину (начало следующей дуги, совпадает с концом предыдущей дуги). Каждый путь порождает траекторию вычислительного процесса, как последовательность команд – нижних меток, помечающих дуги пути. Также каждый путь порождает предложение языка управления, как конкатенацию лексем – верхних меток, помечающих дуги пути. Специфика сетевой модели вычислительного процесса состоит в следующем: • для любой вершины сети существует хотя бы один путь, проходящий через эту вершину (т.е. любая вершина достижима из начальной вершины и из любой вершины достижима конечная вершина); • спектр траекторий S вычислительного процесса определяется как множество траекторий, порождаемых всеми путями в сети; • язык управления вычислительным процессом L определяется как множество предложений, порождаемых всеми путями в сети; • в силу того, что каждый путь определяет и траекторию, и предложение: существует взаимнооднозначное отображение S↔L.
1.4 Управление вычислительным процессом Проблема управления вычислительным процессом заключается в следующем: для конкретного набора исходных данных d (Рисунок 4) из спектра траекторий S выбрать единственную траекторию, исполнение которой функциональным процессором обеспечит получение правильного результата r. Очевидно, что выбор траектории сводится к выбору соответствующего пути в сетевой модели. Управляющий процессор представляет собой конечно-автоматный преобразователь, который использует в качестве диаграммы переходов сетевую модель вычислительного процесса, выделяет путь в сетевой модели, формирует соответствующую траекторию вычислительного процесса и передает команды траектории для исполнения в функциональный процессор. Пусть путь в сетевой модели "протянут" до вершины p (управляющий процессор находится в состоянии p). В этой вершине решается задача продолжения пути. Если из p выходит един6
ственная дуга, продолжение пути очевидно. Если из p выходит несколько дуг, необходимо принимать решение о выборе дуги продолжения пути (Рисунок 6). Подразумевается, что выходящие из p дуги пронумерованы сверху – вниз. a 1 p
b
q1
i n
qi
i n
p
qn
q1
1
qi qn
ε q0
Рисунок 6. Вершина продолжения вычислительного процесса Возможны три способа выбора продолжения пути, определяющие три основных способа управления вычислительным процессом. В случае автоматического управления, управляющий процессор формирует траекторию вычислительного процесса в процессе анализа базы данных, без вмешательства человека (Рисунок 7). По сути дела, по этой схеме работает компьютер фон – Неймана, в качестве функционального процессора для которого выступает арифметическое устройство, а моделью вычислительного процесса служит двоичная программа.
d
Модель вычислительного процесса Modt Траектория {σ}
Функциональный процессор FPT Процессор вывода OPt
Протокол
База данных
Управляющий процессор
Процессор ввода LPt
r
Рисунок 7. Схема автоматического управления вычислительным процессом В случае директивного управления вычислительным процессом пользователь задает управляющему процессору полностью траекторию вычислительного процесса, описывая ее на профессиональном языке управления (Рисунок 8). Очевидно, что по такой схеме работает операционная система пакетной обработки данных.
7
d
Модель вычислительного процесса Modt Траектория {σ}
Функциональный процессор FPT Процессор вывода OPt
Протокол Описание траектории
База данных
Управляющий процессор
Процессор ввода IPt
r
Рисунок 8. Схема директивного управления вычислительным процессом В случае интерактивного управления вычислительным процессом пользователь формирует траекторию вычислительного процесса посредством диалога с управляющим процессором (Рисунок 9).
d
Модель вычислительного процесса Modt Траектория {σ}
Функциональный процессор FPT Процессор вывода OPt
Протокол
База данных
Управляющий процессор
Процессор ввода IPt
r Рисунок 9. Схема интерактивного управления вычислительным процессом При любом виде управления, управляющий процессор может выдавать протокол реализации вычислительного процесса, который служит полезным средством наблюдения за его ходом.
2 Система поддержки графовых моделей В настоящем разделе описывается Система Поддержки Графовых Моделей (СПГМ) версии 2.0, компоненты которой частично входят в инструментальную систему – Конструктор Прикладных программ (КПП). Необходимость описания данной системы проистекает из общего технологического принципа построения прикладных программных комплексов с помощью КПП. 8
Раздел содержит назначение системы, описание архитектуры, а также описание отдельных модулей: редактора шаблонов и редактора графовых моделей.
2.1 Назначение системы. Система поддержки графовых моделей предназначена для создания графовых моделей различной проблемной ориентации. В частности возможно построение сетевых моделей вычислительного процесса, а также информационно-алгоритмических моделей функционального процессора, о которых пойдет речь при описании технологии конструирования прикладных программных комплексов на базе графовых моделей и КПП1. Версия системы 2.0 может решать следующие задачи: 1. Интерактивное создание шаблона графовой модели и его сохранение для последующего использования. 2. Интерактивное создание экземпляра графовой модели на основе заданного шаблона, посредством его рисования на экране и ввода значений атрибутов. 3. Сохранение экземпляров графовых моделей для дальнейшего использования в приложениях. 4. Экспорт экземпляра графовой модели в текстовый файл формата XML.
2.2 Архитектура системы. Система поддержки графовых моделей работает под управлением операционной системы Windows 98 Second Edition и выше. Данный программный комплекс состоит из нескольких модулей, взаимосвязь между которыми представлена на рисунке 10. Центральным модулем системы является Система Управления Базой Данных Графовых Моделей (СУБД ГМ), реализованная в виде динамически подключаемой библиотеки. Все операции над шаблоном или экземпляром графовой модели выполняются с помощью операций данной СУБД ГМ. Основным модулем, с которым взаимодействует пользователь, является редактор сетевой модели, представляющий собой специализированный графический редактор, предназначенный для рисования ориентированного графа и заполнения атрибутов объектов этого графа. Для декларации типа графовой модели используется файл шаблона, создающийся в специализированном модуле — редакторе шаблона. Кроме этого, существует инструмент, позволяющий осуществить автоматический экспорт экземпляра графовой модели в текстовый файл формата XML. Данная возможность актуальна в тех случаях, когда организовать доступ к данным файла модели из прикладной программы через СУБД ГМ графовых моделей затруднительно.
2.2.1 Комплектация системы. Система состоит из следующих основных модулей: • «ModelEditor.exe» — редактор графовых моделей; • «TemplateEditor.exe» — редактор шаблонов; • «NBAccess.dll» — СУБДГМ графовых моделей; • «TEMPLATEEDITOR.HLP» — файл справки к редактору шаблонов; • «TemplateEditor.cnt» — файл разделов справки к редактору шаблонов; • «Шаблон графа.nbt» — шаблон графовой модели, представляющей собой обычный ориентированный граф; • «Шаблон ИАМ для КПП v.2.0.nbt» — шаблон информационно-алгоритмической модели; 1
Подробнее о технологическом процессе построения прикладных программных комплексов на базе графовых моделей с помощью КПП см. раздел 3. 9
•
«Шаблон СМВП для КПП v.2.0.nbt» — шаблон сетевой модели вычислительного процесса.
Уровень данных
Шаблон
XML файл
Редактор графовых моделей
Модуль экспорта
СУБД графовых моделей
Уровень СУБД
Уровень приложений
Экземпляр графовой модели
Редактор шаблонов
Уровень пользователя
Рисунок 10. Архитектура системы поддержки графовых моделей. Кроме этого для работы системы необходимы следующие динамически подключаемые библиотеки: Mfc42.dll и msvcrt.dll — файлы необходимы для всех модулей системы. Они поставляются в составе операционной системы MS Windows NT 4.0 и выше.
2.2.2 Технология создания графовой модели. Создание произвольной графовой модели происходит в два этапа и выглядит следующим образом. На первом этапе пользователь создает шаблон, в котором описывает все типы объектов (вершины, дуги), которые могут использоваться в его графовой модели. Если сравнивать этот процесс с программированием, то он аналогичен процессу декларации переменных. При 10
описании типов объектов нужно указать имя типа, атрибуты и формат отображения данного типа в экземпляре графовой модели. После декларации всех типов шаблон сохраняется в файле с расширением «.nbt» и пользователь переходит к следующему этапу. На втором этапе создается графовая модель на основе выбранного шаблона. Можно многократно использовать один и тот же шаблон для разных экземпляров графовых моделей, поэтому первый этап является опциональным. Графовая модель может состоять из нескольких отдельных граф-схем [2], каждая из которых имеет свое, уникальное, имя2. Экземпляр графовой модели рисуется в редакторе в виде ориентированного графа. Вершины и дуги этого графа принадлежат тому или иному типу из тех, которые задекларированы в шаблоне. После рисования экземпляра модели, она сохраняется в файле с расширением «.gm»3. При необходимости, модель может быть экспортирована в текстовый файл формата XML с помощью специального модуля автоматического экспорта. Такой текстовый формат может быть полезен при последующей обработке экземпляра модели с помощью внешних прикладных модулей, которые не могут использовать в своей работе СУБДГМ.
2.3 Редактор шаблона графовой модели. В этом разделе детально описывается один из модулей системы поддержки графовых моделей — редактор шаблона, а также приводится пример использования этого редактора. В приведенном примере поэтапно рассмотрен процесс создания шаблона для конструктора прикладных программ4, поставляющегося с системой.
2.3.1 Описание редактора шаблона. Редактор шаблонов сетевой модели предназначен для создания и редактирования файла шаблона, в котором производится декларация типов объектов сетевой модели и тем самым определяется класс графовых моделей. Рассмотрим отдельно все составляющие этого редактора. 1.1.1.1 Окно загрузки шаблона. Окно загрузки шаблона представлено на рисунке 11.
2 Уникальность имени графовой модели является рекомендацией. Система не проверяет уникальность, и не выдает ошибки, однако в случае несоблюдения данной рекомендации, корректность работы всех прикладных модулей не гарантируется. 3 Предыдущие версии СПГМ использовали расширение «.nbm». Данная версия позволяет читать файлы с таким расширением. 4 Детальное описание Конструктора Прикладных Программ будет дано далее. 11
Рисунок 11. Окно загрузки шаблона. Это окно появляется непосредственно после запуска редактора шаблона. В нем пользователю предлагается указать начальный шаблон. Если будет выбран пустой шаблон, то пользователю в дальнейшем будет предоставлена возможность создать свой шаблон «с нуля». В случае выбора уже имеющегося шаблона, нужно указать путь к файлу шаблона с помощью открывшейся кнопки «Просмотр», после нажатия на которую, появится стандартное окно открытия файла. Кнопка «ОК» доступна только в двух случаях: ⎯ Выбран пустой шаблон; ⎯ Указан существующий шаблон. Нажатие этой кнопки переводит пользователя на следующий этап — редактирование шаблона. Кнопка «Выход» — выход из редактора шаблонов. 1.1.1.2 Окно редактирования типов вершин и дуг. Данное окно, представленное на рисунке 12, является основным окном редактирования шаблона. Оно позволяет создавать и изменять типы объектов модели.
12
Рисунок 12. Окно редактирования типов. Нижняя часть окна содержит общие компоненты шаблона, а именно библиотеку растровых изображений. Данная библиотека позволяет сформировать набор растровых изображений, служащих для отображения вершин. Для размещения файла с растровым изображением в библиотеке используется кнопка «Добавить изображение…», для удаления – «Удалить изо»и« » используются для просмотра изображений из биббражение…». Кнопки « лиотеки. Кнопка «Добавить изображение…» вызывает стандартный диалог открытия файла, с добавленной функцией предварительного просмотра. Кнопка «Удалить изображение…» удаляет текущее изображение из библиотеки без предупреждения. Верхняя часть окна разделяется на две одинаковые колонки: левая колонка относится к типам вершин, а правая — к типам дуг. Под каждым списком находится ряд кнопок, позволяющий манипулировать выбранными типами. В начале доступны только кнопки «Добавить тип…». С их помощью можно добавить тип вершины или дуги соответственно. При выделении типа из списка становятся доступны все остальные операции. Опишем кратко назначение каждой из кнопок работы с типами. 1.1.1.2.1 Кнопка «Добавить тип».
Позволяет создать новый тип объекта. При нажатии на эту кнопку появляется окно, представленное на рисунке 13. Оно содержит единственное поле для ввода имени типа и кнопки подтверждения или отмены ввода: «ОК» и «Отмена» соответственно.
13
Рисунок 13. Окно добавления типа объекта. Кнопка «ОК» станет доступной только после ввода имени типа (хотя бы одной буквы). 1.1.1.2.2 Кнопка «Удалить тип».
Ее единственная функция — удаление выделенного типа объекта. Удаление типа безвозвратно, и единственный способ вернуть удаленный тип – отказаться от сохранения файла шаблона. 1.1.1.2.3 Кнопка «Редактировать атрибуты».
С помощью этой кнопки производится запуск диалогового окна редактирования атрибутов выделенного объекта. В этом же окне происходит создание новых атрибутов. Данный процесс подробно описан ниже. 1.1.1.2.4 Кнопка «Отображение».
Запускает окно изменения формата отображения для выделенного типа объекта. Эти окна разные в зависимости от того, что является объектом — вершина или дуга. Ниже будет подробно рассмотрен процесс редактирования отображения объекта. 1.1.1.3 Окно создания атрибутов. Окно создания и редактирования атрибутов представлено на рисунке 14. Здесь отображается информация об атрибутах данного типа объектов, включающая в себя: имя атрибута, его тип, а также флаг активности, при установке которого значение данного атрибута будет отображаться на экране.
Рисунок 14. Окно создания и редактирования атрибутов. С помощью окна создания/редактирования атрибутов можно: ⎯ Добавить новый атрибут путем нажатия кнопки «Добавить…». При этом появится специальное окно, представленное на рисунке 14. Оно предназначено для того, чтобы ввести имя атрибута, указать его тип, после чего кнопка «ОК» станет доступной, и при ее нажатии будет создано новый атрибут. 14
⎯ Удалить выделенный атрибут, путем нажатия кнопки «Удалить». ⎯ Изменить имя или тип выделенного атрибута, путем нажатия кнопки «Изменить…». При этом появится окно, аналогичное тому, которое представлено на рисунке 15, и в нем уже будут текущие значения имени атрибута и его типа. ⎯ Сделать активным5 выбранный атрибут с помощью одноименной кнопки.
Рисунок 15. Окно добавления атрибута. В окне добавления атрибута возможно использование следующих типов: INTEGER – целое число, REAL – вещественное число, STRING – строка и MEMO – строка с возможностью использования символа перевода строки. 1.1.1.4 Окна отображения типов. Данные окна предназначены для изменения внешнего вида объектов при рисовании экземпляра графовой модели. Другими словами, их помощью можно задать способ отображения каждого объекта. Окно отображения для вершин граф-схемы представлено на рисунке 16.
Рисунок 16. Диалоговое окно изменения отображения типа вершин. В данной версии редактора моделей для типа вершин возможна установка следующих способов отображения: растрового изображения или графического примитива (эллипс, прямоугольник или 3D-прямоугольник, частными случаями которых могут быть круг или квадрат). В случае выбора в качестве способа отображения графического примитива, для него устанавливаются: цвет границы примитива и цвета заливки. Все цвета устанавливаются с помо5 Сделать активным означает, что содержимое этого атрибута будет отображаться на экране при рисовании экземпляра модели в редакторе графовых моделей. Активным может быть только один атрибут, поэтому при нажатии кнопки активность с предыдущего активного атрибута будет снята. 15
щью стандартного диалога выбора цвета. Кроме этого можно задавать размеры примитива в экранных пикселях. В случае выбора растрового изображения для обозначения вершины данного типа, левая часть окна блокируется и необходимо воспользоваться правой частью для интерактивного выбора растрового изображения из библиотеки. Выбор происходит с помощью кнопок « »и« ». Диалоговое окно для дуг сетевой модели выглядит существенно проще, оно показано на рисунке 17.
Рисунок 17. Диалоговое окно отображения типов дуг. С помощью данного окна возможно изменение только типа линии, с помощью которой будет прорисовываться дуга и ее цвета.
2.3.2 Пример использования редактора шаблона. Для примера рассмотрим процесс создания шаблона сетевой модели вычислительного процесса (Ошибка! Источник ссылки не найден.) для конструктора прикладных программ. Для создания экземпляра сетевой модели, необходимо различать пять типов вершин: начальную вершину, конечную вершину, вершину интерактивного управления, вершину автоматического управления, и вершину прерывания. Исходя из этого, с помощью редактора шаблона создается пустой шаблон, а в нем пять типов вершин. • «Начальная вершина»; • «Конечная вершина»; • «Вершина интерактивного управления»; • «Вершина автоматического управления»; • «Вершина прерывания». Кроме этого понадобится четыре типа дуг: «Выполнение», «Переход», «Сообщение» и «Ссылка. В результате создано девять типов объектов. Для некоторых из них изменяем способ отображения, в частности для вершин изменяем размер. Затем создаем типы вершин. Начальная вершина: — «Метка» типа STRING и с флагом активности — «Изображение» типа STRING • Вершина интерактивного управления: — «Заголовок меню» типа STRING — «Метка» типа STRING и с флагом активности • Вершина автоматического управления: — «Заголовок меню» типа STRING — «Метка» типа STRING и с флагом активности — «Директива» типа STRING • Для конечной вершины и вершины прерывания атрибутов не нужно 16
И, наконец, создаем типы дуг: • Выполнение: — «Метка» типа STRING и с флагом активности — «Команда» типа STRING — «Порядок в меню» типа INTEGER • Переход: — «Порядок в меню» типа INTEGER — «Метка» типа STRING и с флагом активности • Сообщение: — «Порядок в меню» типа INTEGER — «Метка» типа STRING и с флагом активности — «Сообщение в протокол» типа STRING — «Сообщение пользователю» типа STRING • Ссылка: — «Порядок в меню» типа INTEGER — «Метка» типа STRING и с флагом активности — «Название сети» типа STRING После этого можно считать, что шаблон модели вычислительного процесса создан, осталось его лишь сохранить.
2.4 Редактор графовой модели В этом разделе подробно описывается редактор графовых моделей, его назначение, главное и диалоговые окна, различные меню, а также приводится пример использования редактора.
2.4.1 Описание редактора графовых моделей Редактор графовой модели предназначен для создания экземпляра графовой модели путем рисования совокупности ориентированных графов специального вида – так называемых граф-схем, основанных на предварительно разработанном шаблоне. Редактор представляет собой окно с SDI интерфейсом6, а также систему меню и диалоговых окон. Все эти элементы будут описаны ниже. 1.1.1.5 Окно создания новой модели При создании новой сетевой модели, или при запуске редактора7 появляется данное окно, показанное на рисунке 18.
6 Интерфейс, при котором одновременно может быть открыт только один документ, т.е. только одна граф-схема. 7 Чтобы избежать появления данного окна при открытии модели для редактирования предлагается воспользоваться стандартной процедурой Windows — процедурой открытия документа зарегистрированного типа двойным щелчком мыши. Регистрация документа происходит автоматически после первого запуска редактора сетевых моделей. 17
Рисунок 18. Начальный диалог редактора графовых моделей. Возможны два варианта: либо редактировать существующий экземпляр модели, либо создать новый. В случае необходимости редактировать существующий экземпляр модели, необходимо выбрать соответствующий пункт, и нажать «ОК». После этого откроется стандартный диалог выбора файла. При создании нового экземпляра модели необходимо указать шаблон, на основе которого будет создан экземпляр сетевой модели. При нажатии кнопки «Открыть…» появиться стандартное окно открытия файла, в котором нужно выбрать файл шаблона, после чего кнопка «ОК» станет доступной. При нажатии кнопки «Cancel» новая модель создаваться не будет, и редактор завершит свою работу. 1.1.1.6 Главное окно редактора При создании новой или редактировании уже существующей модели пользователь все время работает в главном окне редактора, представленном на рисунке 19.
Рисунок 19. Главное окно редактора графовых моделей. В заголовке этого окна отображается информация о текущем редактируемом файле модели. Кроме этого имеется главное меню, панель инструментов, дублирующая некоторые, наиболее частые, операции из главного меню, а также строка состояния. 18
Процесс рисования модели заключается в рисовании ориентированных графов, соответствующих отдельным сетям. Для рисования существует набор команд, которые распределены в контекстном меню, выпадающем при щелчке правой кнопкой на клиентской области окна. Оно зависит от того, на каком объекте происходит щелчок. Команды всех контекстных меню рассмотрены ниже. Кроме команд относящихся к созданию сети8, имеется ряд команд по управлению редактором. Все они распределены по главному (или основному) меню, которое также рассмотрено ниже. 1.1.1.7 Команды основного меню. Основное меню делится на несколько подменю: ⎯ Меню «Файл» содержит команды управления редактором, касающиеся работы с файлами и печати. Это такие команды как: «новая модель», «открыть», «сохранить», «сохранить как», «печать», «просмотр печати» и «установка принтера». Кроме них есть также список из 4-х файлов, которые ранее открывались. Их можно открывать не вызывая диалоговое окно открытия файла. Последней командой в этом меню является команда «Выход». ⎯ Меню «Вид» содержит всего две команды, позволяющие убрать или возобновить панель инструментов, а также убрать или возобновить строку состояния. ⎯ Меню «Граф-схема» содержит команды управления подсетями. Здесь можно создать граф-схему, удалить текущую (редактируемую) граф-схему и выбрать некоторую граф-схему текущей (для ее редактирования или удаления). При создании граф-схемы появиться диалог (Рисунок 20), в котором нужно ввести имя графмодели. Точно такой же диалог появляется при создании нового экземпляра модели при запуске редактора шаблона, только в нем уже предлагается имя графмодели по умолчанию. Для выбора текущей граф-модели используется дугой диалог, представленный на рисунке 21. В нем нужно выбрать имя граф-модели и нажать «ОК». В данной версии появилось команда «Параметры модели», которая, в настоящее время, позволяет задавать размеры поля, в котором рисуется модель (Рисунок 22). По умолчанию, размер составляет 1000 точек на 1000 точек. ⎯ Кроме этих имеется также меню «Справка», но на нем мы подробно останавливаться не будем.
8 Именно эти команды распределены по контекстным меню. 19
Рисунок 20. Диалог создания подсети.
Рисунок 21. Диалог выбора подсети для редактирования.
Рисунок 22. Диалог настроек графовой модели. 1.1.1.8 Команды контекстных меню Как уже было описано, в редакторе графовых моделей используется несколько контекстных меню. Все зависит от того, в какой точке экрана оно будет вызвано. При щелчке в пустой области появится контекстное меню с единственной командой — «создать новую вершину». При запуске этой команды появиться диалоговое окно, похожее на то, что изображено на рисунке 21, в котором нужно выбрать тип вершины, и она будет создана. Аналогичное окно появляется при двойном щелчке мыши в пустой области. При желании вершину можно перемещать по экрану просто «подцепив» ее мышью. При вызове контекстного меню для вершины появится уже три команды: ⎯ «Создать дугу» ⎯ «Удалить вершину» ⎯ «Атрибуты вершины». Создание дуги подразумевает наличие как минимум двух вершин. Для того, чтобы создать дугу нужно щелкнуть мышью либо на конечной вершине (т.е. той на которую указывает дуга) либо последовательно щелкать на пустом пространстве а затем на конечной вершине. В этом случае дуга будет ломаная (Рисунок 23).
20
Рисунок 23. Пример ломаной дуги, соединяющей две вершины. Точно так же, как и вершины, точки перелома дуги можно перемещать, изменяя тем самым форму дуги. Команда удаления вершины производит удаление не только самой вершины, но и всех дуг с ней связанных, что естественно для графовой модели. При выборе команды показа характеристик вершины появится диалоговое окно следующего вида — рисунок 24. С его помощью можно редактировать значения атрибутов объекта9. Для этого следует сделать двойной щелчок на имени атрибута и откроется другое диалоговое окно, показанное на рисунке 25. В данном окне нужно исправить или ввести новое значение атрибута.
Рисунок 24. Диалоговое окно редактирования атрибутов
Рисунок 25. Окно ввода значения атрибута. Меню для дуги содержит следующие команды: ⎯ «Удалить дугу» ⎯ «Добавить узел» ⎯ «Атрибуты дуги» В случае щелчка по узлу (точке перелома дуги) вместо команды добавления узла будет команда его удаления. 9 Здесь говорится об объекте в связи с тем, что данное окно используется как для вершин, так и для дуг. 21
Все эти команды либо повторяют предыдущие, либо вполне очевидны, поэтому подробно описывать их не будем.
2.4.2 Пример создания экземпляра графовой модели Рассмотрим пример создания простейшего экземпляра сетевой модели рассмотренной в работе [1]. Экземпляр модели был приведен ранее и выглядит следующим образом — рисунок 5. Для демонстрации всех возможностей редактора, разобьем сетевую модель на две: одна будет главной (ЗАДАЧА, ВЫВОД), а друга будет отвечать за обработку (ВВОД, ОБРАБОТКА, ОБРАБОТКА1, ОБРАБОТКА2, ОБРАБОТКА3). В конечном виде оба экземпляра сетевой модели можно увидеть на рисунке 26 и рисунке 27 соответственно.
Рисунок 26. Главная сеть.
Рисунок 27. Подсеть «обработка». В первую очередь создаем главную сеть. Для этого, запускаем редактор графовых моделей, выбираем созданный нами ранее шаблон сетевой модели, нажимаем «ОК». В открывшемся окне ввода имени граф-схемы оставляем имя по умолчанию. После этого, рисуем граф, аналогичный тому, что изображен на рисунке 26. Теперь чтобы создать такие же надписи на дугах необходимо заполнить активные атрибуты соответствующими значениями. Далее выбираем в меню «Граф-схема» команду создания новой граф-схемы. Называем ее «Работа», и рисуем сеть такую же, как на рисунке 27. Сетевая модель вычислительного процесса «Задача» на этом готова.
22
3 Конструктор прикладных программ В настоящем разделе описывается Конструктор Прикладных Программ (КПП) версии 2.0, компоненты которой частично совпадают с Системой Поддержки Графовых Моделей (СПГМ). Раздел содержит назначение системы, описание архитектуры, а также описание отдельных модулей: редактора шаблонов и редактора графовых моделей.
3.1 Назначение системы Конструктор прикладных программ служит для сборки пакетов прикладных программ из конечного числа функциональных модулей на основе сетевой модели вычислительного процесса. Каждый функциональный модуль должен быть исполняемым файлом и работать в операционной системе (ОС) Windows. Допускается также использование функциональных модулей, разработанных для ОС DOS, в случае если они корректно функционируют в ОС Windows. Сетевая модель вычислительного процесса создается на основании специфического шаблона и представляется в виде файла формата СПГМ.
3.2 Архитектура системы Конструктор Прикладных Программ работает под управлением операционной системы Windows 98 Second Edition и выше. Данный программный комплекс состоит из нескольких модулей, взаимосвязь между которыми представлена на Ошибка! Источник ссылки не найден.. Центральным модулем системы является СУБДГМ графовых моделей, реализованная в виде динамически подключаемой библиотеки. Все операции над шаблоном или экземпляром графовой модели выполняются с помощью операций данной СУБДГМ. Основным модулем, с которым взаимодействует пользователь, является интерпретатор сетевой модели вычислительного процесса, представляющий собой специализированный модуль, предназначенный для формирования траектории вычислительного процесса (выделение пути в сетевой модели) и запуска функциональных модулей в соответствии с командами траектории. Таким образом, интерпретатор конструктора прикладных программ является унифицированным управляющим процессором прикладного программного комплекса (Рисунок 28).
3.2.1 Комплектация системы. Система состоит из следующих основных модулей: • «ModelEditor.exe» — редактор графовых моделей; • «NBAccess.dll» — СУБДГМ графовых моделей; • «Шаблон СМВП для КПП v.2.0.nbt» — шаблон сетевой модели вычислительного процесса.
23
Уровень данных
Шаблон
Уровень СУБД
Экземпляр сетевой модели
Протокол работы
Редактор графовых моделей
Интерпретатор
СУБД графовых моделей
Уровень приложений
Уровень пользователя
Рисунок 28. Архитектура конструктора прикладных программ. Кроме этого для работы системы необходимы следующие динамически подключаемые библиотеки: Mfc42.dll и msvcrt.dll. Они поставляются в составе операционной системы MS Windows NT 4.0 и выше.
3.2.2 Общий принцип работы. Интерпретатор КПП играет роль управляющего процессора (Рисунок 4), т.е. выделяет в сетевой модели путь соответствующий конкретному набору исходных данных, формирует траекторию вычислительного процесса и передает команды траектории для исполнения в функциональный процессор. Интерактивное управление вычислительным процессом реализуется полностью в соответствии со схемой, представленной в теории (1.4). В вершине управления p (Рисунок 6)
24
Интерпретатор конструктора прикладных программ позволяет реализовать интерактивное управление вычислительным процессом наравне с комбинацией автоматического и директивного управления (см. 1.4). Автоматическое управление вычислительным процессом реализуется с использованием файлов директив. Суть такого комбинированного управления в следующем. При вычислении траектории вычислительного процесса, интерпретатор обращается к содержимому файла директивы, в котором содержится метка следующей исполняемой дуги. Такой файл директивы может быть создан пользователем заранее с помощью любого текстового редактора, или сгенерирован автоматически одним из функциональных модулей прикладного программного комплекса. Директивное управление вычислительного процесса реализуется интерпретатором с помощью специального режима интерпретации, который вызывается из управляющего меню интерпретатора или кнопкой с панели управления. В данном режиме интерпретатор использует файл «Directive.txt», из каталога с экземпляром модели, который содержит предложение языка управления. Такой файл может быть создан пользователем заранее с помощью любого текстового редактора, или создан с помощью специальной функции интерпретатора, позволяющей записать такой файл автоматически в процессе автоматической или пошаговой интерпретации. Одним из основных преимуществ использования сетевых моделей вычислительного процесса, является возможность комбинировать все способы управления вычислительным процессом в одной модели. 1.1.1.9 Технология конструирования программного комплекса Теоретические аспекты построения прикладных программных комплексов рассмотрены в работе [1]. Создание прикладного программного комплекса с использованием конструктора прикладных программ происходит в три этапа и выглядит следующим образом. На первом этапе создается сетевая модель вычислительного процесса на основе шаблона, поставляемого с системой. Сетевая модель вычислительного процесса может состоять из нескольких отдельных граф-схем [2], каждая из которых имеет свое, обычно уникальное, имя. Экземпляр сетевой модели рисуется в редакторе в виде ориентированного графа, вершины и дуги которого принадлежат тому или иному типу из задекларированных в шаблоне. После создания экземпляра модели, она сохраняется в файле с расширением «.gm». При создании сетевой модели вычислительного процесса для конструктора прикладных программ следует выполнять следующие требования: ⎯ В сетевой модели вычислительного процесса должна быть определена «Главная сеть». С нее начнется процесс интерпретации. ⎯ В каждой граф-схеме, составляющей сетевую модель вычислительного процесса должна быть одна начальная и одна конечная вершины. Их типы определены в шаблоне. ⎯ Все остальные вершины должны быть либо типа «Вершина интерактивного управления», либо типа «Вершина автоматического управления», либо «Вершина прерывания». ⎯ Ссылки на другую граф-схему должны находится в дугах специального типа. ⎯ Допускается также использование дуг следующих типов: «Выполнение», «Переход» и «Сообщение». На втором шаге создаются функциональные модули конструируемого программного комплекса. Ограничений, по функциональным модулям, практически нет, за исключением того, что все они должны исполнятся в среде Windows и обмен данными между ними происходит через файловую систему. 25
Последним шагом является увязка сетевой модели вычислительного процесса и функциональных модулей, и отладка программного комплекса.
3.3 Шаблон для конструктора прикладных программ. Модель для конструктора прикладных программ строится на основе специального шаблона. Данный шаблон можно ограниченно изменять, только в сторону дополнения, т.е. в существующие типы добавлять свои атрибуты, изменять в существующих типах оформление. Добавлять свои типы, а также изменять существующие атрибуты у существующих типов категорически нельзя. Шаблон сетевой модели вычислительного процесса содержит пять типов вершин: • Начальная вершина. Данная вершина служит для определения точки начала интерпретации, для сетевой модели вычислительного процесса. Конструктор всегда начинает интерпретацию с вершины данного типа. В каждом экземпляре сетевой модели должна быть только одна вершина такого типа. Тип содержит следующие специальные атрибуты: — Изображение — служит для определения имени файла с изображением, которое будет демонстрироваться в качестве заставки в окне интерпретатора. — Метка — метка вершины, которая отображается при рисовании модели. • Конечная вершина. Данная вершина служит для определения конца интерпретации. Конструктор всегда заканчивает интерпретацию сети на вершине данного типа. В каждой сети должна быть только одна вершина такого типа. • Вершина интерактивного управления. Данная вершина служит для определения управляющего меню в точке ветвления сети. Интерпретатор КПП, попадая в данную вершину показывает управляющее меню и переходит к выполнению дуги, выбранной пользователем. Тип содержит следующие специальные атрибуты: — Заголовок меню — служит для определения заголовка управляющего меню. — Метка — метка вершины, которая отображается при рисовании модели. • Вершина автоматического управления. Данная вершина служит для автоматического выбора выполняемой дуги в точке ветвления. Интерпретатор КПП, попадая в данную вершину не показывает управляющее меню и переходит к выполнению дуги, указанной в файле с директивой. Тип содержит следующие специальные атрибуты: — Директива — служит для определения имени файла содержащего директиву. — Заголовок меню — служит для определения заголовка управляющего меню. — Метка — метка вершины, которая отображается при рисовании модели. • Вершина прерывания. Данная вершина служит для аварийной остановки интерпретации. Интерпретатор КПП, попадая в вершину данного типа останавливает процесс интерпретации и закрывает файл протокола. Данный тип не содержит атрибутов. Шаблон сетевой модели вычислительного процесса содержит четыре типа дуг: • Выполнение. Данная дуга служит для определения необходимости выполнения функционального модуля: — Команда — служит для определения команды функционального процессора. В данном атрибуте указывается команда операционной системы, либо имя файла – регистра (в этом случае надо ставить символ ‘$’ в начале), в котором содержится команда операционной системы 26
•
•
•
— Метка — метка дуги, которая отображается при рисовании экземпляра модели. — Порядок в меню — целое число, указывающее какой по порядку в меню будет отображаться метка этой дуги. Переход. Данная дуга служит для перехода между вершинами. Она не выполняет каких-либо действий. Атрибуты дуги следующие: — Метка — метка дуги, которая отображается при рисовании экземпляра модели. — Порядок в меню — целое число, указывающее какой по порядку в меню будет отображаться метка этой дуги. Сообщение. Дуга данного типа служит для формирования сообщения, как на экран так и в файл протокола. Атрибуты дуг этого типа следующие: — Метка — метка дуги, которая отображается при рисовании экземпляра модели. — Порядок в меню — целое число, указывающее: какой по порядку в меню будет отображаться метка этой дуги. — Сообщение в протокол — содержит строку сообщения, которое записывается в файл протокола. — Сообщение пользователю — содержит строку сообщения, которое выдается на экран. Ссылка. Дуга данного типа предназначена для ссылки на граф-модель. Ссылка может быть рекурсивной. При этом в дугах такого типа присутствуют следующие атрибуты: — Метка — метка дуги, которая отображается при рисовании экземпляра модели. — Порядок в меню — целое число, указывающее: какой по порядку в меню будет отображаться метка этой дуги. — Название сети — имя граф-схемы (подсети) на которую ссылается данная дуга.
3.4 Интерпретация модели. Интерпретация сетевой модели вычислительного процесса производится либо в автоматическом, либо в пошаговом режиме. Для запуска в автоматическом режиме следует запустить интерпретатор и передать ему в качестве параметра командной строки имя файла модели. Автоматическая интерпретация возможна также из графической среды интерпретатора, путем выбора соответствующего пункта в меню интерпретатора. Другим возможным способом интерпретации является – пошаговая интерпретация, которая возможна только из графической среды. При этом на экране будет демонстрироваться сетевая модель вычислительного процесса, в которой текущий объект подсвечивается.
4 Задания для самостоятельной работы 4.1 Знакомство с Системой Поддержки Графовых Моделей Цель работы: изучить понятие графовая модель и научиться создавать собственные графовые модели. Описание работы: • Изучить архитектуру Системы Поддержки Графовых Моделей (СПГМ) теоретически и практически. • Построить конечный автомат (КА) решения заданной индивидуальной задачи из списка, предоставленного преподавателем. 27
•
Создать графовую модель, соответствующую данному конечному автомату в редакторе графовых моделей СПГМ, при этом необходимо соблюдать следующие требования. • Каждая вершина КА должна соответствовать своему типу из шаблона • Каждая дуга и вершина КА должна быть помечена в соответствии с теорией • Оформить отчет в формате PDF или PS, который будет содержать титульную страницу, цель и описание работы, а также рисунок КА. К отчету следует приложить соответствующий файл графовой модели формата СПГМ. Пример задачи: Построить детерминированный конечный автомат для слов алфавита {0,1,2,3,4,5,6,7,8,9} и распознающий четные числа. Решением задачи является: 1. построение собственного шаблона конечного автомата, в котором выделены характерные для конечного автомата типы вершин. 2. создание экземпляра модели на базе данного шаблона, которая соответствует данному конечному автомату.
4.2 Создание сетевой модели вычислительного процесса Цель работы: Изучить теорию сетевых моделей и научиться создавать шаблон и экземпляры сетевых моделей (СМ) вычислительного процесса. Описание работы: • В редакторе шаблонов системы поддержки графовых моделей (СПГМ) собственный индивидуальный шаблон сетевой модели вычислительного процесса. • Построить сетевую модель решения заданной индивидуальной задачи из списка, предоставленного преподавателем. • В редакторе графовых моделей СПГМ создать экземпляр данной сетевой модели. • Оформить отчет в формате PDF или PS, который будет содержать титульную страницу, цель и описание работы, а также рисунок СМ. К отчету следует приложить соответствующий файл графовой модели формата СПГМ. Набор текста для отчета можно производить в любом текстовом редакторе, с последующей конвертацией в один из указанных форматов. Пример задачи: Построить сетевую модель процедуры работы со стеком, включающую выбор операции и производимые над стеком действия. Необходимо предусмотреть следующие операции: добавление элемента, удаление элемента, изменение элемента. Операцию изменения элемента реализовать через операции удаления и добавления. Решением задачи является: 1. построение собственного шаблона сетевой модели, в котором выделены один тип вершины и один тип дуги. Каждый тип содержит единственный текстовый атрибут – «Метка». 2. создание экземпляра модели на базе данного шаблона, которая соответствует заданию.
4.3 Создание собственного прикладного программного комплекса Цель работы: Создать собственный прикладной программный комплекс на базе конструктора прикладных программ. Описание работы: • Построить сетевую модель решения заданной индивидуальной задачи из списка, предоставленного преподавателем, но на базе стандартного шаблона сетевой модели вычислительного процесса, который поставляется с системой. 28
• •
В редакторе графовых моделей СПГМ создать экземпляр данной сетевой модели. Реализовать на любом языке программирования функциональные модули системы, удовлетворяющие требованиям интерпретатора КПП. • Оформить отчет в формате PDF или PS, который будет содержать титульную страницу, цель и описание работы, а также рисунок СМ. К отчету следует приложить архив, содержащий разработанную программную систему, или инсталляционный модуль. Набор текста, для отчета, можно производить в любом текстовом редакторе, с последующей конвертацией в один из указанных форматов. Пример задачи: Реализовать задачу, полученную в предыдущей лабораторной работе на базе Конструктора Прикладных Программ. Решением задачи является: 1. Создание экземпляра сетевой модели вычислительного процесса на базе стандартного шаблона для конструктора прикладных программ. Расстановка типов вершин в соответствии со способами управления вычислительным процессом в каждом конкретном кусте. 2. Программирование функциональных модулей, соответствующих дугам сетевой модели вычислительного процесса. 3. Сборка программного комплекса на базе интерпретатора КПП.
5 Литература 1. Васин Ю.Г., Кошелев М.В., Кузин С.Г., Смирнов А.Ф. Об одной технологии конструирования сложных программных комплексов // Вестник Нижегородского университета: Математическое моделирование и оптимальное управление. Н.Новгород: Изд-во Нижегородского университета, 1998, 2(19). С.224-235. 2. В. Н. Касьянов, В. А. Евстигнеев. Графы в программировании: обработка, визуализация и применение. – СПб.: БХВ-Петербург, 2003. – ISBN 5-94157-184-4. 3. Кузин С.Г., Кошелев М.В. Модели и способы управления вычислительным процессом. В сб. Вестник Нижегородского университета: Математическое управление и оптимальное управление, Издательство Нижегородского университета, Нижний Новгород, 1997. с.184-195.
29
Илья Андреевич Прахов Станислав Григорьевич Кузин
Система поддержки графовых моделей. Конструктор сложных программных комплексов.
Методическое руководство для выполнения лабораторного практикума. Государственное образовательное учреждение высшего профессионального образования «Нижегородский государственный университет им. Н. И. Лобачевского». 603950, Нижний Новгород, пр. Гагарина, 23. Подписано в печать . Формат 60х84 1/16. Бумага офсетная. Печать офсетная. Гарнитура Таймс. Усл. печ. л. ___. Уч.-изд. л. 3,3 Заказ №___. Тираж ___ экз. Отпечатано в типографии Нижегородского госуниверситета им. Н. И. Лобачевского 603600, г. Нижний Новгород, ул. Большая Покровская, 37 Лицензия ПД № 18-0099 от 14.05.01