список литературы
1. Аксенов, К.А. Анализ и синтез процессов преобразования ресурсов на основе имитационного моделирования и интеллектуальных агентов [Текст] / К.А. Аксенов, А.С. Антонова, И.А. Спицина // Научно-технические ведомости СПбГПУ Сер. Информатика. Телекоммуникации. Управление. -2011. -№1 (115). -С. 13-19.
2. Аксенов, К.А. Динамическое моделирование
мультиагентных процессов преобразования ресурсов [Текст] / К.А. Аксенов, Н.В. Гончарова. -Екатеринбург: ГОУ ВПО УГТУ-УПИ, 2006.-311 с.
3. Волкова, Н.В. Теория систем и системный анализ в управлении организациями. Справочник: Учеб. пособие [Текст] / В.Н. Волкова, А.А. Емельянов. -М.: Финансы и статистика, 2006. -848 с.
УДК 004.41
В.С. Кедрин, О.В. Кузьмин
ПРИМЕНЕНИЕ ПРОГРАММНОЙ АРХИТЕКТУРЫ MODEL-VIEW-CONTROLLER ДЛЯ ПОСТРОЕНИЯ СИСТЕМЫ ВИЗУАЛЬНОГО ПРОЕКТИРОВАНИЯ И МОДЕЛИРОВАНИЯ АЛГОРИТМОВ
Средства программного визуального проектирования и моделирования алгоритмов занимают особое место среди базовых инструментов специалистов прикладных областей науки и техники в различных предметных отраслях. Эти средства позволяют создавать модель изучаемого процесса или явления и проводить экспериментальные вычисления, что особенно актуально при исследовании телекоммуникационных, электрических и механических сигналов. Технология визуального проектирования дает возможность исследователю формировать осмысленный образ, выраженный в виде определенной «графической» схемы алгоритма, и избавляет от рутинной работы за счет автоматизации процесса проектирования.
В настоящее время существует несколько пакетов визуального проектирования и моделирования алгоритмов, функционирующих на различных аппаратных платформах и операционных средах и отличающихся между собой функциональными возможностями, быстродействием и стоимостью. Среди них можно выделить наиболее представительные: Simulink (МаЙаЬ), LabVIEW, Hypersignal и ряд им подобных. Данные системы предлагают исследователю широкий выбор методов цифровой обработки сигналов, но не всегда позволяют провести исследование в полной мере и накладывают ограничения на проведение некоторых этапов компьютерного эксперимента. Поэтому специалисты часто принимают решение о разра-
ботке собственного программного обеспечения, наделенного средствами визуального проектирования. В области создания такого программного обеспечения существует основная проблема, которая заключается в определении концепции построения программной архитектуры для систем визуального проектирования и моделирования алгоритмов. Одним из популярных способов разработки программы в этом случае является использование шаблонов проектирования, однако их недостаточно обдуманное применение приводит к перегруженности архитектуры, и, как следствие, низкой эффективности созданного программного продукта.
В работах [1-4] рассматриваются различные подходы к построению программных архитектур и современные тенденции их развития. Однако в указанных работах не учитываются особенности применения программных архитектур для различных классов информационных систем. Настоящая статья посвящена рассмотрению особенностей проектирования программного обеспечения на базе одной из перспективных компонентных программных архитектур - Model-View-Controller (далее - MVC), а также расширению и модификации данной архитектуры для класса информационных систем визуального проектирования и моделирования алгоритмов цифровой обработки сигналов. Следует отметить, что программная архитектура закладывает направленный базис
для построения эффективной информационной среды, и ее улучшение путем дополнения новых принципов и вариантов реализации определяет возможность создания новых более сложных алгоритмических и математических моделей в вычислительной среде.
Архитектура MVC
В основу предлагаемой концепции проектирования положена архитектура MVC, предложенная и описанная в работе Т. Reenskaug [5]. Впервые данная архитектура была использована в первой среде программирования с графическим интерфейсом пользователя - Smalltalk-80 [6].
В основе архитектуры MVC лежит разделение данных, пользовательского интерфейса и логики взаимодействия этих элементов. Это достигается за счет того, что проектирование архитектуры программы строится на трех компонентах:
модель;
контроллер;
представление.
Модель содержит сведения о данных и их структуре и изменяется под действием команд контроллера.
Контроллер реагирует на действия пользователя и оповещает модель об изменении ее состояния.
Представление предназначено для вывода данных для пользователя и реагирует на изменения модели.
Архитектура MVC задает не столько правила разделения программы в стадии проектирования на компоненты, сколько правила их взаимодействия. Благодаря этой особенности можно работать с моделью, а, следовательно, и с источником данных, взаимодействующих с ней, независимо от графического представления.
Применение архитектуры MVC позволяет создать модель, формирующую для представления только те данные, которые действительно необходимы для отображения. К примеру, если данные исследователя в памяти занимают несколько тысяч значений, то отображаются на экране в актуальном виде лишь несколько десятков значений. Поэтому представлению в актуальный момент времени модель должна сформировать для визуализации только необходимые значения, что значительно повысит скорость обработки очень больших наборов данных (105 и более значений) и уменьшит потребности в памяти для графической
визуализации по сравнению с подходом, требующим считывания всех данных.
Архитектура MVC в современных средах программирования ориентирована на решение проблемы синхронизации данных для разных представлений. Так, связывая одну модель с двумя или более представлениями, можно представить взаимодействие данных различными способами. Благодаря этому изменения в данных будут отражаться во всех представлениях, связанных с моделью.
Дополнительное преимущество архитектуры MVC проявляется в том, что если проектировщик решает изменить способ хранения исходных данных, то в этом случае просто потребуется скорректировать модель; представления по-прежнему будут работать правильно [7].
Необходимо отметить, что в современных языках программирования компонентный уровень MVC имеет ряд изменений:
отсутствие четкого разделения между представлением и контроллером;
отсутствие требования обязательного выделения модели в качестве отдельной компоненты, т. к. в некоторых реализациях MVC она по умолчанию включена в стандартный механизм программных элементов.
Задача лица, проектирующего программу, принять решение: или выделять компоненты модели, или сразу описывать механизм обработки данных. Второе решение приводит к проблеме проектирования обработки данных для каждого представления. Поэтому использование механизма MVC без отдельного выделения компоненты-модели представляется нецелесообразным. В представляемой в дальнейшем концепции проектирования системы научных вычислений понятие модели занимает центральное место.
Особенности применения архитектуры MVC
Применение архитектуры MVC в явном виде хоть и несколько усложняет этап проектирования программной структуры, но дает значительный выигрыш в быстродействии программы и возможности синхронизации информации в разных представлениях из одного источника данных. При этом потенциал применения архитектуры MVC намного выше и проявляется на стыке с различными информационными технологиями. Так, соединение данной архитектуры с принципами объектно-ориентированного подхода, как, на-
пример, в кроссплатформенном инструментарии разработки программного обеспечения на языке программирования C++ Qt (Nokia) [7], позволяет сформировать актуальные направления применения архитектуры MVC.
Выделим отдельные новые направления применения архитектуры MVC для класса информационных систем визуального проектирования и моделирования алгоритмов для цифровой обработки сигналов.
Первое направление - оптимизация процесса хранения и представления данных.
Предположим, что в памяти компьютера содержится произвольный ряд числовых значений - вектор (одномерный массив) данных:
А = [av av av «J. (1)
Оптимальным считается такое хранение информации, когда произвольный вектор значений хранится в подсистеме данных только в одной области памяти. Однако в ходе проектирования вычислительного алгоритма зачастую требуется множественный образ исходного вектора, например, в виде матрицы
B
или матрицы
C =
(2)
*г+1
(3)
_ап 0 ... 0 размерами I х п.
При традиционном подходе преобразование исходного вектора А в матрицы В или C потребовало бы увеличения области памяти в хранилище данных в I раз по сравнению с той областью памяти, которую занимал исходный вектор.
Использование архитектуры МУС позволяет не только представлять данные, но и формировать структуру организации данных. Так, если на уровне модели ввести алгоритм, позволяющий описывать организацию данных, то при визуальном проектировании вычислительной модели в представлении можно формировать множественный образ данных в определенных структурах без увеличения объема занимаемой ими памяти ЭВМ.
Организация одномерного массива данных в памяти ЭВМ для вектора А связано с понятиями указателя (адреса) памяти размещения данных р и сдвига 5, показывающего смещение данных в структуре памяти относительно начала.
Идея заключается в том, чтобы модель формировала форму организации данных на базе системы точек Б. с координатами (р.; 5.), а представление на базе фигуры организации данных отображало необходимую структуру данных.
Формой организации данных вектора А будет представление в виде точки Б1(рА; 0):
Ра = ЩЬ (4)
где рА - указатель памяти для вектора А.
Формами организации данных для матрицы В и С будут представления в виде системы из I точек:
Бв = (Д, Б, ..., Б}, (5)
= (Бр Б2, ..., БД, (6)
где точки Б1, Б2,..., Б1 имеют координаты:
' А( РА ;0), Б2 ( РА'Л
<
. Б2( РА'1 - !)•
Формы организации данных (4)-(6), создаваемые на уровне модели, являются основой для правильного их отображения в соответствующем представлении, например, в таблице в виде (1)-(3) соответственно. При этом чтобы модель имела связь с представлением на основании формы организации данных, необходимо иметь механизм на уровне контроллера, позволяющий вводить информацию о структуре данных в модель.
Второе направление - организация и представление вариативной схемы алгоритма, что является критерием гибкости и эффективности системы визуального проектирования.
Наиболее наглядный способ представления вычислительной методики (схемы алгоритма) в этом случае - ациклический ориентированный п-мерный граф О, состоящий из непустого подмножества множества узлов V и множества дуг Е, упорядоченно соединяющих некоторую область узлов.
В качестве узлов графа V выступают данные и методы (способы обработки и преобразования данных), а в качестве дуг Е - связи между данны-
а, а
а
1 2
а-, а
2 ^3
ми и методами. Причем связи всегда имеют направление и классифицируют данные по отношению к методу как входные и выходные.
Таким образом, модель для реализации второго направления должна включать алгоритм формирования графа. Исходя из рассмотренного ранее первого направления, предназначенного для оптимизации хранения данных, предлагается использовать не обычный, а модифицированный граф:
О' :=(Б, Е),
где точки Б характеризуют структуру организации данных.
Рассмотрим, в чем заключается отличие между обычным ориентированным графом и модифицированным. На рис. 1 а представлен обычный ориентированный граф, показывающий связь между двумя векторами входа 1пх и т2 и одним вектором выхода ои11 посредством метода М. При этом вектор входа т2 получается путем поэлементного сдвига значений вектора входа т вправо, по аналогии со столбцами матрицы С (3). Рис. 1 б отражает тот же самый граф, но уже в модифицированном виде посредством системы точек Б, показывающих форму организации данных. Пунктиром выделены точки Б, относящиеся к одним и тем же данным, хранящимся в памяти.
Рассмотренный модифицированный ориентированный граф является основой для вариативного формирования схемы алгоритма. Для реализации данной цели необходимо, чтобы представление и контроллер формировали рабочую область не только для представления, но и для изменения элементов графа. Это возможно,
а)
б)
если реализовать представление схемы расчета с помощью технологии визуального проектирования, которое предлагает возможность манипулирования графическими объектами, вместо написания команд.
Технология визуального проектирования позволяет создать рабочую область, предназначенную для формирования граф-представления моделей схемы расчета на основе репозитария методов, содержащего различные классы методов (алгоритмов) анализа и синтеза. При таком подходе в отличие от классического способа моделирования, исследователю не нужно досконально изучать специализированный язык программирования и численные методы, а достаточно знаний о законах и зависимостях той предметной области, в которой он работает.
Таким образом, визуальное проектирование схемы алгоритма на базе вариативного модифицированного графа является основой наглядного и функционального интерфейса, обеспечивающего отображение и формирование логических взаимосвязей между входной и выходной информацией и снижающего сложность описания и составления вычислительной методики. При этом механизм формы организации данных на уровне модели позволяет оптимизировать процесс хранения и представления больших объемов данных
Создание информационной системы визуального проектирования и моделирования алгоритмов
Продемонстрируем описанные выше возможности архитектуры MVC на конкретном примере экспериментальной разработки программного
0,(Рл. 0)
Рис. 1. Представления графов: а - пример ориентированного графа; б - пример модифицированного ориентированного графа in - входные данные; out - выходные данные; M- метод расчета; «+1» - метод единичного элементного
сдвига вектора данных
Область таблиц Область графиков
Область схемы расчета
Рис. 2. Графический интерфейс системы визуального проектирования и моделирования алгоритмов
Рис. 3. Множественное представление вектора данных в таблице
Рис. 4. Схема расчета методики
комплекса визуального проектирования и моделирования алгоритмов для анализа и прогнозирования сложных энергетических процессов. Данная программа реализуется авторами на базе библиотеки Qt и содержит ряд законченных решений применения архитектуры МУС, описанных ранее.
Графический интерфейс созданной программы реализует три области (рис. 2): таблиц; графиков; схемы расчета.
Данные области содержат механизмы контроллера в виде функциональных кнопок и редакторов свойств, а также представления в виде таблицы, графика и модифицированного ориентированного графа расчета. Все области подключены к одной модели, управляющей процессами изменения и синхронизации данных в отдельных представлениях и реализующей оба направления применения архитектуры МУС для построения системы визуального проектирования, рассмотренные выше.
На рис. 3 показана реализация программной таблицы. В первой графе таблицы содержатся данные времени регистрации значений. Благодаря алгоритму, реализующему форму организации данных на уровне модели, в источнике данных не требуется увеличения памяти. При этом форма организации данных в виде системы точек Б1, Д,,..., отражается в области схемы расчета, как представлено на рис. 4 в левом крайнем блоке ТаЬ1. Как видно из схемы, в программе определены три таблицы (ТаЬ1, ТаЬ2, ТаЬЗ), содержащие в общей совокупности 15 серий данных для пользователя. При этом в источнике данных содержат-
ся только четыре серии данных (р1, р2, рЗ, р4). Таким образом, при хранении данных в памяти на базе архитектуры МУС для рассматриваемого примера расчета расходуется в четыре раза меньше памяти, по сравнению с классическим подходом, требующим последовательного хранения всех данных.
Построение схемы расчета (рис. 4) основано на элементах когнитивной графики, что выражено в форме графических фигур и линий связи, помогающих понять структуру организации сложной методики расчета на базе модифицированного ориентированного графа.
Предложена методология проектирования программной среды на базе программной архитектуры Model-Уiew-Controller, которая значительно расширяет возможность реализации отдельных компонентов систем визуального проектирования и моделирования алгоритмов и повышает эффективность их использования.
Проведенное проектирование экспериментальной разработки программного комплекса научных вычислений для анализа и прогнозирования сложных энергетических процессов показало следующее.
Реализованный механизм формы организации данных на уровне модели позволяет оптимизировать процесс хранения и представления больших объемов данных.
Предложенный модифицированный ориентированный граф дает возможность анализа структуры организации данных помимо их взаимосвязи и является основой визуального формирования вариативной методики.
список литературы
1. Mani Chandy, K. Specifications and Architectures of Federated Event-Driven Systems [Текст]/ K. Mani Chandy, M. Olson // AAAI. Technical Report. -2009. -P. 21-26.
2. Бахтизин, В.В. Создание управляемой программной архитектуры [Текст]/ В.В. Бахтизин, С.Н. Неборский // Программные продукты и системы. -2006. -№ 3. -С. 42-56
3. Борисов, А.В. Современные архитектурные подходы к построению программного обеспечения [Электронный ресурс]/ А.В. Борисов, И.Е. Куриленко // Вычислительные сети. Теория и практика (Network j. Theory and practice). -2010. -№ 2 (17). -Режим доступа: http://network-journal.mpei.ac.ru/cgi-bin/main. pl?l=ru&n=17&pa=3&ar=3
4. Newcomer, E. Understanding SOA with Web Services [Текст]/ E. Newcomer, G. Lomow. -Addison-Wesley, 2004. -480 с.
5. Reenskaug, T. MVC. Xerox PARC 1978-79. Pages of Trygve M. H. Reenskaug [Электронный ресурс]/ T. Reenskaug // Режим доступа: http://heim.ifi.uio. no/~trygver/themes/mvc/mvc-index.html
6. Burbeck, St. Application programming in Small-talk-80TM: How to use Model-View-Controller (MVC). The UIUC Smalltalk Archive. 1997. [Электронный ресурс]/ St. Burbeck // Режим доступа: http://st-www. cs.illinois.edu/users/smarch/st-docs/mvc.html
7. [Электронный ресурс]/ -Режим доступа: http:// qt.nokia.com/
УДК 517.958:532.5
В.Н. Козлов, Д.Х. Нгуен, А.Н. Фирсов
МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ И ОПТИМИЗАцИя ГИДРАВЛИЧЕСКИХ СЕТЕй ПРИ УСТАНОВИВшИХСя РЕЖИМАХ ТРАНСПОРТИРОВКИ СЛАБОСЖИМАЕМОй ЖИДКОСТИ
Важность задачи математического моделирования процесса транспортировки жидких сред по системам трубопроводов (гидравлических сетей) хорошо известна [3, 4]. Однако до настоящего времени большинство исследований таких систем основывается на полуэмпирических моделях. В настоящей работе делается попытка построения достаточно строгой математической модели транспортировки слабосжимаемой жидкости по системам трубопроводов, основанной на урав-
нениях Навье-Стокса, преобразованных соответствующим образом [1]. Анализ такой модели позволяет свести задачу оптимизации управления подобными сетями к задачам линейного программирования.
1. Опишем основные предположения, используемые при построении математической модели процесса транспортировки. Будем рассматривать гидравлическую сеть (ГС), схема которой показана на рисунке. Гидравлическую сеть представим
Схема гидравлической сети N. - насос создает действующий напор или активное давление; г - г-й контур