математическое моделирование в задачах управления и динамики
I оо оо I
Парамонов В. В., Ружников Г. М., Федоров Р. К. Черкашин Е. А.
УДК 004.4
АВТОМАТИЗАЦИЯ РАЗРАБОТКИ КАРКАСА ИНФОРМАЦИОННОЙ СИСТЕМЫ
Введение. Жизненный цикл информационных систем (ИС) - это непрерывный процесс, начинающийся с принятия решения о необходимости разработки ИС и заканчивающийся выводом ИС из эксплуатации. Начальная стадия жизненного цикла ИС включает в себя все работы по созданию ИС в соответствии с предъявляемыми требованиями [1].
Выделяются два основных подхода создания информационных систем:
- компонентная технология разработки [2];
- визуальное представление модели проекта [3].
Примером первого подхода служит методология быстрой разработки приложений RAD (Rapid Application Development), состоящая в том, что ИС «строится» из готовых подпрограмм -библиотек, выполненных на достаточно высоком абстрактном уровне. Задача разработчика заключается в комбинировании и специализации модулей в зависимости от типа решаемой задачи. Представителями RAD являются такие системы разработки, как Microsoft Visual Studio, Borland Delphi, BP Win.
В случае визуального моделирования, проект ИС представляется в виде некоторой формальной модели. В качестве способа представления модели (ее формального описания), как правило, используется унифицированный язык моделирования - UML (Unified Modeling Language) [4]. Программный код ИС генерируется на основе её модели.
Вне зависимости от подхода к созданию, ИС обычно состоит из трех блоков (подсистем), образующих каркас:
• База данных (БД) - обеспечивает хранение данных ИС в определенном формате и доступ к ним.
• Приложение - программная модель предметной области. Оно обеспечивает корректное с точки зрения предметной области изменение информации в БД, проверяет используемые данные на непротиворечивость, обеспечивает непосредственное решение задач предметной области.
• Интерфейс пользователя - предоставляет информацию из БД в удобной форме, а так же позволяет управлять приложением.
В статье предлагается оригинальная технология автоматического синтеза каркаса ИС по её визуальной модели.
Технология автоматизации разработки и инструментальные средства. При эксплуатации ИС, практически всегда наступают моменты времени, когда требуется дополнить её новыми сценариями, сменить платформу функционирования, внести изменения в структуру базы данных. Это обосновывает целесообразность разработки некоторой открытой объектной модели и определения принципов ее наращивания, а также интеграции приложений, взаимодействующих с ИС.
В предлагаемом подходе создание ИС начинается с разработки её формальной модели. Модель описывает ИС на достаточно абстрактом уровне, который позволяет рассматривать создавать информационную систему как независящую от конкретных свойств программной платформы, на которой она будет реализована. Модель представляется в виде UML-диаграммы. На стадии формирования модели ИС UML-диаграмма является как средством формализованного описания системы, так и средством ее формального документирования - разработчик может видеть систему, представлять схему взаимодействия ее компонент.
Рассмотрим архитектуру (рис. 1) и схему работы генератора программного кода ИС по ее формализованному описанию. Генератор последовательно трансформирует исходную модель ИС в программный код. Методы трансформации основаны на логическом формализме представления знаний и шаблонов программного кода. Рассмотрим схему трансформации.
Разрабатываемая информационная система представляется в виде UML-модели. Для обработки модели генератором ее необходимо сохранить в обменном формате ХМ1 [5]. Этот файл поступает на вход ХМ1-транслятору, базирующемуся на стандартной библиотеке НЬхт!2 [6].
иркутским государственный университет путей сообщения
ХМ1-транслятор преобразует данные ХМ1-файла в объектную модель документа, удовлетворяющую требованиям структуры DOM-2 [7].
Рис. 1. Архитектура и схема работы генератора каркаса ИС
Объектная модель обрабатывается сценарием, написанным и исполняемым в среде Python. По мере обработки элементов объектной модели требований к ИС сценарий запускает интерпретатор Prolog для их обработки. Обработка осуществляется с целью выделения таких особенностей требований к ИС, которые позволяют сгенерировать реализующий их программный код. Генерация программного кода или его заготовки при отсутствии достаточных данных осуществляется сценарием.
Таким образом, синтез программного кода ИС основывается на требованиях к ИС при помощи логических правил, специфицирующих программно-аппаратную платформу.
Рассмотрим пример. На рис.2 приведена объектная модель фрагмента требований к структуре БД. Сгенерированный согласно этим требованиям SQL-запрос имеет следующий вид: Create Table Diagnosis ( Type int, Date DateTime, Confirm Boolean)
Рис. 2. DOM-представление таблицы БД
Исполнение этого запроса приведет к созданию таблицы базы данных (БД), структура которой удовлетворяет соответствующей части спецификации ИС.
Обработка объектной модели требований к структуре БД осуществляется следующим сценарием, написанным на языке Python: class SQLTranslator(Translator, Ru-lesMixing): #модуль генерирования SLQ-скрипта БД
def genClass(self, cls): answer = []
if cls in self.generated:
return answer for ,parent in
self.query('class parent',(cls,,#')): for _ in self.query
('generating_class', (parent,)): Self.extend(answer,
self.genClass(parent)) if cls in self.generated: return answer name=self.getName(cls) doc=cls.getDocumentation() if doc:
answer.append('/*\n%s\n*/' % doc) attribs = self.genSchema(cls) if not self.isEmpty(attribs):
answer.append("CREATE TABLE %s (" % name)
answer.append(attribs) answer.append(")%s;" %
self.getTableType(cls))
self.addFact("oodb_table('%s',
T CL ~ I \ II Q.
os) о
Сценарий обеспечивает обход дерева объектной модели требований к структуре БД ИС, запуск интерпретатора Prolog для каждого из требований и построение соответствующей части SQL-запроса.
Фрагмент базы знаний (БЗ), содержащей правила обработки требований к структуре БД ИС, приведен ниже:
generating attribute(Cls, [Attr]) :- % атрибут в %явном виде
g attribute(Cls, Attr). generating attribute(Cls, [Attr]) :-abstract parent(Cls, Parent), % унаследованный
% атрибут из абстрактного предка g attribute(Parent, Attr). %элемент диаграммы классов, g attribute(Cls, Attr) :- % атрибут класса Cls -
pim attr( , Cls, , , , Attr1), pim name(Attr1, Attr).
математическое моделирование в задачах управления и динамики ,
a parent(Cls, Parent):- % Parent %- абстрактный ''родитель1' Cls pim parent(Cls, Parent), pim stereotype(Parent, 'abstract').
Правила БЗ позволяют распознать особенности каждого из требований к БД ИС и указать сценарию на шаблон для построения SQL-запроса.
Таким образом, в приведенном примере в составе БД ИС создается таблица Diagnosis БД Patient, которая содержит 3 поля:
• Type -код диагноза, в соответствии с классификатором. Поле типа integer;
• Date - дата установки диагноза. Поле типа DateTime;
• Confirm - подтверждение диагноза. Поле типа Boolean.
Предлагаемая технология не всегда позволяет в полном объеме создать код ИС готовый к применению. В частности, код SQL-запросов создается в полном объеме и соответствует требованиям программно-аппаратной платформы. Вмешательство программиста-разработчика необходимо для заключительного редактирования программного кода приложения и интерфейса. Это связано с тем, что в UML-нотации имеет место внешнее описание функций. Спецификацию и реализацию функций приложения посредством языка UML задавать не принято. Поэтому полноценно создается лишь сигнатура используемых в ИС функций. Относительно интерфейса - задать расположение и цвет управляющих элементов пользовательского интерфейса без использования визуальных методов весьма затруднительно. Поэтому разработчик уже в коде ИС должен скорректировать вид всех элементов пользовательского интерфейса.
Преимуществом данного подхода является смещение акцента от кодирования программного приложения к его проектированию. При этом большая часть кодирования замещается формальными преобразованиями модели. Представление модели ИС в виде диаграммы также является средством документации для разработчика и позволяет видеть структуру системы, схему взаимодействия составляющих ее компонент.
Это позволяет ослабить зависимость ИС от программных технологий ее реализации. При необходимости, возможно генерирование версии ИС для отличной программной платформы и, возможно, на других языках программирования. При этом нет необходимости полностью изменять программный код. Надо внести соответствующие изменения в модель и расширить БЗ данными о среде реализации.
Предлагаемая технология является одной из реализаций подхода MDA (Model Driven Architecture) [8], базирующийся на правилах логического вывода. Сам же MDA-подход предполагает отделение спецификации функций от их реализации на различных платформах. Обеспечиваются три основные цели MDA - переносимость, открытость к взаимодействию с другими системами, повторное использование.
Для генерации программного кода каркаса ИС были использованы следующие инструментальные средства:
• UML-редактор Poseidon. Использовался для составления модели ИС.
• XMI-транслятор, осуществляющий разбор XMI-документа и построение его объектной модели.
• ASCII-текстовый редактор (Seite) для редактирования синтезированного программного кода.
• Штатные трансляторы и компиляторы для выбранной программно-аппаратной платформы реализации.
Предлагаемая в статье технология применена для разработки ИС «Популяционный раковый регистр» в Иркутском областном онкологическом диспансере [9].
Доработка синтезированного программного кода, дальнейшее использование. Созданный с применением предлагаемой технологии программный код составляет порядка 40% от общего объема программного кода ИС. Запросы для создания баз данных синтезируются полностью. Сигнатура всех функций, а так же классы объектов ИС синтезируются на 90% и представляются в виде библиотек. Написание недостающего программного кода осуществляется программистом-разработчиком вручную. Общая схема разработки представлена на рис. 3
Рис. 3. Общая схема разработки и модификации ИС
иркутским государственный университет путей сообщения
В дальнейшем ИС допускает модификацию путем изменения ее модели. После изменения модели в автоматическом режиме синтезируется программный код каркаса. Поскольку данный код используется в виде набора программных библиотек изменения, дорабатывающие предыдущую модель, остаются актуальными. Для измененных компонентов, возможно, понадобится новая доработка.
Можно рассматривать данный подход к разработке достаточно удобным для оперативного внедрения как ИС в целом, так и вариантов ее модификации.
Заключение. В работе рассмотрена оригинальная методика реализации подхода к созданию информационных систем на основе архитектуры, управляемой моделированием (Model Driven Architecture, MDA). Каркас ИС синтезируется по формальному описанию, представленному в UML, под управлением формализованного представления свойств программной платформы, на которой реализуется ИС. Процедуры преобразования построены с использованием систем основанных на формализованных знаниях. Формальное описание модели ИС обрабатывается набором модулей анализа и генерирования программного кода, в результате чего порождается непротиворечивый программный код базовых подсистем ИС.
Работа выполнена при частичной поддержке РФФИ грант № 08-07-00163-а, 09-07-12017-офи_м, 08-07-98005-р_сибирь_а и президентской программы «Ведущие научные школы РФ» грант № НШ-1676.2008.1.
БИБЛИОГРАФИЯ
1. Парамонов В. В. Один из подходов к созданию информационных систем // Весщ Нацыяналь-най акадэмп навук Беларусь Сер. Фiзiка-Тэхшчных навук. 2006. № 5. С. 79-81.
2. Кулямин В. В. Технологии программирования. Компонентный подход. М. : Интернет-ун-т информ. технологий. ИНТУИТ.ру, 2006. 464 с.
3. Кознов Д. В. Основы визуального моделирования. М. : Интернет-ун-т информ. технологий. ИНТУИТ.ру, 2008. 246 с.
4. Буч Г., Рамбо Дж., Джекобсон А. UML. Руководство пользователя. М. : ДМК, 2001. 423 с.
5. Hongji Y. Software evolution with UML and XML / USA Hershey, PA. Idea Group Pub., 2005. 405 p.
6. Reference Manual for libxml2 [Электронный ресурс]. URL : http://www.xmlsoft.org. (дата обращения : 01.09.2009).
7. Document Object Model (DOM) Level 2 Core Specification [Электронный ресурс]. URL : http://www.w3.org. (дата обращения : 17.08.2009).
8. Frankel D. Model Driven Architecture: Applying MDA to Enterprise Computing. USA Indianapolis, Indiana : Willey publishing Inc. 2003.258 p.
9. Популяционный раковый регистр Иркутского областного онкологического диспансера / сост. В. В. Парамонов // Сиб. онколог. журн. 2009. Прил. № 1. С. 153-154.