-►
Вычислительные машины и программное обеспечение
УДК 004.4'244, 004.4'236
А.С. Григоров
подход к разработке картотечных информационных СИСТЕМ, основанный НА ПРЕДМЕТНо-оРИЕНТИРоВАННой
модели метаданных
В большинстве крупных муниципальных образований Российской Федерации происходит активное внедрение информационных систем, охватывающих различные стороны деятельности органов местного самоуправления и их подведомственных организаций. За последнее десятилетие многие муниципальные организации успели внедрить у себя собственные внутренние информационные системы (ИС). В большинстве случаев они реализовывались в виде десктопных приложений, устанавливаемых на компьютеры всех операторов, которые с ними работали.
При использовании данного подхода со временем у организаций мог возникнуть целый ряд проблем, связанных с поддержкой используемых программных комплексов: администрирование целого парка компьютеров с установленным ПО и работы по обновлению этого ПО требуют значительных трудовых и материальных затрат. В настоящий момент стоит вопрос о сокращении расходов на сопровождение используемых систем и увеличении скорости разработки и внедрения новых. Быстро меняющееся законодательство, экономические факторы часто требуют незамедлительного реагирования. Поэтому создаваемые ИС должны поддерживать возможность быстрого внесения изменений в бизнес-логику используемых программных комплексов. Один из возможных подходов к решению указанных проблем - отказ от применения ИС, основанных на архитектуре «толстого» клиента, и осуществление перехода на использование веб-технологий.
В качестве технологии, позволяющей ускорить процесс разработки новых ИС, предлагается использовать подход, основанный на моделировании. Предметные области создаваемых
информационных систем описываются моделями высокого уровня абстракции, которые затем применяются для формирования внешнего вида клиентской части веб-приложения и генерации программного кода серверной части, определяющего бизнес-логику, статические и динамические структуры создаваемой системы.
В данной статье предлагается один из способов моделирования муниципальных ИС: с помощью специально разработанного для этих целей предметно-ориентированного языка программирования.
Структура комплекса муниципальных информационных систем
Если рассматривать направления в развитии ИС, которые используются в настоящее время в работе муниципальных органов власти и их подведомственных структур, то можно сказать, что в основном данные ИС оперируют «картотечной» информацией [1]. К их основным функциям относятся: ввод в систему данных об объекте и их редактирование; поиск сведений об объектах; создание разнообразных отчетов, основанных на информации, хранящейся в ИС, и т. д. Можно выделить несколько ключевых элементов интерфейса, встречающихся в большинстве подобных систем: модуль отображения информации в виде карточки («имя атрибута» - «значение»);
модуль отображения информации в виде таблицы;
модуль отображения информации в виде различных формируемых отчетов;
компонент, ответственный за поиск информации в системе.
Также в некоторых муниципальных ИС могут
4
Научно-технические ведомости СПбГПУ 6-2' 2011 Информатика. Телекоммуникации. Управление
Рис. 1. Схема организации комплекса муниципальных информационных систем
использоваться различные специфические модули, например:
карта для отображения географической информации (например, в системах учета земельных ресурсов или адресного реестра);
модули для отображения информации в виде диаграмм, графиков;
компоненты для отображения графической информации (например, отображение сканированных копий документов).
Так как для среднего российского города (с населением более 100 тыс. человек) подобных ИС может насчитываться несколько десятков, и данные из этих ИС могут быть связаны между собой, то возникает потребность в обеспечении взаимодействия между ними.
Для того чтобы решить указанную потребность, все ИС должны строиться по единой методике с помощью одних и тех же средств проектирования и иметь стандартный общий вид ключевых элементов интерфейса. В программном комплексе муниципальных ИС (рис. 1) предлагается выделить две основные части: системную и функциональную [2].
Системная часть представляет собой базис программного комплекса - его ядро. Основной функцией ядра является интерпретация моделей конкретных подсистем, описываемых в функциональной части.
Функциональная часть комплекса состоит из трех основных компонентов.
1. Описание подсистем. В качестве описания подсистемы выступает набор метаданных, деля-
щихся на следующие группы:
описание профилей и ролей пользователей;
структурного состава объектов ИС и связей между ними;
используемых источников данных;
описание способов отображения данных.
2. Программный код бизнес-логики, написанный на языках программирования, выполнение которых поддерживает ядро системы.
3. Источники данных.
В общем виде алгоритм работы комплекса муниципальных информационных систем можно описать следующим образом.
1. Пользователи взаимодействуют с комплексом через интернет-браузер: проходят регистрацию и в зависимости от назначенных профилей и ролей получают возможность работать с доступными для них ИС.
2. После того как пользователь запросил информацию по какому-либо объекту ИС, ядро системы выполняет выборку метаданных по данному объекту.
3. Затем ядро, определив требуемый источник данных и метод доступа к ним, вызывает этот метод.
4. После получения данных ядро на основе описанного в метаданных способа отображения формирует ответ клиенту.
Предметно-ориентированный подход к созданию муниципальных информационных систем
Ядро должно не только формировать пользо-
Конкретный синтаксис Абстрактный синтаксис | Правила траноформацт
Рис. 2. Последовательность шагов моделирования и генерации ИС
вательский интерфейс приложения и организовывать доступ к данным, но и реализовывать функцию автоматизированной генерации рабочих ИС по создаваемым моделям. Так как модель должна отвечать и за внешний вид приложения, и за его бизнес-логику, то следует выбирать такой подход к разработке ПО на основе моделей, который обеспечит требуемый уровень абстракции модели и относительную простоту структуры метаданных.
В работе Е.В. Филичева и С.М. Устинова [3] рассмотрены основные подходы к технике разработки ПО на основе моделей, применяемые в настоящий момент. В качестве инструмента, с помощью которого можно создавать однотипные ИС, было принято решение использовать специально разработанный для таких целей предметно-ориентированный язык программирования (Domain-Specific Language, DSL).
Процесс создания DSL состоит из следующих этапов:
1) определение абстрактного синтаксиса;
2) определение конкретного синтаксиса;
3) определение правил трансформации.
Абстрактный синтаксис - это пригодный для
машинной обработки вид, в котором описываются понятия DSL.
Конкретный синтаксис - это представление понятий абстрактного синтаксиса, которыми может манипулировать пользователь. Представление может быть текстовым, графическим или симбиозом обоих. В нашем случае будет использоваться представление в виде элементов UML (классов, ассоциаций и т. д.).
Правила трансформаций - это правила, по которым абстрактное представление транслируется в исполнимое представление. Так как в нашем случае в качестве абстрактного представления используются XML-файлы, то преобразование их содержания в исполняемый код может быть реализовано при помощи технологии XSLT (рис. 2).
Основой описания конкретного синтаксиса являются диаграммы классов, отражающих предметную область. Для того чтобы настроить стандартные элементы модели для выполнения конкретных задач по моделированию картотечных ИС, применен механизм UML-профилей и определены несколько новых UML-стереотипов для элементов модели:
классы прикладных объектов (класс со стереотипом «Object»);
классы, описывающие группы свойств прикладных объектов (стереотип «Properties»);
классы, описывающие поиски (стереотип «Search») и группы поисков (стереотип «Searches»);
классы, описывающие отчеты (стереотип «Report») и группы отчетов (стереотип «Reports»).
На рис. 3 приведен упрощенный фрагмент описания подсистемы «Аренда земельных участков». Класс «Договор аренды земельного участка» (далее - «Договор») имеет одну группу свойств в виде карточки и группу отчетов. Источниками данных для этого объекта предметной области выступают V_DOC_RENT и V_DOC_ RENT_INF (в нашем случае это представления в базе данных). Атрибут «Арендатор» в группе свойств «Договора» является ссылкой на класс «Арендатор». Для того чтобы пользователь ИС имел возможность устанавливать связь между существующими в системе экземплярами «Договора» и «Арендатора», для класса «Арендатор» описывается поиск (в нашем случае в качестве поиска выступает параметризированный SQL-запрос, выбирающий данные из представлений V_RENTER и V_RENTER_INF).
Следующий этап разработки ИС - перевод диаграмм UML в XML-представление. Каждому элементу UML ставится в соответствие фрагмент XML-файла. Классы и ассоциации трансформи-
Научно-технические ведомости СПбГПУ 6-2' 2011 ^ Информатика. Телекоммуникации. Управление
Рис. 3. Фрагмент описания подсистемы «Аренда земли»
руются в тэги, а свойства элементов модели - в атрибуты этих тэгов. В настоящий момент XML Schema, соответствующая XML-файлу, описывающему структурный состав объектов ИС и связей между ними, содержит описание порядка 40 элементов и 140 атрибутов. Более подробное описание соответствия между UML-элементами и элементами в XML-представлении рассмотрено в работе [4].
Следующий этап разработки ИС - генерация исполняемого кода из XML-представления. Основные подходы к генерации кода ИС рассмотрены в работах А.Н. Иванова [5] и А.А. Шалы-то [6]. Так как в качестве источника данных для генерации используется XML-файл модели, то было принято решение использовать технологию XSLT. Процесс генерации кода на основе XSLT-преобразований более подробно рассмотрен в работе [7]. Для каждого конкретного языка программирования может быть создан специальный шаблон преобразования. Генератор выполняет следующие действия:
1) генерация таблиц и представлений БД;
2) хранимых процедур БД или программных модулей, написанных на языках программирования, выполнение которых поддерживает ядро системы;
3) шаблонов отчетов;
4) тестовых данных;
5) генерация профилей пользователей, позволяющих разделить права доступа к информации, хранящейся в ИС.
Внедрение и доработка картотечных информационных систем, спроектированных с применением DSL
Разработка языка моделирования картотечных ИС ведется с конца 2007 г. С 2010 г. в рамках развития муниципальной геоинформационной системы г. Череповца внедрено 5 ИС, при разработке которых использовались два подхода:
1. ИС полностью проектируется с помощью UML, а база данных и прикладной программный код генерируется на основе созданных моделей. Изменения, вносимые программистами в сгенерированный прикладной код бизнес-логики, имеют незначительный характер.
2. Структура базы данных и код бизнес-логики разрабатываются программистами самостоятельно, а модели используются для описания внешнего вида ИС и разделения прав доступа.
Первый подход выгодно применять, когда ИС разрабатывается «с нуля». Процесс разработки можно разбить на несколько итераций, на каждой из которых можно выполнить процесс генерации и получить работоспособный макет ИС. Плюсом данного подхода является еще и то, что если в ходе эксплуатации системы появ-
ляется потребность в расширении структуры и функциональности ИС, то моделирование дополнительных компонентов и их интеграция с ранее сгенерированной базой данных и программным кодом в ряде случаев не потребует значительных дополнительных затрат.
Второй подход применяется в том случае, если в работе создаваемой ИС будут использоваться базы данных, спроектированные для пред-
ыдущих версий данной системы. Преимущество данного подхода в том, что разработчики могут создавать более оптимизированные структуры баз данных, чем те, которые получаются в результате автоматической генерации. К недостатку подхода следует отнести то, что итеративный процесс разработки, применяемый в первом подходе, в данном случае требует большого объема ручного труда разработчика.
список литературы
1. Воробьева, М.С. Математическое моделирование и технологии интеграции данных в учетных информационных системах: Дис. ... канд. техн. наук [Текст] / М.С. Воробьева. -Тюмень. -2006. -131 с.
2. Григоров, Ант. С. Создание информационных систем для муниципальных образований [Текст] / Ант. С. Григоров, Анд. С. Григоров // Информатизация процессов формирования открытых систем на основе СУБД, САПР, АСНИ и систем искусственного интеллекта (ИНФОС-2009): Матер. V Междунар. науч.-техн. конф. - Вологда: Изд-во ВоГТУ, 2009. -С. 85-88.
3. Филичев, Е.В. Разработка веб-приложений на основе моделей высокого уровня абстракции [Текст] / Е.В. Филичев, С.М. Устинов // Научно-технические ведомости СПбГПУ. Сер. Информатика. Телекоммуникации. Управление. -2011. -№2. -С. 86-93.
4. Григоров, А.С. Предметно-ориентированный язык программирования для разработки информационных систем для муниципальных образований [Текст] /
А.С. Григоров // Объектные системы - 2010 (Зимняя сессия): Матер. II Междунар. науч.-практ. конф.; Под общ. ред. П.П. Олейника. -Ростов-на-Дону, 2010. -С. 55-59.
5. Иванов, А.Н. Автоматизированная генерация информационных систем, ориентированных на данные: Дис. ... канд. физ.-мат. наук [Текст] / А.Н. Иванов. -СПб., 2005. -130 с.
6. Шалыто, А.А. Автоматическая генерация кода программ с явным выделением состояний [Текст] / А.А. Шалыто, С.Ю. Канжелев // Software Engineering Conf. - 2006: Матер. Междунар. науч.-практ. конф. -М., 2006. -С. 60-63.
7. Dodds, L. Code generation using XSLT [Электронный ресурс] / IBM developerWorks: Ресурс IBM для разработчиков и IT профессионалов // Режим доступа: http://www.ibm.com/developerworks/xml/ tutorials/x-codexslt/x-codexslt-pdf.pdf (дата обращения 04.10.2011)
УДК 004.89
А.Е. Васильев, А.В. Донцова, А.И. Мурго
алгоритмическая реализация средств нечеткой обработки информации для встраиваемых интеллектуальных систем микроконтроллерного УПРАВЛЕНИЯ
Встраиваемые интеллектуальные системы управления (ВИСУ) имеют, как правило, иерархическую структуру, включающую исполнительный, тактический и стратегический уровни. Один из базовых математических аппаратов для встроенного программного обеспечения тактического и стратегического уровней ВИСУ - аппарат теории нечетких множеств [1]. При этом наиболее часто используемым классом аппаратных вы-
числительных средств для таких систем являются микроконтроллерные и микропроцессорные платформы.
С учетом сложности задач, решаемых на стратегическом и тактическом уровнях, и ограничениями на вычислительную производительность аппаратных платформ встраиваемых систем, особое внимание при проектировании следует уделять эффективности вычислений (в смысле минимиза-