автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.12, диссертация на тему:Проектирование информационных систем в рамках объединенного объектно-реляционного подхода

кандидата технических наук
Добряк, Павел Вадимович
город
Екатеринбург
год
2007
специальность ВАК РФ
05.13.12
цена
450 рублей
Диссертация по информатике, вычислительной технике и управлению на тему «Проектирование информационных систем в рамках объединенного объектно-реляционного подхода»

Автореферат диссертации по теме "Проектирование информационных систем в рамках объединенного объектно-реляционного подхода"

На правах рукописи

Добряк Павел Вадимович

ООЗиьачаа

ПРОЕКТИРОВАНИЕ ИНФОРМАЦИОННЫХ СИСТЕМ В РАМКАХ ОБЪЕДИНЕННОГО ОБЪЕКТНО-РЕЛЯЦИОННОГО ПОДХОДА

Специальность 05.13.12. Системы автоматизации проектирования

АВТОРЕФЕРАТ

диссертации на соискание ученой степени кандидата технических наук

Екатеринбург, 2007.

003068459

Работа выполнена в ГОУ ВПО «Уральский государственный технический университет - УПИ»

Научный руководитель

Кандидат технических наук, доцент Калмыков Алексей Андреевич

Официальные оппоненты

Доктор технических наук, профессор Шориков Андрей Федорович

Кандидат технических наук, доцент Аксенов Константин Александрович

Ведущая организация

ФГУП «Научно-производственное объединение автоматики имени академика Н.А. Семихатова»

Защита состоится 27 апреля 2007 г. в 15 часов 00 минут в аудитории Р-217 на заседании диссертационного совета К 212.285.02 при ГОУ ВПО УГТУ-УПИ по адресу. 620002, г. Екатеринбург, ул. Мира, д. 19, УГТУ-УПИ.

С диссертацией можно ознакомиться в библиотеке УГТУ-УПИ.

Отзывы в двух экземплярах, заверенные печатью учреждения, просим выслать по адресу: 620002, г. Екатеринбург, ул. Мира, д. 19, ГОУ ВПО УГТУ-УПИ, Ученому секретарю.

Автореферат разослан 27 марта 2007 г. Ученый секретарь совета

К 212.285.02. к.т.н., доц. ^ // В.А.Морозова

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ Актуальность проблемы

В настоящее время происходит интенсивное развитие средств проектирования программного обеспечения. Количество языков программирования, систем управления базами данных (СУБД) и сред разработки составляет несколько тысяч. Они предлагают разработчикам программного обеспечения средства проектирования в рамках различных парадигм. Наиболее распространена в языках общего назначения объектно-ориентированная парадигма (ООП). Параллельно объектно-ориентированным технологиям интенсивно развиваются СУБД. Современные информационные системы используют совместно объектно-ориентированные технологии и СУБД, при этом элементы ООП проникают в СУБД и наоборот, то есть происходит конвергенция парадигм. Рассмотрим основные особенности современных информационных систем (ИС), пути развития технологий и их основные проблемы.

Можно выделить следующие основные особенности современных ИС:

• Большие объемы постоянно хранимых данных.

• Сложность алгоритмов обработки и манипулирования данными.

• Распределенность систем.

• Многопользовательский режим функционирования и разработки, персо-нализация представлений данных.

• Эволюция структуры ИС в процессе функционирования.

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

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

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

• В объектно-ориентированные языки добавляется перманентность объектов - объектно-ориентированные БД (ООБД), в рамках теоретических исследований создаются объектные алгебры.

• В реляционные БД добавляются отношения наследования и агрегирования атрибутов (объектно-реляционные БД).

• Создаются CASE-средства проектирования, объединяющие разработку БД и приложений. ООП часто рассматривается как верхний уровень проектирования ИС (логический), а схема в БД - как физический уровень.

Вместе с тем, существует ряд проблем и нерешенных задач:

• Технологии базируются на старой ООП, в которой в эксплицитном виде отсутствует поддержка многих особенностей современных ИС: распределенности, динамизма структуры, моделей данных интеллектуальных ИС.

• Наиболее распространенные языки программирования (семейства С++) не реализуют некоторые возможности (метаклассы, паттерны) из таких перспективных языков, как Smalltalk и Beta, которые могут быть полезными при реализации ИС.

• Существует фиксированная граница между объектно-ориентированным программированием и анализом и проектированием. Модели данных в анализе и проектировании являются слишком обобщенными и не содержат многих элементов объектно-ориентированных языков программирования или БД. Развитие технологий программирования опережает теорию проектирования. Добавление в CASE технологии специфических особенностей языков программирования, относящихся к структуре данных, позволит преодолеть существующее разделение между объектно-ориентированным программированием и анализом и проектированием и приведет к созданию более универсальных технологий.

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

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

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

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

реляционных БД означает проникновение объектно-ориентированного подхода в БД, однако технологии ООП могут позаимствовать из наиболее развитых БД модели данных, что приведет к созданию более универсальной технологии, способной разрешить кризис современных СУБД, связанный с хранением и обработкой данных сложных типов. Решение этих проблем при разработке обобщенной модели данных является актуальной задачей в области анализа и проектирования ИС.

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

• Модели объектно-ориентированного программирования и проектирования;

• Информационные модели БД: реляционные и объектно-ориентированные;

• Модели распределенных приложений;

• Модели с эволюцией структуры;

• Информационные модели искусственного интеллекта: семантические и фреймовые.

В рамках диссертационного исследования были решены следующие задачи:

1. Объединение парадигм и формирование единого понятийного аппарата для разработки обобщенной модели данных. Разработка методики анализа и проектирования ИС в рамках объединенной парадигмы.

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

3. Создание математического аппарата для работы со структурными элементами ИС.

4. Разработка численных оценок сложности структур ИС.

5. Разработка средства проектирования ИС в соответствии с предложенными решениями. Обеспечение совместимости с ведущими технологиями проектирования и программирования.

Область исследования Область исследования диссертационной работы - разработка средства проектирования ИС для автоматизации этапа логического проектирования, создание модели ИС и методологии проектирования в рамках объединенной объектно-реляционной парадигмы. Объектом исследования являются объектно-ориентированные средства и методы анализа и проектирования общего назначения в рамках моделей объектно-ориентированных технологий, реляционных, семантических и гибридных БД. Предметом исследования являются пути обобщения моделей данных технологий объекта исследований, построение оценок сложности структур, разработка программного обеспечения для автоматизации проектирования ИС.

Методика исследования

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

Научная новизна

Приведенные в диссертации результаты являются новыми. В диссертации получены следующие научные результаты:

1. Объединенная парадигма и соответствующая ей технология, позволяющая проектировать ИС в виде открытых динамически изменяющихся сетей паттернов внутри сетей с дуализмом сущностей и связей. Парадигма включает в себя следующие основные новые аспекты:

1.1. Изменение понятия «объект»

• Формирование объекта за счет действия различных механизмов (Отход от положения «объект = экземпляр класса»);

• Расширенный состав объекта (свойства, методы, триггеры, события, внешние свойства, свойства окружения, бизнес-правила, роли объектов, для которых данный объект выступает как связь);

• Расширенное описание атрибутов;

1.2. Переход от понятия «класс» к «паттернам», связи общего вида.

• Именованные п-арные связи с ролями и возможностью наследования и агрегации;

• Единое описание сущностей, связей, функций - обобщенное понятие «паттерн»;

• Многоуровневое метаклассирование.

1.4. Взаимоотношение ООП со структурой программы.

• Концепция элементов программного кода как объектов и транзакций;

• Динамизм структуры программы.

1.5. Структурные ограничения - развитие виртуального наследования. 1 .б.Методика анализа и проектирования ИС в виде сети паттернов.

2. Операции над сложными объектами автоматизации - паттернами, сочетающими свойства сущностей, связей и функций.

3. Численные оценки сложности структуры ИС.

4. Алгоритм преобразования структур данных, разработанных в соответствии с объединенной парадигмой, в объектный код С++.

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

Практическая и теоретическая ценность

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

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

Практическое значение имеет созданное средство автоматизированного проектирования «Patterns», поддерживающее графическую разработку структуры ИС, автоматическую генерацию кода в текстовой нотации и кода на языке С++ и оценок сложности структуры ИС, позволяющее проектировать и анализировать приложения и базы данных в рамках единого подхода. Графическая диаграмма модифицирует диаграмму классов UML, а текстовая нотация вводит дополнительные элементы в язык С++. Таким образом, сохраняется преемственность с лидирующими технологиями в области проектирования программного обеспечения.

Результаты работы внедрены и используются в Свердловском предприятии вычислительной техники и информатики (средство проектирования Patterns используется при анализе и проектировании программных комплексов) и ГОУ ВПО "Уральский государственный технический университет" (учебный процесс специальности «Информационные системы в технике и технологиях» по дисциплинам «Управление данными» и «Проектирование информационных систем», г/б НИР 3334 «Создание CASE-средств проектирования распределенных информационных систем»).

На защиту выносятся:

1. Объединенная парадигма, включающая элементы ООП, реляционных баз данных, семантических сетей и фреймов. Методика проектирования ИС

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

3. Операции над паттернами для возможности явной реализации объектных алгебр при проектировании ИС.

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

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

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

III, IV, V отчетных конференциях молодых ученых УГТУ-УПИ (Екатеринбург, 2002, 2003), межрегиональных форумах «Приборостроение» (Екатеринбург, 2002, 2003), всероссийской научно-технической конференции «Радиовысото-метрия-2004» (Каменск-Уральский, 2004), конференции, посвященной 50-летию радиотехнического образования на Урале, международной научно-практической конференции «Связь-пром 2005».

По теме диссертации опубликовано 10 научных работ, из них 6 статей, в том числе 1 - в издании, рекомендуемом ВАК.

Структура и объем работы. Диссертация состоит из введения, пяти глав, заключения, трех приложений, библиографии и оглавления; всего 220 стр. (основной текст - 173 стр.), 73 рисунка, 24 таблицы, 71 листинг программ. Список литературы включает 150 наименований.

КРАТКОЕ СОДЕРЖАНИЕ ДИССЕРТАЦИИ Введение

Приводится краткий обзор объектов исследования, обосновывается актуальность темы, формулируются цели работы, характеризуется научная новизна и ценность работы.

Первая глава

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

В объектно-ориентированном проектировании предлагается перейти от представления предметной области в виде иерархии классов к представлению в виде ассоциаций (в том числе, заменить иерархическое наследование на сетевое) и оперировать объектами, композиционными объектами (объектами, соединенными данным объектом в качестве связи), расширенными объектами

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

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

Исследуется возможность встраивания в ООП прочих элементов БД, интеллектуальных ИС и других элементов: семантических сетей, структуры атрибутов в виде списка фацетов, как во фреймовой модели (значение, значение по умолчанию, триггеры), декларативной семантики для бизнес-правил; инкапсуляции объектом управления; значений по умолчанию как свойств классов, программных описаний как объектов.

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

Вторая глава

В данной главе новые положения объединенной парадигмы формулируются в целом и классифицируются по основным принципам (как сформулированным в классической парадигме - абстракции, инкапсуляции, полиморфизма, так и новым - реализации полноты парадигмы, открытости другим парадигмам и динамизма структуры).

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

Авторский подход к проектированию ИС включает смешанные механизмы формирования объектов (выборки select, наследование, агрегацию, экземп-ляризацию от нескольких классов, прототипизацию, выборку по связи) и отход от принципа «объект - экземпляр одного класса или класс», что изменяет понимание понятия объекта (вводится понятие «паттерн»).

Структуру ИС в рамках подхода можно охарактеризовать как «открытые динамические сети паттернов внутри сетей с дуализмом сущностей и связей».

Такая структура обладает следующими свойствами: структура динамически изменяется с участием или без участия пользователей и программистов; структура представляет собой сущности, соединенные связями; связи могут также быть сущностями (дуализм сущностей и связей), вводится обобщающее понятие «паттерн»; объявления классов могут стоять в любом месте программы, что делает структуру динамичной и формирует «сети внутри сетей».

Рассмотрены особенности анализа и проектирования ИС в соответствии с объединенной парадигмой (подвижная граница между проектированием и программированием, отсутствие необходимости четкого разграничения на классы и объекты из-за многоуровневого метаклассирования). Модифицирован метод Аббота для представления осложненных частей предложения концептуального задания в сеть паттернов разного типа. В таблице 1 приводятся элементы объединенной парадигмы, знаком «+» отмечено их значение для разных типов ИС, цифрой в скобках - номер комментария после таблицы. В комментарии описывается польза для проектирования современных ИС.

Таблица 1. Польза элементов объединенной парадигмы.

N. Типы ИС Элементы N. объединенной N. парадигмы N. Обработка информации (Приложения) Хранение информации (СУБД) 1 Распределенная система Интеллектуальная система Система с эволюцией структуры Многопользовательская система Технология анализа и проектирования (CASE) Гибридные системы с поддержкой других парадигм

1. Паттерны +(4) +(4) +(2) +(D

2. Модель связи +(4) +(2) +(1)

3 Различные способы построения объектов +(5) +(5) +(1)

4. Элементы программы как объекты и транзакции +(6) +(D +(6)

5 Атрибуты распределенных приложений +(7) +(1)

6. Фацеты +(2) +(D

7. Многоуровневое метаклас-сирование +(8) +(D

8. Динамизм структуры +(2) +(9)

9 Структурные ограничения +(Ю) +(Ю) +(D

10. Расширенная инкапсуляция +(3) +(3) +(3) +(D

1. Все элементы объединенной парадигмы кроме динамизма структуры в явном виде включены в графические диаграммы. В рамках классической парадигмы в диаграмму классов включены только элементы 1 и 2. Таким

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

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

3. Расширенная инкапсуляция позволяет создавать объекты со сложным поведением.

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

5. Различные способы формирования объекта позволяют создавать паттерны как с помощью вычислений, так и выборок из БД. Объект может принадлежать сразу нескольким классам. Такой подход разрешает создавать объекты - симбиозы или использоваться в нечетких технологиях, получающих в настоящее время широкое распространение.

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

7. Объединенной парадигмой предусмотрена явная поддержка распределенных приложений, что является необходимым для разработки и анализа корпоративных ИС, финансовых сетей и систем сбора и обработки информации в промышленности.

8. Многоуровневое метаклассирование отчасти решает сложности с описанием людей в БД.

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

10. Структурные ограничения являются встроенными механизмами защиты, объединяющими бизнес-правила из БД и исключения из программирова-

ния. Эти ограничения описывают реакцию системы в различных внештатных ситуациях.

Таким образом, элементы объединенной парадигмы полезны при проектировании ИС различного типа.

Третья глава

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

Глава включает в себя следующие элементы:

1. абстрактные примеры диаграммы паттернов в графическом виде (модификация диаграмм классов UML). Пример графической диаграммы см. на рисунке 1;

2. примеры паттернов в текстовом виде (на языке, в основе которого лежит С++, с добавлениями из С#, Java, расширениями ODMG и другими элементами, если аналогов им не нашлось в рассмотренных языках). В примерах также приведен код использования заданных структур, чтобы продемонстрировать возможности технологии. Комментарий в примерах дается к конструкциям, отличающимся от конструкций стандартных языков. Пример паттерна - класса функции и связи см. на листинге 1;

3. модифицированные нормальные формы Бэкуса для определений паттернов.

Листинг 1. Паттерн - класс, функция и связь.

class program {

class classl{}; class class2{}:

class pattern 1 {

public, int property 1: in int varl; outint var2: var2 = 2 * varl. connect classl cl[l...],

class2 c2[l...]; };

pattern 1 instancel: int var3; int var4.

patternl(var3, var4): }•

вложенные паттерны classAI

свойства A1 a1 A2 a2 A3 зЗ

class Проекция свойства

э2 Connect

Результат [1] inherit Операнд [1 п]

— R1 —1

Рисунок 1. Пример графической диаграммы

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

Приводится формальное определение введенного в первой главе понятия «паттерн» в модифицированной нормальной форме Бекуса. Фрагмент определения см. на листинге 2.

Листинг 2. Фрагмент определения паттерна в модифицированной НФБ. <паттерн> :.= [<метаклассьг> | class] <имя паттерна> [= <выборка> | <математическое выражений] [{<вложенные паттерны> <методы, свойства, входные и выходные переменные. триггеры> <связь. ограничения> <алгоритмический блок>)] | <имя патгерна> : <структурный оператор>

Разработанные графические диаграммы и текстовые нотации предназначены для описания программ на этапе логического проектирования.

Четвертая глава

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

В параграфе 4.1. вводятся операции над паттернами. Рассматриваются ограничения для операндов. За основу взяты операции из реляционной алгебры.

1. Над паттернами вводятся основные операции: объединение, разность, декартово произведение, селекция и проекция. Дополнительные операции: пересечение, деление, соединения формируются из основных операций аналогично реляционной алгебре. Свойства операций такие же, как и в реляционной алгебре.

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

3. Для экземпляризируемой части паттерна (а для селекции и проекции и статической части) основные операции производятся как в реляционной алгебре.

4. Для операций селекции, проекции и декартова произведения операндами могут быть любые паттерны (если есть перегрузка операций для статической части).

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

6. Для объединения и разности не обязательно совпадение сигнатур операндов. Результат экземпляризируемой части формируется следующими путями:

• При совпадении имен атрибутов, их паттернов - классов и модификаторов атрибут операндов становится атрибутом результата.

• Если у операнда присутствует атрибут с именем, которого нет у другого операнда, то при присоединении второго паттерна значение этого атрибута устанавливается по умолчанию.

• В случае атрибутов с одинаковыми именами, но являющихся экземплярами разных паттернов атрибут результата формируется в результате преобразования родительских паттернов (если в паттернах задана такая операция), иначе создается новый паттерн-класс результата, соединяющий паттерны-классы операндов по типу соединения union в С++.

• В случае если атрибуты операндов имеют одинаковые имена, но разные модификаторы, то модификатор атрибута результата выбирается по следующим правилам: при несовпадении in и out модификатор результата inout; если модификатор первого операнда in, out или inout, а второго -свойство или роль, то атрибут результата - свойство или роль соответственно. Если атрибут одного операнда - свойство, а другого - роль, то атрибут результата - роль.

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

В случае разницы в ограничениях для паттерна результата выбирается менее строгое ограничение.

Предложенные операции обладают следующими преимуществами по сравнению с операциями из объектных алгебр:

• Операндами являются паттерны, то есть операции можно производить как над классами, так и над связями и функциями.

• Операции над паттернами включают операции над объектами, операторы которых заданы в классах.

• На операнды накладывается минимальное число ограничений. Операции применимы для реализации принципа динамизма структуры

программ, показывается связь между паттерном-результатом и паттернами -операндами.

Таким образом, операции над паттернами являются теоретическим основанием для добавления декларативных SQL и QBE-подобных языков запросов и математических операций над экземпляризируемыми паттернами в объединенную парадигму.

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

- Ч*сло адм ед

-Чкло свойств у адм ед

- Ч1Сло связанных адм ед

5 10

Число элементов

Рисунок 2. Сложность паттерна «административная единица»

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

W =

CONNECT,, I log, ^(Pstn/ctjfoumj, где

CONNECT - матрица связей между паттернами, Pstruct, ~ структурная сложность i-ro паттерна, учитывающая сложность формирования паттерна, кол-во атрибутов, операндов, структурных ограничений, элементов распределенных систем, внутренних паттернов, за исключением связей, Np - число паттернов без повторений.

Приводится мера сложности открытых распределенных систем на основе сходящихся рядов:

/="е ы

М- максимальная степень соседства,

IVj, - сложность i-ro паттерна в группе паттернов с показателем соседства],

/V, - количество паттернов с показателем соседства j.

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

Пятая глава

В данной главе рассматривается средство проектирования ИС "Patterns", реализующее идеи предложенного подхода (форму создания нового паттерна см. на рисунке 3). Приводится описание программы, примеры реализации стандартных элементов С++ и особые структуры, выходящие за рамки традицион-

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

г? Trigs«

jnarnt

Р ¡nuance Г Class f_ Fwrini-a Г Re&k&OT

W Variafiie Г irjput C" oiipui in. at

. lequest t. hurt

<~ Ша:е Г iflxfate

Г all« Г tfeiete

№ do Г [Aid

С change structure

к Attribute

priy&e intirrt^:

Г protected С external

iT pubfic

GV.

Structure

Stock

r It

r Else if

r Ete

r For

r WWe

<~ Sets«

r From

с Whete

Г Having

\

Рисунок 3. Форма создания нового паттерна

Средство ''Patterns" является исследовательским прототипом графического средства а над и за и проектирования объектно-ориентире ванных систем 1з соответствии с объединенной парадигмой. Программа поддерживает следующие возможности: графическую разработку ИС; вычисление структурной сложности программ во время проектирования; автоматическую генерацию кода текстовой нотациН(! автоматическое преобразование графических диаграмм в код на языке С++; вычисление характеристик кодов текстовой нотации и С++ (длины и числа строк кода, количества элементов программы С++ и паттернов текстовой нотации).

Автоматический транслятор графических диаграмм в код С++ в данной версии программы имеет следующие ограничения: не производится перевод фрагментов кода SQL, фрагментов кода, содержащего операторы динамизма структуры и структурные ограничения, не осуществляется проверка правильности написания формул и проверка наследования (циклическое наследование требует правки кола вручную), триггеры преобразуются в методы, элементы распределенных приложений - в свойства и методы; необходимо кодирование вручную для преобразования кода в соответствии со стандартом CORBA или ActiveX. Схемы основных функций транслятора приведены на рисунках 4. 5.

В главе приведены два примера: паттерн «административная единица» и абстрактный пример, реализующий большое число особых ситуаций, представление которых в стандартной ООП затруднительно. Показывается, что предложенная текстовая нотация имеет преимущества по сравнению с кодом С++. Характеристики кодов приведены в таблице 2, Текстовая нотация экономичнее кода С++ по длине и числу строк кода и количеству сущностей, необходимых для представления предметной области. Сокращение числа сущностей (до 44%), достигаемое за счет единого графического представления паттерна, соответствующего композиции классов С++, упрощает проектирование структуры класса, а значит, сокращает время проектирования.

Таблица 2. Сравнение кода С++ и текстовой нотации

----^примеры параметры"" —^ "Административная единица" Абстрактный пример

текст нотация С++ Экономия, % текст нотация С++ Экономия, %

Сущности 26 47 44 10 24 58

Число строк кода 94 106 11 41 63 34

Длина кода 1394 1437 2 558 919 39

кода классов и функций Заключение

В заключении сформулированы основные научные и практические результаты, описаны направления дальнейших научных исследований. 1. В диссертации исследованы средства анализа и проектирования ИС в рамках объектно-ориентированных технологий, реляционных и объектно-ориентированных БД и интеллектуальных технологий с точки зрения особенностей современных ИС, сформулирована объединенная объектно-реляционная парадигма. Разработана методика анализа и проектирования как модификация метода Аббота для сложных объектов - паттернов. Решается актуальная проблема СУБД по проектированию более универсальной модели данных, чем существующие. Предложено перейти от проектирования ИС в виде реляционных отношений, классов и объектов к проектированию в виде паттернов. Сформи-

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

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

3. Предложены операции над паттернами, которые являются теоретическим основанием для построения БОЬ-подобного декларативного языка, реализации принципа взаимодействия парадигм, предусматривающего математическую надстройку над ООП. Рассмотрен способ включения операций в графические диаграммы, то есть предлагается представлять операции на этапе проектирования ИС.

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

5. Разработано средство проектирования ИС в рамках объединенной парадигмы, позволяющее в графическом виде проектировать и анализировать ИС, генерировать код в текстовой нотации и код С++ (разработан алгоритм преобразования структуры паттернов в объектно-ориентированную структуру С++, таким образом обеспечена совместимость с ведущими технологиями). На примерах показано, что текстовая нотация экономичнее, чем код С++ по длине строк и размеру кода и количеству сущностей, что позволяет упростить проектирование структуры классов, а значит, сократить время проектирования.

Таким образом, в диссертации обобщены объектно-ориентированная и реляционная парадигмы проектирования ИС: сформулированы принципы объединенной парадигмы; проанализирован метод проектирования, предложены инструменты проектирования - графические диаграммы и текстовые нотации;

представлен вид ИС, спроектированной в соответствии с объединенной парадигмой; предложены численные оценки сложности таких систем и операции над их структурными элементами. Идеи диссертации реализованы в средстве проектирования ИС «Patterns», показаны преимущества проектирования ЙС в соответствии с объединенной парадигмой.

ПУБЛИКАЦИИ АВТОРА ПО ТЕМЕ ДИССЕРТАЦИИ

1. Добряк П.В., Калмыков A.A. Альтернативный подход по организации структур данных в объектно-ориентированных языках. Практика приборостроения №4[9], 2004. - с. 76 - 79.

2. Добряк П.В., Калмыков A.A. Объектно-ориентированные технологии в интеллектуальных информационных системах. Сборник научных трудов международной научно-практической конференции «Связь-пром 2005». Екатеринбург, 2005. - с. 153 - 157.

3. Добряк П.В., Калмыков A.A. Объектно-ориентированное программирование распределенных приложений. Вестник УГТУ-УПИ №20(50), Екатеринбург, 2004. - С. 175 - 177.

4. Добряк П.В., Калмыков A.A. Некоторые полезные аналогии между элементами объектно-ориентированного программирования и реляционных баз данных. Сборник трудов Первой всероссийской научно-технической конференции «Радиовысотометрия-2004». Каменск-Уральский, 2004. -С. 340-345.

5. Добряк П.В., Калмыков A.A. Применение диаграмм «сущность-связь» при проектировании программного обеспечения для технических систем. Практика приборостроения №2[7], Екатеринбург, 2004. - С. 33 - 36.

6. Добряк П.В., Калмыков A.A. Развитие диаграмм «сущность-связь» при объектно-ориентированном программировании. - Сборник статей научных трудов V отчетной конференции молодых ученых ГОУ ВПО УГТУ-УПИ. Екатеринбург, 2004. - С. 190 - 191.

7. Добряк П.В., Калмыков A.A. Объектно-ориентированная парадигма языков программирования и информационные модели БД. - Сборник статей научных трудов IV отчетной конференции молодых ученых ГОУ ВПО УГТУ-УПИ. Екатеринбург, 2003.- С. 144 - 145.

8. Добряк П.В., Калмыков A.A. Конвергенция объектно-ориентированной парадигмы языков программирования и информационных моделей баз данных. - Сборник статей научных трудов III отчетной конференции молодых ученых ГОУ ВПО УГТУ-УПИ. Екатеринбург, 2002.

9. Добряк П.В. Исследование принципов объектно-ориентированного программирования. - Вестник №4 УГТУ-УПИ «Информационные технологии, системы управления и электроника». Екатеринбург, 1997 - С. 8.

Публикации в рецензируемом издании, рекомендуемом ВАК:

10. Добряк П.В. Объектно-ориентированные технологии в интеллектуальных информационных системах. Вестник УГТУ-УПИ №17(69), Екатеринбург, 2005. - с. 100 - 105.

Подписано в печать Плоская печать

Ризография НИЧ ГОУ ВПО УГТУ-УПИ 620002, г. Екатеринбург, ул. Мира 19

Формат 60 х 84 1 /16 Бумага писчая

Тираж 100 Заказ № 29

Оглавление автор диссертации — кандидата технических наук Добряк, Павел Вадимович

ВВЕДЕНИЕ.

Исторический обзор.

Актуальность темы исследования.

Цель и задачи диссертационной работы.

Область исследования.

Методика исследования.

Научная новизна.

Практическая и теоретическая ценность, внедрение.

Результаты, выносимые на защиту, авторский вклад.

Достоверность и обоснованность работы.

Апробация результатов работы, публикации.

Структура диссертации.

1 АНАЛИЗ ПАРАДИГМ.

1.1 Анализ технологий и классической объектно-ориентированной парадигмы.

1.1.1 CASE-технологии и графические нотации.

1.1.2 Среды исполнения.

1.1.3 Технологии программирования.

1.1.4 Технологии управления данными.

1.1.5 Объектно-ориентированные и интеллектуальные базы данных.

1.1.6 Языки запросов.

1.1.7 Теоретические препятствия в развитии объектно-ориентированных технологий.

1.1.8 Предшественники объединенной парадигмы.

Выводы.

1.2 Модели данных.

1.2.1 Диаграмма «Сущность-связь» Чена.

1.2.2 Связи в объектно-ориентированных базах данных.

1.2.3 ER-диаграммы для представления объектно-ориентированных связей.

1.2.4 Модели данных в унифицированном языке моделирования (UML).

1.2.5 Объектно-ориентированные языки программирования.

1.2.6 Модель RM/T.

1.2.7 Множественное представление.

Выводы.

1.3 Объектно-ориентированное программирование и базы данных.

1.3.1 Аналогии между элементами баз данных и объектно-ориентированного программирования.

1.3.2 Триггеры и события.

1.3.3 Наследование, агрегация и реляционные отношения.

1.3.4 Элементы СУБД, отсутствующие в объектно-ориентированном программировании.

Выводы.

1.4 Распределенные информационные системы.

1.5 Системы с эволюцией структуры.

1.5.1 Исторический обзор.

1.5.2 Элементы объектно-ориентированного программирования.

1.5.3 Динамизм баз данных.

1.5.4 Расширение объектно-ориентированной парадигмы принципом динамизма

Выводы.

1.6 Интеллектуальные информационные системы.

1.6.1 Технологии управления данными и программирования.

1.6.2 Объектно-ориентированный подход и парадигмы искусственного интеллекта.

1.6.3 Семантические сети.

1.6.4 Язык интеллектуальных запросов.

1.6.5 Распределенные интеллектуальные системы, мобильные и интеллектуальные агенты.

1.6.6 Эволюция структуры программы.

1.6.7 Нечеткие технологии.

Выводы.

Выводы.

2 ОБЪЕДИНЕННАЯ ПАРАДИГМА.

2.1 Общие сведения об объединенной парадигме.

2.2 Взаимоотношения с другими парадигмами.

2.2.1 ООП как надстройка.

2.2.2 Другие парадигмы как надстройки над ООП.

2.2.3 Элементы, реализующие другие парадигмы как объекты.

2.3 Принцип реализации полноты парадигмы.

2.3.1 Главные элементы.

2.3.2 Обязательное наследование и метаклассирование.

2.3.3 Полная реализация концепции "класс-это тоже объект".

2.3.4 Дуализм классов и экземпляров классов.

2.3.5 Обязательная агрегация.

2.4 Динамизм структуры.

2.5 Абстракция и инкапсуляция.

2.5.1 Предпосылки введения понятия «паттерн».

2.5.2 Определение паттерна и его использование.

2.5.3 Расширенные объекты.

2.5.4 Расширенная модель атрибута.

2.6 Полиморфизм.

2.6.1 Указатели (ссылки) на паттерны.

2.6.2 Дуализм объектов и связей.

2.6.3 Полиморфизм представлений.

2.6.4 Полиморфизм использования.

2.6.5 Модель связи.

2.6.6 Значения по умолчанию как свойства класса.

2.7 Новая модель информационной системы, анализ и проектирование информационных систем.

2.7.1 Описание модели.

2.7.2 Примеры из современных предметных областей.

2.7.3 Анализ и проектирование в соответствии с объединенной парадигмой.

2.7.4 Польза элементов объединенной парадигмы.

Выводы.

3 ГРАФИЧЕСКАЯ И ТЕКСТОВАЯ НОТАЦИЯ.

3.1 Принципы построения нотаций.

3.2 Диаграммы паттернов.

3.2.1 Вложенные паттерны.

3.2.2 Связи между паттернами.

3.2.3 Связи как интерфейсы.

3.2.4 Ограничения на количество экземпляров.

3.2.5 Указатели на паттерн для реализации параметрического полиморфизма.

3.2.6 Паттерны-функции.

3.2.7 Триггеры.

3.2.8 Принадлежность объекта нескольким классам.11 ]

3.3 Дополнительные элементы текстовой нотации.

3.3.1 Автоэкземпляризация.1 и

3.3.2 Параметризованные классы как паттерны.

3.3.3 Расширенные объекты.

3.3.4 Архитектура «Элементы программы как объекты».

3.3.5 Транзакции

3.3.6 Динамизм структуры паттерна.

3.3.7 Полиморфизм использования объектов.

3.4 НФБ Паттерна.

Выводы.

4 МАТЕМАТИЧЕСКИЕ ОСНОВЫ ТЕХНОЛОГИИ.

4.1 Операции над паттернами.

4.1.1 Принципы построения операций.

4.1.2 Описание операций.

Выводы.

4.2 Анализ сложности систем.

4.2.1 Виды оценок качества ПО.

4.2.2 Элементарные характеристики паттернов.

3.2.3 Составные характеристики паттернов.

4.2.4 Предельные и средние характеристики паттернов.

4.2.5 Обобщенные характеристики.

4.2.6 Характеристики сложности структуры на основе сходящихся рядов.

Выводы.

Выводы.

5 ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ И АЛГОРИТМ ПРЕОБРАЗОВАНИЯ ПАТТЕРНОВ В ОБЪЕКТНУЮ СТРУКТУРУ.

5.1 Описание программы «Patterns».

5.2 Руководство пользователя.

5.3 Разработка стандартных С++ программ.

5.3.1 Класс со свойствами.

5.3.2 Функции.

5.3.3 Наследование.

5.3.4. Структуры.

5.4 Особые случаи.

5.4.1 Многоуровневая экземпляризация.

5.4.2 Принадлежность объекта нескольким классам.

5.4.3 Взаимное наследование.

5.4.4 Сложная связь.

5.4.5 Паттерн - класс, функция и связь.

5.4.6 Класс - свойство.

5.4.7 Класс внутри структурного блока.

5.5 Примеры.

5.5.1 Большой абстрактный пример.

5.5.2 Пример паттерна «административная единица».

5.5.3 Сравнение текстовой нотации и кода С++.

5.6 Алгоритм преобразования структуры Patterns в С++.

Выводы.

Введение 2007 год, диссертация по информатике, вычислительной технике и управлению, Добряк, Павел Вадимович

Концептуальное описание предметной области.186

Логическое проектирование ИС.187

Реляционная модель.187

Объектно-ориентированная модель.189

Модель по объединенной парадигме.189

Элементы объединенной парадигмы этапа выполнения.191

Запросы.191

Алгебраические операции.192

Открытость и динамизм структуры.193

Оценки сложности системы.194

Заключение.195

ПРИЛОЖЕНИЕ 3. ПАТТЕРН «ЧЕЛОВЕК».196

БИБЛИОГРАФИЧЕСКИЙ СПИСОК.202

Список использованных источников.202

История технологий и прогнозы.202

Концептуальные основы технологий.203

Общие сведения по объектно-ориентированному подходу.204

Технологии программирования.204

Технологии проектирования.205

Модели данных.206

СУБД.207

Хранилища, OLAP.210

СУБД, запросы, транзакции.210

Распределенные и параллельные системы.211

Источники для приложения 2.212

Список публикаций автора.212

СПИСОК СОКРАЩЕНИЙ.213

СПИСОК ИЛЛЮСТРАЦИЙ.213

СПИСОК ТАБЛИЦ.216

СПИСОК ЛИСТИНГОВ.216

АЛФАВИТНЫЙ УКАЗАТЕЛЬ.219

ВВЕДЕНИЕ Исторический обзор

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

В объектно-ориентированных языках организация данных построена на основе классов объектов с различными видами наследования. Такая модель данных напоминает модифицированную иерархическую структуру и является удобной для понимания, хотя и не соответствует современным требованиям к организации данных. В базах данных (БД) применяются другие парадигмы, подходящие для хранения структурированных множеств данных [96].

Рассмотрим процесс взаимодействия и сближения средств программирования и баз данных. Условно его можно разделить на четыре этапа.

Первый этап. Параллельное существование взаимодействующих технологий. В технологиях программирования сменяют или надстраивают друг друга следующие парадигмы:

1. Программирование в машинных кодах и ассемблерах.

2. Структурное программирование.

3. Процедурное программирование.

4. Объектно-ориентированное программирование.

В СУБД сменяют и дополняют друг друга следующие подходы:

1. Иерархические БД

2. Сетевые БД

3. Реляционные БД

4. Семантические БД, БД «сущность-связь»

5. Объектно-реляционные и объектно-ориентированные БД.

6. Дедуктивные и интеллектуальные БД.

ИС с точки зрения разработки имеют два уровня: на верхнем уровне используется язык программирования общего назначения, который на уровне операций применяет язык работы с БД. При этом существует большое количество специализированных классов, описывающих в объектной парадигме составляющие СУБД. В настоящее время большая часть ИС строится по этому принципу.

Второй этап. Взаимное обогащение технологий. Реляционные базы данных дополняются хранимыми процедурами, третья версия языка запросов SQL наделает этот язык вычислительной полнотой, появляются объектно-реляционные и объектно-ориентированные БД (об «объектности» стандарта SQL3 см. [102]), в которых реляционные отношения дополняются отношениями наследования и агрегацией атрибутов. На данном этапе начинает свою деятельность ODMG - рабочая группа по разработке средств управления объектными данными, разработавшей ряд стандартов, в том числе языки описания интерфейсов и объектов IDL и ODL, не являющиеся полноценными языками программирования, а средством описания компонентов распределенных ИС, а также расширения объектно-ориентированных языков программирования С++, Java, Smalltalk средствами запросов, описаниями связей и типов связей.

Третий этап. Объектно-ориентированный анализ и проектирование. Его начало можно связать с разработкой диаграммы «Сущность-связь» Ченом, последующими модификациями диаграммы Рамбо, Бучем, диаграммой ОМТ и разработкой языка UML. Средства данного этапа относятся к типу CASE и предназначены для проектирования как программ, так и БД и аппаратной части ИС в рамках объектно-ориентированного описания, то есть эти средства не являются полноценными языками программирования.

Четвертый этап. Синтез технологий. Появление объектно-ориентированных БД (ООБД), языка объектных запросов OQL. На данном этапе создаются средства, позволяющие создавать программное обеспечение (ПО), сочетающее в себе свойства программ и БД. Появляются технологии, объединяющие базы данных и экспертные системы - дедуктивные и интеллектуальные БД.

Данное разделение на этапы условно, так как создатели сред разработки видят развитие своих продуктов в рамках того или иного этапа, то есть нельзя полностью разграничить этапы во времени. Кроме того, средства четвертого этапа не реализованы полностью, так как технологии БД продолжают развиваться; все более широкое применение находят системы OLAP и хранилища данных [120]. В настоящее время можно по-видимому говорить о синтезе ООП и реляционных OLTP, хотя универсальность ООП допускает его проникновение и в СУБД, построенные по другим принципам. Современное состояние СУБД, обзор и перспективы развития анализируются в работах [97, 10, 98].

Следует отметить следующих ученых и коллективы разработчиков, внесшие значительный вклад в развитие технологий; на их идеи в значительной степени опирается данная работа: Б. Страуструп (С++); О. Мадсен, Б. Мёллер-Педерсен, К Нига-ард - скандинавская школа (BETA); Э. Кодд (RM/T); М. Минский (фрейм-слот); Г. Буч, Д. Рамбо, И. Якобсон. - Rational Rose (UML); М. Аткинсон, Ф. Бансилон, Д. Де-Витт, К. Дитгрих, Д. Майер, С. Здоник (манифест ООБД); Консорциум ODMG; М. Стоунбрейкер и др. (объектно-реляционные СУБД); С. Кузнецов и др. - МАИ (алгебра); В.В. Прохоров - ИММ РАН (мультипарадигменный подход); Холстед (оценки сложности), Аббот (методика анализа и проектирования) и др. Российские ученые имеют большой опыт разработки сред программирования общего назначения (см. [7, 90], проводятся конференции, посвященные таким разработкам [105]).

Актуальность темы исследования

В настоящее время большая часть ИС являются ИС первого этапа, то есть представляют собой клиентские объектно-ориентированные надстройки над серверными БД, в которых таблицы соединены реляционными отношениями.

При появлении объектно-ориентированного программирования основной его задачей было представление программ в наиболее удобном для понимания программистов виде - иерархии классов объектов. Такое представление отчасти соответствовало способу человеческого мышления (абстракции, агрегации, систематизации), что привело к появлению объектно-ориентированного анализа и проектирования как способа изучения предметных областей для их дальнейшего описания с помощью CASE - средств (язык UML CASE средства Rational Rose). После разработки объектно-ориентированной парадигмы стиль программирования сильно изменился, однако программы продолжают описываться в виде иерархических объектных описаний, что порождает некоторую избыточность (один и тот же объект предметной области описывается объектами нескольких классов в программе). Назовем такой подход классическим объектным описанием. Кроме того, при проектировании с помощью С4Ж-средств появляется описание на языке UML. Разделение на объектно-ориентированный анализ и проектирование и объектно-ориентированное программирование представляется несколько искусственным, потому что после анализа и прои ектирования в благоприятном варианте следует этап программирования приложения. В настоящее время программы являются распределенными, что порождает проблемы с иерархическим наследованием. Программные модули могут быть использованы многократно различными приложениями, поэтому возникла необходимость в их описании на универсальных языках для того, чтобы с помощью этих описаний встраивать модули на двоичном уровне. Эти языки также являются объектно-ориентированными (языки IDL, ODL [94]). описание в UML описание /ч \

Рис. 1. Взаимоотношения между классами, описывающими объект в современных приложениях.

Таким образом, одному и тому же объекту или классу современных приложений соответствует до десятка классических объектных описаний в сферах проектирования, программирования, повторного использования, различных представлений (в том числе визуальных), описания данных (классы, соответствующие таблицам в СУБД) и описания для сохранения и передачи данных. Схематично отношения между классами приведены на Рис. 1. Системный подход к разработке ПО приведен в работе [40].

В настоящее время программное обеспечение разрабатывается с помощью различных сред разработки и функционирует, пользуясь сервисами операционных систем, виртуальных машин и серверов баз данных. В наиболее распространенном случае разработка ведется в среде, поддерживающей языки высокого уровня - объектно-ориентированные языки (Visual Studio, Delphi), данные хранятся в базах данных под управлением СУБД (SQL Server, Oracle), проектируемых с помощью CASE-средств (Рис. 2, технологии приведены для примера и их список не является исчерпывающим).

Среда разработки Язык Программное Механизм проектирования) программирования обеспечение выполнен

Рис. 2. Схема разработки и функционирования ПО

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

В схеме на Рис. 2 в явном виде присутствует разделение на программный код и данные. При этом программный код пишется с использованием объектно-ориентированных языков. Одним из принципов объектно-ориентированного программирования является объединение данных и кода, их обрабатывающего, в одном классе. На практике это приводит к существованию объектов-посредников в среде разработки для работы с БД.

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

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

Типичным примером ИС является трехуровневая система, состоящая из модулей, находящихся на сервере СУБД, сервере бизнес-логики и клиентского компьютера; спроектированная с помощью CASE-средства (Rational Rose - UML), состоящая из зарегистрированных компонентов, описанных на ODL (или IDL). На сервере СУБД база данных Oracle (или другая реляционная СУБД) со вставками Java или PL/SQL. На сервере второго уровня бизнес-логика реализуется в виде Enterpraise Java beans (или ActiveX Server). Взаимодействие с вспомогательными компонентами на других серверах осуществляется по протоколу CORBA (или dcom). Программы на сервере 2-го уровня реализованы в виде JSP или XML, клиент получает результаты в виде XML с апплетами Java.

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

Недостаток UML состоит в том, что диаграмма классов представляет собой наиболее общую диаграмму «сущность-связь», которая включает в себя наиболее абстрактные связи между классами и таблицами в БД. Различные другие аспекты ИС описываются другими диаграммами. Дальнейшее развитие UML может состоять в обогащении диаграммы классов различными особенностями классов современных языков программирования, что приблизит объектно-ориентированное проектирование к программированию и позволит существовать различным видам гибридных описаний.

В сфере разработки интеллектуальных информационных систем применяются семантические сети и фреймовые модели. Семантические сети являются обобщением диаграмм «сущность-связь», традиционно применяющихся при проектировании баз данных. Фреймовая модель является аналогом ООП в системах искусственного интеллекта и не имеет принципиальных отличий от ООП. Таким образом, конвергенция ООП, моделей «сущность-связь» и фреймовых моделей сделала бы более эффективной автоматизацию наукоемких предметных областей.

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

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

• Наиболее распространенные языки программирования (семейства С++: С# и Java, которые считаются будущим ООП [2]) не реализуют интересные идеи из таких перспективных языков, как Smalltalk и Beta, которые могут быть полезными при реализации ИС.

• Существует искусственное разделение между объектно-ориентированным программированием и анализом и проектированием. Иногда говорят даже об объектно-ориентированной инженерии [30]. Модели данных в анализе и проектировании являются слишком обобщенными и не содержат многих элементов объектно-ориентированных языков программирования или БД. Развитие технологий программирования опережает теорию проектирования [8]. В CASE-средствах проектирования учитываются только самые общие элементы различных технологий. Добавление в CASE технологии специфических особенностей языков программирования, относящихся к структуре данных, позволило бы преодолеть существующее разделение между объектно-ориентированным программированием и анализом и проектированием и привело к созданию более универсальных технологий программирования.

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

• В ООБД отсутствует общепринятая терминология и математическая обоснованность предложенных решений, «отсутствует какая-либо общая, повсеместно признанная точка зрения о том, что должны обеспечивать» ООБД [127]. Теоретические исследования в области ООБД особенно актуальны.

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

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

• В настоящее время происходит автоматизация различных предметных областей и становится все более необходимой разработка более универсальной модели данных, чем существующие. Существует разрыв между семантическими моделями организации данных, реляционной моделью и объектно-ориентированной. Обобщенная модель удовлетворяла бы наибольшему числу приложений. Появление объектно-ориентированных баз данных и гибридных объектно-реляционных баз данных означает проникновение объектно-ориентированного подхода в БД, однако само объектно-ориентированное программирование могло бы позаимствовать из наиболее развитых БД модели данных, что привело бы к созданию более универсальной технологии, способной разрешить кризис современных СУБД, связанный с хранением и обработкой данных сложных типов [9].

Решение этих проблем при разработке обобщенной модели данных является актуальной задачей в области анализа и проектирования ИС.

Цель и задачи диссертационной работы

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

1. Модели объектно-ориентированного программирования и проектирования;

2. Информационные модели БД: реляционные и объектно-ориентированные;

3. Модели распределенных приложений;

4. Модели с эволюцией структуры;

5. Информационные модели искусственного интеллекта: семантические и фреймовые.

В рамках диссертационного исследования были решены следующие задачи:

1. Объединение парадигм и формирование единого понятийного аппарата для разработки обобщенной модели данных. Разработка методики анализа и проектирования ИС в рамках объединенной парадигмы.

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

3. Создание математического аппарата для работы со структурными элементами ИС.

4. Разработка численных оценок сложности структур ИС.

5. Разработка средства проектирования ИС в соответствии с предложенными решениями. Обеспечение совместимости с ведущими технологиями проектирования и программирования.

Область исследования

Область исследования диссертационной работы - разработка средства проектирования ИС для автоматизации этапа логического проектирования, создание модели ИС и методологии проектирования в рамках объединенной объектно-реляционной парадигмы.

Объектами исследования являются:

• Объектно-ориентированная парадигма как теоретическая основа;

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

Рассмотрим особенности современных информационных систем:

• Они содержат вычислительные алгоритмы,

• Включают алгоритмы манипулирования данными,

• Управление передается с помощью механизма событий и сообщений, многопоточные системы,

• Системы динамически изменяются (отдельные модули могут обновляться без приостановления работы),

• Распределенные системы (выполняются на нескольких компьютерах),

• Имеют частично компилируемые модули (вначале выполняются на сервере, потом - на клиенте),

• Многоуровневые (данные доходят до конечного потребителя через цепочку серверов, обрабатывающих данные),

• Мигрирующие (компоненты способны перемещаться с сервера на сервер),

• Интеллектуальные системы (сложные модели данных и их обработка в экспертных системах, соответствующие высоконаучным предметным областям).

• Открытые системы с множеством взаимосвязей с окружением.

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

• Технология должна быть средством общего назначения.

• Распространенность (такая технология берется в качестве основы создаваемой).

• Современность версии.

• Реализация общих принципов ООП.

• Типичность в классе подобных технологий.

Схожие принципы построения успешной технологии приведены в работе [84]. В рамках объектно-ориентированно ориентированного проектирования выберем язык UML, его диаграмму классов возьмем за основу при проектировании графической нотации. Также интерес представляют предки диаграммы классов - диаграммы «Сущность-связь» Чена, Рамбо, Буча и ОМТ, к их особенностям будем обращаться по мере необходимости.

В качестве основных языков объектно-ориентированного программирования выберем С++, Java и С# (сравнение характеристик наиболее распространенных языков см. в [101], о происхождении сценарных языков - [83]). Эти языки являются наиболее применяемыми в настоящее время. Считается, что Java создавался как модификация С++ для реализации Интернет-приложений (сравнение С++ и Java см. в [37]), а С# - как развитие С++ и Java с дополнительными возможностями межъязыковой интеграции, распределенности и динамизма приложений. Однако не следует выбирать только один С#, потому что у его предка С++ присутствует полезное свойство, исключенное в дальнейшем из Java и С# - множественное наследование, кроме того, преимущества С#, как их излагает компания-разработчик (Microsoft) имеют в основном рекламный характер. В качестве дополнительных языков будем рассматривать Pascal (он используется в среде Delphi, популярной у разработчиков), Smalltalk [38] первый «чистый» язык программирования в рамках ООП), язык BETA [33] (с концепцией паттернов, объединяющих такие понятия как класс, функция, процедура и пакет) и CLOS (с динамизмом изменения структуры).

Из технологий разработки распределенных приложений выберем семейство технологий COM (dCOM, ActiveX Components, ActiveX Documents [36]), семейство технологий Java (аплеты, сервлеты, аглеты, JavaBeans [35], Enterprise JavaBeans), в качестве дополнения - стандарт CORBA [39], разработанный группой OMG, и языки описания объектов для совместимости компонентов на уровне кода IDL и ODL.

В рамках БД интерес представляют стандарт объектно-ориентированных баз данных группы ODMG, язык объектных запросов OQL, а также СУБД Oracle как наиболее распространенная СУБД смешанного типа (объектно-реляционная) и стандарт языка SQL 3.0, реализующий вычислительную полноту и поддерживающий объектно-ориентированные технологии. Также нужно обратить внимание на расширения С++ и Java, предложенные группой ODMG для реализации встроенных запросов.

В качестве ограничения не будем рассматривать такие технологии современных БД, как хранилища и OLAP. Не отрицая возможности объектно-ориентированного подхода в этих технологиях, отметим, что системы OLTP (быстрая обработка транзакций) стоят ближе к программам общего назначения, чем системы длительного хранения данных, что и проявилось в создании объектно-ориентированных баз данных.

Из моделей интеллектуальных информационных систем (ИИС) рассмотрим семантические сети и модель фрейм-слот.

Методика исследования

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

Научная новизна

Приведенные в диссертации результаты являются новыми. В диссертации получены следующие научные результаты:

1. Объединенная парадигма и соответствующая ей технология, позволяющая проектировать ИС в виде открытых динамически изменяющихся сетей паттернов внутри сетей с дуализмом сущностей и связей. Парадигма включает в себя следующие основные новые аспекты:

1.1. Изменение понятия «объект»

• Формирование объекта за счет действия различных механизмов (Отход от положения «объект = экземпляр класса»);

• Расширенный состав объекта (свойства, методы, триггеры, события, внешние свойства, свойства окружения, бизнес-правила, роли объектов, для которых данный объект выступает как связь);

• Расширенное описание атрибутов;

1.2. Переход от понятия «класс» к «паттернам», связи общего вида.

• Именованные n-арные связи с ролями и возможностью наследования и агрегации;

• Единое описание сущностей, связей, функций - обобщенное понятие «паттерн»;

• Многоуровневое метаклассирование.

1.4. Взаимоотношение ООП со структурой программы.

• Концепция элементов программного кода как объектов и транзакций;

• Динамизм структуры программы.

1.5. Структурные ограничения - развитие виртуального наследования. 1 .б.Методика анализа и проектирования ИС в виде сети паттернов.

2. Операции над сложными объектами автоматизации - паттернами, сочетающими свойства сущностей, связей и функций.

3. Численные оценки сложности структуры ИС.

4. Алгоритм преобразования структур данных, разработанных в соответствии с объединенной парадигмой, в объектный код С++.

Практическая и теоретическая ценность, внедрение

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

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

Практическое значение имеет созданное средство автоматизированного проектирования «Patterns», поддерживающее графическое проектирование ИС, автоматическую генерацию кода в текстовой нотации и кода на языке С++ и оценок сложности структуры ИС, позволяющее проектировать и анализировать приложения и базы данных в рамках единого подхода. Графическая диаграмма модифицирует диаграмму классов UML, а текстовая нотация вводит дополнительные элементы в язык С++. Таким образом, сохраняется преемственность с лидирующими технологиями в области проектирования программного обеспечения.

Результаты работы внедрены и используются в Свердловском предприятии вычислительной техники и информатики (средство проектирования Patterns используется при анализе и проектировании программных комплексов) и ГОУ ВПО "Уральский государственный технический университет" (учебный процесс специальности «Информационные системы в технике и технологиях» по дисциплинам «Управление данными» и «Проектирование информационных систем», г/б НИР 3334 «Создание CASE-средств проектирования распределенных информационных систем»).

Результаты, выносимые на защиту, авторский вклад

1. Объединенная парадигма, включающая элементы ООП, реляционных баз данных, семантических сетей и фреймов. Методика проектирования ИС.

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

3. Операции над паттернами для возможности явной реализации объектных алгебр при проектировании ИС.

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

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

Достоверность и обоснованность работы

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

Апробация результатов работы, публикации.

Основные научные результаты, полученные в ходе диссертационного исследования, докладывались и обсуждались на следующих конференциях и выставках: III, IV, V отчетных конференциях молодых ученых УГТУ-УПИ (Екатеринбург, 2002, 2003), межрегиональных форумах «Приборостроение» (Екатеринбург, 2002, 2003), всероссийской научно-технической конференции «Радиовысотометрия-2004» (Каменск-Уральский, 2004), конференции, посвященной 50-летию радиотехнического образования на Урале, международной научно-практической конференции «Связь-пром 2005». По теме диссертации опубликовано 10 научных работ, из них 6 статей, в том числе 1 - в издании, рекомендуемом ВАК.

Структура диссертации

Диссертация состоит из введения, пяти глав, заключения, грех приложений, библиографии и оглавления; всего 219 стр. (основной текст - 172 стр.), 73 рисунка, 24 таблицы, 71 листинг программ. Список литературы включает 150 наименований. Первая глава содержит анализ объектов исследования, рассматриваются возможности объединения моделей объектно-ориентированных технологий, моделей интеллектуальных систем, баз данных. Рассматриваются системы с эволюцией структуры и распределенные системы. Во второй главе приводятся теоретические положения объединенной парадигмы, анализ и проектирование ИС, вид ИС в соответствии с объединенной парадигмой. Третья глава содержит описание графической и текстовой нотации для разработанной парадигмы, приводится формальное определение понятия «паттерн». В четвертой главе приводится математический аппарат для описания раз

Заключение диссертация на тему "Проектирование информационных систем в рамках объединенного объектно-реляционного подхода"

Выводы

В данной главе рассмотрено средство проектирования ИС "Patterns", реализующее идеи объединенной парадигмы. На примере паттерна «административная единица» и абстрактном примере показывается, что предложенная текстовая нотация имеет преимущества по сравнению с кодом С++ по длине кода и числу строк, а также по простоте (количеству сущностей). Сокращение числа сущностей (до 44%), достигаемое за счет единого графического представления паттерна, соответствующего композиции классов С++, упрощает проектирование структуры класса, а значит, сокращает время проектирования. Приводятся схемы алгоритма, преобразующего структуру паттернов в объектную структуру С++.

180

Заключение

Мы рассмотрели полезность нескольких элементов объединенной парадигмы при проектировании паттерна «Административная единица» (см. Табл. 23).

Табл. 23. Использование элементов объединенной парадигмы для паттерна «Административная единица»

Элементы объединенной парадигмы Использование

Гибридная рекурсивная связь Отношение подчинения административных единиц

Метаклассы Типы административных единиц

Расширенные объекты Адрес

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

Аналог рекурсивных запросов Формирование адреса

Алгебраические операции Объединение административных единиц

Механизмы обеспечения динамизма структуры и открытости системы Использование общей БД в различных ИС

Также рассчитана сложность разработанной системы по введенным оценкам сложности паттерна.

Паттерн «Административная единица» находит широкое применение в системах, использующих пространственные БД. Кроме того, паттерны с аналогичной структурой могут использоваться в системах с иерархиями и взаимосвязями между узлами (компонентные технические системы с различными видами взаимосвязей, системы менеджмента персонала и т.д.).

Библиография Добряк, Павел Вадимович, диссертация по теме Системы автоматизации проектирования (по отраслям)

1. История технологий и прогнозы

2. Андреев А. Эволюция современных языков программирования. // Мир ПК, №3, 2001.

3. Бобровский С. История объектно-ориентированного программирования. http://www.computer-museum.ru/histsoft/oophist.htm.

4. Грей Дж. Управление данными: Прошлое, Настоящее и Будущее. // Системы управления базами данных, №3, 1998.

5. Зильбершац А., Здоник С. Стратегические направления в системах баз данных // Системы управления базами данных, №4, 1997.

6. Иванов А. Г. Объектно-ориентированные системы: состояние и перспективы. Москва, 1992.

7. Ким В., Гарза Ж, Грэхэм Б. Пути развития объектно-реляционных технологий баз данных // Системы управления базами данных, №4, 1996.

8. Когаловский М.Р. Очерк истории отечественных технологий баз данных. Отрывок из книги // Открытые системы, №01, 2002.

9. Кузнецов С. Будущие направления исследований в области баз данных: десять лет спустя, 1999г. http://www.citforum.ru/database/articles/future01.shtml

10. Кузнецов С. Крупные проблемы и текущие задачи исследований в области баз данных, http://citforum.urc.ac.ru/database/articles/problems/

11. Ю.Кузнецов С. Развитие постреляционных СУБД.http://www.csu.ac.ru/osp/dbms/1995/02/source/dbmsin.html

12. Кузнецов С. Три манифеста баз данных: ретроспектива и перспективы. Доклад на международной научной конференции "Базы данных и информационные технологии XXI века", http://www.citforum.ru/database/articles/manifests/

13. Кузнецов С. Что было, то и теперь есть, и что будет, то уже было., 1999. http://fizmat.vspu.ru/citforum/database/articles/oozinder.shtml

14. Кузнецов С.Д. Тенденции в мире систем управления базами данных. http://www.citforum.ru/database/articles/art25.shtml

15. Концептуальные основы технологий

16. Гуэррини Дж., Мерло И. Расширение триггерами модели объектов стандарта ODMG. IEEE Trans. Know, and Data Eng. T 16 №2 с 170-188.

17. Когаловский M. P. Абстракции и модели в системах баз данных. // Системы управления базами данных, №04-05, 1998.

18. Лапшин А. Свойство неизменности ООП под микроскопом. // Открытые систе мы №11, 2002

19. Легалов А. О стрельбе по множественному наследованию. // Открытые системы №5-6, 2001 г.

20. Легалов Л. Мультиметоды и парадигмы. // Открытые системы №05, 2002.

21. Люри Дж., Мансур Ш. Преодоление иерархий. Windows IT Pro // Издательство "Открытые системы" (www.osp.ru), 24.10.2001.

22. Прохоров В.В. Концепция иерархических языков. // Тезисы докладов молодеж ной конференции «Проблемы теоретической и прикладной математики», 1992. Екатеринбург: УрО РАН, 1993. - с. 88-89.

23. Прохоров В.В. О микроконтекстном подходе к построению языков представления знаний и человеко-компьютерного взаимодействия. // Известия РАН. Теория и системы управления, 1997, №5 (ISSN 1064-2307). с. 5-16.

24. Прохоров В.В. О мультиметафорном подходе к построению языков и программных средств. // Труды международного семинара «Искусственный интеллект в образовании», часть II. Казань: КГТУ, 1996. с. 49-54.

25. Смит Дж., Смит Д. Абстракции баз данных: агрегация и обобщение. // Системы управления базами данных, №02, 1996.

26. Труб И. О проблемах множественного наследования. // Открытые системы №2, 2001 г.

27. Общие сведения по объектно-ориентированному подходу

28. Грехем И. Объектно-ориентированные методы. Принципы и практика. 3-е издание.: Пер. с. англ. М.: Издательский дом «Вильяме», 2004. - 880 е.: ил. -Парал. тит. англ.

29. Иванов А.Г., Карпова А.В., Кремер Ю.Е., Семик В.П. Объектно-ориентированная среда программирования. Системы и средства информатики. -М.: Наука, вып.З, 1993.

30. Иванов А.Г., Пятницкий А.А., Филинов Ю.Е. Объектно-ориентированный подход. Технологии программирования. Сборник трудов ИПИ РАН. 1993г.

31. Крикориан X. Введение в объектно-ориентированную системную инженерию. // Открытые системы №11, 2003

32. Одел Дж. Агенты и сложные системы. // Открытые системы №10, 2002

33. Снайдер У. Проблемные типы данных. Windows IT Pro // Издательство "Открытые системы" (www.osp.ru), 24.10.2001.

34. Технологии программирования

35. Madsen O.L., Moller-Pedersen В., Nygaard К. Programming in the BETA programming language. 348p, 1993.

36. Бадд Т. Объектно-ориентированное программирование.

37. Галатенко В., Таранов А. Компонентная объектная модель JavaBeans // Системы управления базами данных №04, 1997.

38. Деннинг A. ActiveX для профессионалов СПб: Питер, 1998. - 624 е.: ил.

39. Иванов Н. С++ или Java. Сравнительный анализ объектно-ориентированных языков С++ и Java.

40. Кирютенко Ю.А., Савельев В.А. Незнакомый Smalltalk. Ростовский государственный университет, 1997.

41. Обзор архитектуры CORBA. Сервер компании Epsylon-Technologies, 1999.

42. Одинцов И. Профессиональное программирование. Системный подход. BHV-СПб 512с, 2002.

43. Смит Кони, Уильяме Ллойд. Эффективные решения. Практическое руководство по созданию гибкого и масштабируемого ПО. с англ. М.: Издательский дом «Вильяме», 2003г.

44. Швыркин И. Пролог. Генезис. // Мир ПК, №05, 2000.1. Технологии проектирования

45. Abbott R. November 1983. Program Design by Informal English Descriptions. Communications of the ACM vol. 26(11).

46. Бок К. UML 2: модель деятельности и модель действий. Journal of Object Technology, февраль 2004.

47. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++, 2-е изд./Пер. с англ. М: «Издательство Бином», СПб: «Невский диалект», 1998 г. - 560 е., ил.

48. Буч Г., Рамбо Дж., Джекобсон А. Язык UML. Руководство пользователя.

49. Вендров A.M. CASE-технологии. Современные методы и средства проектирования информационных систем. М.: Финансы и статистика, 1998. - 176с.: ил.

50. Вендров A.M. Практические рекомендации по освоению и внедрению CASE-средств. // Системы управления базами данных, №01, 1997.

51. Гома X. Проектирование систем реального времени, параллельных и распределенных приложений: Пер. с англ. М.: ДМК Пресс, 2002. - 704 е.: ил.

52. Кузнецов С. Д., Концептуальное проектирование реляционных баз данных с использованием языка UML, 2003. http://www.citforum.ru/database/articles/umlbases.shtml

53. Леоненков А.В. Самоучитель UML. СПб.: БХВ-Петербург, 2001. - 304 е.: ил.

54. Маклаков С.В. BPwin и ERwin. CASE-средства разработки информационных систем. М.: ДИАЛОГ-МИФИ, 2000 - 256 с.

55. Марков Б. Проектирование систем регистрации и анализа данных. 2002. http://www.citforum.ru/database/articles/regdata.shtml

56. Мартин, Р.С. Быстрая разработка программ: принципы, примеры, практика. : Пер. с англ. М.: Издательский дом «Вильяме», 2004. - 752 с. : ил.

57. Новоженов Ю. В., Звонкин М. 3., Тимонин Н. Н. Объектно-ориентированные CASE-средства. // Системы управления базами данных №5, 1996.

58. Рэй Н. Разрешающая технология. Краеугольные камни подхода к разработке. Мир компьютерной автоматизации, 97/3

59. Фридман А.Л. Основы объектно-ориентированной разработки программных систем. М.: Финансы и статистика, 2000. - 192 е.: ил.

60. Харрингтон Д. Проектирование объектно-ориентированных баз данных: Пер. с англ. М.: ДМК Пресс, 2001. - 272 е.: ил.

61. Якобсон И., Кристиансон М., Костантайн Я. Метод OOSE: подход, управляемый видами использования, http://www.math.rsu.ru/smalltalk/usecase.ru.html1. Модели данных

62. Atkinson М, Bansilhon F, DeWitt D, Dittrich К, Maier D, Zdonik S. The Object-Oriented Database System Manifesto // 1st Int. Conf. Deductive and Object-Oriented Databases, Kyoto, Japan, Dec. 4-6, 1989

63. Codd, E.F. "Extending the Relational Database Model to Capture More Meaning." IBM Research Report RJ2599 (August 6th, 1979). Republished in ACM Transactions on Database Systems 4(4), December 1979.

64. Date, C.J. and Hugh Darwen. Foundation for Object/Relational Databases: The Third Manifesto. Reading, Mass.: Addison-Wesley, 1998.

65. Аткинсон M., Бансилон Ф., ДеВитт Д., Дитрих К., Майер Д., Здоник С. Манифест систем объектно-ориентированных баз данных. // Системы управления базами данных, №4, 1995.

66. Башмаков А.И., Башмаков И.А. Интеллектуальные информационные технологии: Учеб. пособие. М.: Изд-во МГТУ им. Н.Э. Баумана, 2005. - 304 е.: ил.

67. Гаскаров Д.В. Интеллектуальные информационные системы. Учеб. для вузов. -М.: Высш. шк., 2003.-431 с: ил.

68. Дейт К. Дж, Дарвен Хью. Основы будущих систем баз данных. Третий манифест 2004г.

69. Кодд Э. Ф. Расширение реляционной модели для лучшего отражения семантики. // Системы управления базами данных, №5, 1996.

70. Кузнецов С. Третий манифест Дейта и Дарвена. // Открытые системы №04, 2000.

71. Кузнецов С. Третий манифест Дейта и Дарвена: немного формализма // Открытые системы №07-08, 2000.

72. Лыу Дык Кхам. Некоторые расширения в теории нечетких реляционных баз данных. Диссертация на соискание ученой степени кандидата технических наук. Санкт-Петербург, 2003.

73. Никитин В.И. Методика представления слабоструктурированных данных в реляционных СУБД. Диссертация на соискание ученой степени кандидата технических наук. Тула, 2003.

74. Полтавцева Н.А. Интеграция объектных систем обработки информации и реляционных серверов. Диссертация на соискание ученой степени кандидата технических наук. Тверь, 2003.

75. Чен П. Модель "сущность-связь" шаг к единому представлению о данных. // Системы управления базами данных, №3, 1995.

76. Шекхар Ш., С. Чаула С. Основы пространственных баз данных./Пер. с англ. -М.: Кудиц-Образ, 2004. 336 с.1. СУБД

77. C.J. Date. When's an extension not an extension? Intelligent Enterprise, June 1, 1999, Volume 2, Number 8.

78. Zdonik S. Directions in Object-Oriented Databases // COMPSAC'89 13th Annu. Int. Comput. Software and Appl. Conf., Orlando, Fla, Sept. 20-22, 1989.- 200

79. Андреев A. M., Березкин Д. В., Кантонистов Ю. А. Выбор СУБД для построения информационных систем корпоративного уровня на основе объектной парадигмы. // Системы управления базами данных, №04-05, 1998.

80. Андреев А., Березкин Д., Самарев Р. Внутренний мир объектно-ориентированных СУБД//СУБД март2001, сс. 47-57, М: «Открытые системы», 2001.

81. Аносов А. Критерии выбора СУБД при создании информационных систем. 2001.

82. Багуи С. Объектно-ориентированные базы данных: достижения и проблемы. // №03 (95) 2004. сс. 12-18 М: «Открытые системы», 2004.

83. Богатырев Р. Природа и эволюция сценарных языков // Мир ПК, №11, 2001.

84. Богданов Н. К. Аспектно-ориентированные методы в управлении информационными потоками баз данных ДП АСУТП, "Автоматизация в промышленности", №9 2003.

85. Вейд А. Стандарты объектных запросов. // Системы управления базами данных, №04, 1996.

86. Винокуров JI. Л., Леонтьев Д. В., Гершельман А. Ф. СУБД ADABAS основа универсального сервера баз данных // Системы управления базами данных, №02, 1997.

87. Голосов А. О. Аномалии в реляционных базах данных // Системы управления базами данных, №03, 1996.

88. Горохов Д., Чернов В. Методы организации хранения данных в СУБД. // Открытые системы, №3, 2003.

89. Григорьев Е. Объектно-ориентированная организация реляционных данных, 2003.

90. Гринев М., Кузнецов С., Фомичев А. Особенности СУБД Sedna. XML-СУБД Sedna: технические особенности и варианты использования. // Открытые системы, №8, 2004.

91. Зиндер Е.З. Проектирование баз данных: новые требования, новые подходы.

92. Злуф М.М. Query-by-Example: язык баз данных. // Системы управления базами данных, №03, 1996.

93. Калиниченко Л.А. Стандарт систем управления объектными базами данных ODMG-93: краткий обзор и оценка состояния. // Системы управления базами данных, №1, 1996.

94. Калиниченко Л.А., Когаловский М.Р. Стандарты OMG: Язык определения интерфейсов IDL в архитектуре CORBA. // Системы управления базами данных, №02, 1996.

95. Колонии Ю. Jasmine первая полномасштабная ОСУ БД.

96. Коннолли Т., Бегг К. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. 3-е издание.: Пер. с англ. М.: Издательский дом «Вильяме», 2003. - 1440 е.: ил. - Парал. тит. англ.

97. Кузнецов С. Объектно-ориентированные базы данных основные концепции, организация и управление: краткий обзор. http://www.citforum.ru/database/articles/art24.shtml

98. Кузнецов С.Д. Основы современных баз данных. Объектно-ориентированные базы данных основные концепции, организация и управление: краткий обзор. http://www.citforum.ru/database/articles/art24.shtml

99. Малютин П.В. Система управления объектно-ориентированной, распределенной базы данных с сетевым принципом организации. Всероссийская межвузовская НТК студентов и аспирантов. Зеленоград, 17-18 апреля 2002: Тезисы докладов.

100. Полтавцева Н.А. Интеграция объектного подхода к созданию информационных систем с сохранением данных в реляционной СУБД. Сборник научных трудов. Тверь, издательство ТГТУ, 2000 с. 115-117.

101. Прехельт JI. Эмпирическое сравнение семи языков программирования. // Открытые системы, №12, 2000.

102. Пржиялковский В. Новые одежды знакомых СУБД: Объектная реальность, данная нам // Системы управления базами данных, №04, 1997.

103. Пуле М. Денормализация: как нарушить правила и избежать последствий. Windows IT Pro // Издательство "Открытые системы" (www.osp.ru).

104. Ред. и перевод Когаловского М. Воплощение идей SQL-99 в ведущих объектно-реляционных серверах баз данных, (подборка статей). // Открытые системы, №07-08, 1999.

105. Рузайкин Г.И. Магический кристалл баз данных. // Открытые системы, №11,2003.

106. Селезнев К., Борисов В. Визуализация семантической сети. // Открытые системы, №11, 2003.

107. Симонов М.А. Подход к созданию моделей объектно-ориентированных СУБД. Исследования по прикладной математике и информатике №24, 2003. с. 121 - 127, 158.

108. Сиротюк О.В. Задачи оптимизации проектирования логических структурI

109. ООБД. Изд-во ИПУ РАН. Труды международной конференции по проблемам управления. Москва 17-19 июня 2003.

110. Твердова О. СУБД Postgress. // Системы управления базами данных, №02, 1997.

111. Тенцер А. База данных — хранилище объектов КомпьютерПресс 8'2001.

112. Формика А. Выполнимость ограничений ООБД с множественными и пакетными атрибутами. Informational Systems х0306-4379 Т28, №3, 2003. с 213224.

113. Чемберлин Д. Анатомия объектно-реляционных баз данных. // Системы управления базами данных, №01-02, 1998.

114. Черняк Jl. Джим Мелтон о судьбе стандарта SQL. // Открытые системы, №06,2003.1. Хранилища, OLAPс

115. Барсегян А.А., Куприянов М.С., Степаненко В.В., Холод И.И. Методы и модели анализа данных: OLAP и Data Mining. СПб.: БХВ-Петербург, 2004. -336 е.: ил.

116. Использование витрин данных в учетной системе. Подготовлено: по материалам зарубежных сайтов. Перевод: Intersoft Lab 2003.

117. Коровкин С. Д., Левенец И. А., Ратманова И. Д., Старых В. А., Щавелёв Л. В. Решение проблемы комплексного оперативного анализа информации хранилищ данных, http://www.citforum.ru/database/articles/artl l.shtml

118. Кузнецов С., Артемьев В. Обзор возможностей применения ведущих СУБД для построения хранилищ данных (DataWarehouse). http://www.citforum.ru/database/kbd98/glaval5.shtml

119. Стулов А. Особенности построения информационных хранилищ. От-^ крытые системы №4, 2003.

120. Шроэк М., Зинн Д., Берг Б. Интегрированная аналитика. Как извлечь максимальную выгоду из ERP-систем. 2003. http://www.seminars.ru/bnode/105/article/1710/index.htm1. СУБД, запросы, транзакции

121. Cluet S, Delobel С, Lecluse С, Richard P. RELOOP: An Algebra Based Query Language for an Object-Oriented Database System // Data and Knowledge Eng.- 5.1990,- 333-352.

122. Kim W. Object-Oriented Databases: Definition and Research Directions // IEEE Trans. Data and Knowledge Eng.- 2, N 3.- 1990.- 327-341.

123. Wilkinson K, Lyngbaek P, Hasan W. The Iris Architecture and Implementation // IEEE Trans. Knowledge and Data Eng.- 2, N 1,- 1990.- 63-75.

124. Григорьев E. Представления идентифицируемых сложных объектов в реляционной базе данных. 2001. http://www.citforum.ru/database/articles/rxo.shtml

125. Заставной Д.А. Разработка и реализация высокоуровнего навигационного языка запросов для объектных баз данных. Диссертация на соискание ученой степени кандидата технических наук. Ростов-на-Дону, 2005.

126. Кузнецов С. "Объектны" ли объектные расширения языка SQL? 2005. http://www.citforum.ru/database/articles/sqlodmg/

127. Кузнецов С. Об основаниях ненавигационного языка запросов к объектно-ориентированным базам данных. http://www.citforum.ru/database/articles/art20.shtml

128. Кузнецов С., Чардин П. Семейство алгоритмов ARIES. Открытые системы №3, 2004.

129. Кузнецов С., Языки программирования объектно-ориентированных баз данных и оптимизация запросов. http://www.citforum.ru/database/articles/art23.shtml

130. Савушкин С. Точка зрения на ОРСУБД. 2003. http://zeus.sai.msu.ru:7000/database/articles/art23.shtml

131. Чардин П. Многоверсионность данных и управление параллельными транзакциями. http://zeus.sai.msu.ru:7000/database/articles/multiversionA сокр. версия в журнале «Открытые системы».

132. Чемберлин Д. XQuery: язык запросов XML. // Открытые системы, №01, 2003.

133. Распределенные и параллельные системы

134. Аншина М. Увлекательное путешествие с CORBA 3: по широким просторам распределенных приложений // Открытые системы, №05-06, 1999.

135. Ахтырченко К. В., Леонтьев В. В. Распределенные объектные технологии в информационных системах // Системы управления базами данных, №0506, 1997.

136. Девитт Д. Параллельные системы баз данных: будущее высоко эффективных систем баз данных // Системы управления базами данных, №02, 1995.

137. Кузнецов М. Наследование реализации в распределенных объектных системах // Открытые системы, №12, 2002.

138. Оззу М. Т., Валдуриз П. Распределенные и параллельные системы баз данных. // Системы управления базами данных, №04, 1996.

139. Пуха Ю. Объектные технологии построения распределенных информационных систем // Системы управления базами данных, №03, 1997.

140. Источники для приложения 2.

141. Люри Дж., Мансур Ш. Преодоление иерархий. //Открытые системы, 24.10.2001. http://www.osp.ru/win2000/sql/970.htm.

142. Бен Ган И. СТЕ и циклы. //Открытые системы, 27.01.2005. http://www.osp.ru/win2000/sql/newability/501 1 .htm.1. Список публикаций автора

143. Добряк П.В., Калмыков А.А. Альтернативный подход по организации структур данных в объектно-ориентированных языках. Практика приборостроения №49., 2004.-с. 76-79.

144. Добряк П.В. Объектно-ориентированные технологии в интеллектуальных информационных системах. Вестник УГТУ-УПИ №17(69), Екатеринбург, 2005. -с. 100- 105.

145. Добряк П.В., Калмыков А.А. Объектно-ориентированные технологии в интеллектуальных информационных системах. Сборник научных трудов международной научно-практической конференции «Связь-пром 2005». Екатеринбург, 2005. с. 153 - 157.

146. Добряк П.В., Калмыков А.А. Объектно-ориентированное программирование распределенных приложений. Вестник УГТУ-УПИ №20(50), Екатеринбург, 2004.-С. 175- 177.

147. Добряк П.В., Калмыков А.А. Применение диаграмм «сущность-связь» при проектировании программного обеспечения для технических систем. Практика приборостроения №27., Екатеринбург, 2004. С. 33 - 36.

148. Добряк П.В., Калмыков А.А. Развитие диаграмм «сущность-связь» при объектно-ориентированном программировании. Сборник статей научных трудов V отчетной конференции молодых ученых ГОУ ВПО УГТУ-УПИ. Екатеринбург, 2004.-С. 190-191.

149. Добряк П.В., Калмыков А.А. Объектно-ориентированная парадигма языков программирования и информационные модели БД. Сборник статей научныхтрудов IV отчетной конференции молодых ученых ГОУ ВПО УГТУ-УПИ. Екатеринбург, 2003. С. 144 - 145.

150. Добряк П.В., Калмыков А.А. Конвергенция объектно-ориентированной парадигмы языков программирования и информационных моделей баз данных. -Сборник статей научных трудов III отчетной конференции молодых ученых ГОУ ВПО УГТУ-УПИ. Екатеринбург, 2002.

151. Добряк П.В. Исследование принципов объектно-ориентированного программирования. Вестник №4 УГТУ-УПИ «Информационные технологии, системы управления и электроника». Екатеринбург, 1997 - С. 8.