Содержание к диссертации
Введение
Глава 1 Основные составляющие этапа конструирования информационных систем, требующие алгоритмизации 13
1.1Промежуточный слой 13
1.2Методы создания ИС 16
1.2.1Методы объектного анализа и проектирования ИС 16
1.2.2Методы создания ИС из компонентов 19
1.3 Композиционный подход к проектированию ИС на основе интероперабельных сред информационных компонентов 20
1.3.1Общее описание подхода 20
1.3.2Этап конструирования 23
1.3.3Особенности композиционного подхода к проектированию ИС 33
1.4Пример композиционного проектирования ИС 34
1.5Выводы по главе 36
Глава 2 Поиск релевантных спецификаций 38
2.1Основные понятия 38
2.2Спецификация онтологии на языке синтез 41
2.3Функции корреляции 46
2.4Композиция ассоциаций 48
2.5 Процесс поиска релевантных элементов спецификаций 50
2.6Пример поиска релевантных спецификаций 58
2.6.1Спецификации онтологических понятий 58
2.6.2Отображение понятий спецификаций компонентов/требований в понятия общей онтологии 63
2.6.3Установление ассоциаций между понятиями спецификации требований и компонентов 65
2.6.4Список релевантных элементов спецификаций 65
2.7Выводы по главе 66
Глава 3 Разрешение конфликтов между спецификациями требований и компонентов 68
3.1Виды конфликтов 68
3.2Описание преобразований на языке СИНТЕЗ 71
3.3Подход к разрешению структурных конфликтов 72
3.3.1Основные понятия 72
3.3.2 Правила структурных преобразований 74
3.3.3Дерево типа 84
3.3.4Алгоритм поиска релевантных путей 87
3.4Пример релевантных путей 89
3.5Выводы по главе 93
Глава 4 Конструирование композиций компонентов, уточняющих спецификации требований 94
4.1Основные понятия 94
4.1.1Понятие уточнения 94
4.1.2Редукт типа 95
4.1.3Композиция типов 96
4.2Спецификация редуктов 97
4.3 Спецификация композиционных типов и взглядов 100
4.4Поиск повторно используемых фрагментов 101
4.5Композиция фрагментов спецификаций 103
4.6Пример конструирования композиций классов компонентов, уточняющих класс спецификации требований 111
4.7Выводы по главе 118
Глава 5 Архитектура инструментария средств поддержки конструирования ИС из компонентов 120
5.1Общая архитектура 120
5.2Сценарий работы эксперта-конструктора ИС 122
5.3Программные средства поиска релевантных спецификаций 123
5.4Программные средства разрешения структурных конфликтов между спецификациями требований и компонентов 128
5.5Программные средства выявления фрагментов компонентов и их композиция в спецификации, уточняющие спецификации требований... 131
5.6Программные средства поддержки репозитория метаинформации 135
5.7Программные средства реализации ИС 136
5.8Выводы по главе 138
Заключение 139
Литература
- Композиционный подход к проектированию ИС на основе интероперабельных сред информационных компонентов
- Процесс поиска релевантных элементов спецификаций
- Правила структурных преобразований
- Спецификация композиционных типов и взглядов
Введение к работе
Идея конструирования информационных систем (ИС) из компонентов развивается на протяжении многих лет. По существу, речь идет о мегапрограммировании (Дж.Видерхольд) - крупноблочном конструировании систем. Согласно этой идее, целесообразнее осуществлять капиталовложения в создание компонентов, которые можно было бы многократно использовать, чем всякий раз осуществлять разработку ИС сверху - вниз: от спецификаций требований к работающей системе. Несмотря на очевидную привлекательность идеи и многочисленные исследования и разработки в этой области, достигнутые результаты не соответствуют существенно возросшим в последнее время технологическим возможностям.
Сеть Интернет наводнена компонентами. Развивающиеся технологии промежуточного слоя (такие, как, например, CORBA, Java RMI, DCOM, .NET, или в последнее время Web Services) обеспечивают техническую возможность конструирования распределенных, интероперабельных ИС, как из программных, так и из информационных компонентов. Эти технологии, также, позволяют накапливать репозитории компонентов для их дальнейшего использования при создании новых ИС. Развитие Интернет уже в ближайшем будущем позволит рассматривать его как базу данных с моделью данных, соответствующей стандарту XML. При этом, сайты образуют информационные компоненты, пригодные для использования в составе ИС. Технологии промежуточного слоя и Интернет интегрированы и могут использоваться совместно при создании ИС.
Что же достигнуто в области конструирования ИС из компонентов. Главным образом развиваются методы и средства компонентно-базированного проектирования ИС. При этом традиционно рассматриваются программные компоненты. Примерами таких технологий являются Microsoft's .NET и SunSoft's JavaBeans. Существующие средства создания
6 программ, такие как Microsoft's Visual Studio, Inprise's Delphi и Protosoft's
Power Builder позволяют конструировать программы из готовых
компонентов, включая компоненты .NET, ActiveX и JavaBeans.
Отличительной чертой этих средств является их ориентированность на
неполные спецификации компонентов и предварительное, детальное знание
программистом возможностей этих компонентов. Эти средства хороши для
работы с "локальными" библиотеками, когда предполагается их хорошее
знание разработчиком. Такой подход является также небезопасным,
поскольку из-за неполноты спецификаций невозможно убедиться в
адекватности компонентов спецификации требований.
Наряду с такими технологиями, методы Объектного Анализа и Проектирования (ОАП) предлагают графические нотации и методологии для проектирования ИС. Основной используемой нотацией методов ОАП в последнее время является унифицированный язык UML. По сути, эти методы реализуют традиционное проектирование сверху - вниз. Средства, которые предоставляются методами ОАП (такими, например, как Rational Rose от Rational Software и Paradigm Plus от Platinum) для повторного использования, требуют глубокого знания разработчиком используемых компонентов, что находит применение для использования библиотек программ (например, использование графических библиотек в средствах визуального проектирования). Часто названные средства используются комбинированно -анализ и проектирование ИС осуществляется на основе методов ОАП, а реализация системы осуществляется с использованием средств визуального программирования (например, Delphi, Power Builder).
Таким образом, известные методы и средства не позволяют использовать потенциальные возможности компонентов, накапливаемых в Интернет, не являются масштабируемыми по числу накопленных компонентов, не позволяют конструировать системы из компонентов
различных видов - программных, информационных, являются небезопасными.
Данная работа является исследованием, выполненным в соответствии с композиционным подходом к конструированию ИС, развиваемым в рамках проекта СИНТЕЗ в Лаборатории композиционных методов проектирования информационных систем Института проблем информатики РАН. Этот подход ориентирован на преодоление указанных основных ограничений существующих технологий. Он предназначен для корректной композиции существующих компонентов, семантически интероперабельных в контексте конкретного применения. В отличие от системной, технической интероперабельности (обеспечиваемой инфраструктурами промежуточного слоя), подход рассматривает интероперабельность в более широком, семантическом аспекте. Семантическая интероперабельность означает комбинацию нескольких способностей: способности решения вопроса о релевантности имеющихся компонентов разрабатываемому применению, о соответствии их прикладных контекстов контексту применения, а также о том, что интероперабельная композиция ресурсов будет непротиворечивой в контексте разрабатываемого применения.
Анализ текущего состояния технологических приемов проектирования систем из компонентов и исследований в этой области показывает, что в настоящее время не известны результаты, которые позволяли бы конструировать ИС как композицию компонентов, семантически интероперабельных в контексте спецификации требований, и уточняющую спецификацию требований.
В диссертационной работе осуществляется исследование и разработка методов и средств композиционного подхода, ориентированных на создание ИС из компонентов, технически интероперабельных в рамках некоторого промежуточного слоя.
Цель и задачи работы
Целью диссертационной работы является исследование и разработка алгоритмов конструирования ИС из компонентов, технически интероперабельных в рамках некоторого промежуточного слоя.
Достижение цели предполагает решение следующих задач:
разработка алгоритмов поиска компонентов, онтологически релевантных спецификации требований;
разработка алгоритмов разрешения конфликтов между спецификациями требований и компонентов;
разработка алгоритмов выявления фрагментов спецификации компонентов, которые могли бы служить уточнением соответствующих фрагментов спецификации требований;
разработка алгоритмов построения композиции таких фрагментов в спецификацию, уточняющую спецификацию требований;
создание инструментария эксперта-конструктора ИС на основе перечисленных алгоритмов.
Методы исследования
При решении поставленных в работе задач использовались методы объектного проектирования, методы теории множеств, теории графов, теории уточнения спецификаций.
Научная новизна
В диссертационной работе получены следующие новые научные результаты:
предложен оригинальный подход к конструированию ИС из программных и информационных компонентов, технически интероперабельных в рамках некоторого промежуточного слоя;
предложена онтологическая модель и на ее основе разработаны алгоритмы поиска релевантных спецификаций по описаниям связанных с ними понятий на естественном языке;
разработан метод разрешения различных рассогласований между спецификациями требований и компонентов, объединяющий в себе два известных подхода в области интеграции схем баз данных -применение набора предопределенных правил структурных преобразований, и применение языка высокого уровня для описания функций разрешения конфликтов;
разработан оригинальный метод конструирования композиции фрагментов спецификации компонентов с использованием операций над типами. Этот метод основан на понятии уточнения - уточняющие спецификации, образуемые при конструировании таких композиций, могут использоваться всюду вместо уточняемых спецификаций требований, так что пользователи не замечают этой замены.
Практическая ценность
Предлагаемый в диссертационной работе композиционный подход к конструированию ИС может быть использован для создания информационных систем как в рамках одного предприятия, так и в рамках Интернет. Использование данного подхода позволяет ускорить процесс создания новых ИС. Это также повышает надежность систем за счет использования уже проверенных, протестированных компонентов и уменьшает время на отладку и тестирование систем. Все вместе это ведет к снижению стоимости разработки ИС. Благодаря используемым методам спецификации и поиска компонентов, композиционный подход является масштабируемым по числу накопленных компонентов.
Разработанные алгоритмы могут использоваться и в других задачах. В частности, они использовались при создании предметного посредника для
электронных библиотек (в методе регистрации неоднородных коллекций и в методе проектирования персонализированных виртуальных электронных библиотек, создаваемых для конкретных пользователей).
Разработанный на базе этих алгоритмов инструментарий может быть применен также для создания ИС в различных прикладных областях, например, в ИС для научных исследований, электронных библиотеках для образования, интеллектуальных системах управления и принятия решений, и других.
Результаты диссертационной работы использованы в проектах, выполняемых по планам ИЛИ РАН, в проектах РФФИ 97-07-90369 и 00-07-90086, в проекте ИНТ AC INTAS-94-1817, а также в совместном проекте с Siemens Corporate Research and Development.
Апробация работы
Основные результаты диссертации докладывались на Международных конференциях ADBIS (Москва 1995, Москва 1996, Познань 1998, Марибор 1999, Вильнюс 2001, Дрезден 2003), на Международном симпозиуме по персонализации и рекомендационным системам в электронных библиотеках (Дублин 2001), на Российских конференциях по электронным библиотекам RCDL (Протвино 2000, Петрозаводск 2001, Дубна 2002), на семинаре Московской секции ACM SIGMOD (Москва 1998), на научных семинарах по проекту СИНТЕЗ лаборатории Композиционных методов проектирования информационных систем Института проблем информатики РАН.
На защиту выносятся следующие, полученные автором результаты:
композиционный подход к конструированию ИС из информационных компонентов, технически интероперабельных в рамках некоторого промежуточного слоя;
метод и реализующие его алгоритмы поиска элементов спецификаций компонентов, релевантных элементам спецификации требований, на основе онтологической модели;
метод и реализующие его алгоритмы разрешения структурных конфликтов между спецификациями требований и компонентов;
метод и реализующие его алгоритмы выявления фрагментов спецификаций компонентов, которые могли бы служить уточнением соответствующих фрагментов спецификации требований;
метод и реализующие его алгоритмы построения композиции таких фрагментов в спецификацию, уточняющую спецификацию требований;
разработанный на основе перечисленных алгоритмов инструментарий эксперта-конструктора ИС.
Публикации по теме диссертации
По теме диссертации автором опубликовано 8 работ. Структура работы
Текст диссертации включает введение, пять глав, заключение, список литературы и два приложения.
В первой главе представлен подход к конструированию информационных систем на основе композиции существующих компонентов.
Во второй главе описывается подход к поиску элементов (классов, типов, атрибутов, функций) компонентов, подходящих для их использования в разрабатываемой ИС, основанный на онтологической интеграции.
В третьей главе описывается подход к разрешению конфликтов между фрагментами спецификаций требования и компонентов.
В четвертой главе описываются особенности процесса выявления повторно используемых фрагментов компонентов и их композицию в спецификацию, конкретизирующую спецификацию требований.
В пятой главе представлены созданные программные средства, реализующие разработанные алгоритмы композиционного подхода к проектированию ИС, их архитектура, интерфейсы и описание компонентов.
В заключении приводятся основные результаты, полученные в рамках данной работы.
В приложении А содержится описание особенностей языка СИНТЕЗ.
В приложении Б описано представление основных понятий языка СИНТЕЗ в нотации UML.
Композиционный подход к проектированию ИС на основе интероперабельных сред информационных компонентов
В диссертационной работе рассматривается, разработанный в рамках проекта СИНТЕЗ, подход к проектированию ИС, называемый композиционным [9, 10]. Этот подход ориентирован на преодоление указанных основных ограничений существующих методов ОАП и методов компонентного проектирования. Он предназначен для проектирования ИС на основе корректной композиции существующих компонентов, технически интероперабельных в рамках некоторого промежуточного слоя. В отличие от системной, технической интероперабельности, обеспечиваемой технологиями промежуточного слоя, в проекте СИНТЕЗ рассматривается интероперабельность в более широком, семантическом аспекте. Семантическая интероперабельность означает комбинацию нескольких способностей: способности решения вопроса о релевантности имеющихся компонентов разрабатываемой ИС, о соответствии их прикладных контекстов контексту разрабатываемой ИС, а также о том, что интероперабельная композиция ресурсов будет непротиворечивой в контексте разрабатываемой ИС.
Конструирование поиск релевантных спецификаций разрешение конфликтов между спецификациями требований и компонентов выявление релевантных фрагментов спецификации компонентов и их композиция в спецификации, уточняющие спецификации требований.
В диссертации под спецификацией требований понимается множество спецификаций классов и типов, и множество спецификаций онтологических понятий разрабатываемой ИС. прикладную семантику для спецификации требований. Этапы планирования требований и анализа реализуются с помощью применения произвольного метода ОАП, использующего нотацию UML. Выбранный метод ОАП расширяется онтологическими спецификациями, спецификациями функций и инвариантов, и другими понятиями канонической модели. Полученные спецификации в виде UML диаграмм отображаются в спецификации в канонической модели.
При обратной фазе (правая часть рисунка) происходит описание спецификаций компонентов. Для получения спецификаций компонентов2 (в случае их отсутствия), этап обратной инженерии (reverse engineering) может быть реализован с помощью применения метода ОАП, использующего нотацию UML. Выбранный метод ОАП расширяется онтологическими спецификациями. Полученные спецификации в виде UML диаграмм отображаются в спецификации в канонической модели, имеющей формальную интерпретацию.
В качестве канонической модели используется язык СИНТЕЗ, ориентированный на семантическую интероперабельность и композиционное проектирование информационных систем в широком диапазоне существующих неоднородных информационных компонентов. Описание основных понятий языка СИНТЕЗ приведено в Приложении А. Для придания канонической модели точной семантики, существует отображение канонической модели в модель формальных спецификаций. В качестве такой формальной модели выбрана нотация абстрактных машин В-технологии [2, 3]. Представление основных понятий языка СИНТЕЗ в нотации UML [8] описано в Приложении Б.
В диссертации под спецификацией компонента понимается множество спецификаций классов и типов, и множество спецификаций онтологических понятий компонента.
Вопросы формальной интерпретации канонической модели разрабатываются в рамках проекта СИНТЕЗ и выходят за рамки данной работы Полученные спецификации требований и компонентов используются на этапе конструирования. Этап проектирования абстрактной модели методов ОАП является более широким, по сравнению с тем, что рассматривается в диссертационной работе. Та часть этапа проектирования, в рамках которой предполагается определение возможности использования существующих компонентов в разрабатываемой ИС, называется в работе этапом конструирования. Этот этап определяет процесс уточнения спецификаций требований ИС композицией информационных компонентов.
Задача поиска компонентов подходящих для использования их в разрабатываемой системе является одной из важных задач композиционного проектирования. В текущих методах и средствах разработчик должен явно задавать, какие компоненты он собирается использовать. При этом необходимо знание разработчиком подходящих компонентов. Такой подход хорошо работает при работе с библиотеками, когда разработчик хорошо знает доступные компоненты. Но такой подход плох для использования его в среде Интернет, когда разработчик пытается использовать различные компоненты доступные через Интернет, о которых он может заранее и не знать. В этом случае без соответствующих методов и средств поиска не обойтись.
Процесс поиска релевантных элементов спецификаций
Композиционное проектирование ИС является процессом конструирования и уточнения спецификаций типов. Процесс конструирования основан на выявлении фрагментов спецификаций существующих компонентов и их дальнейшая композиция, уточняющая спецификацию требований. Для этого используются операции над типами, ведущими к трансформации их спецификаций - операции декомпозиции и композиции.
Исследования в области решеток типов и соответствующих алгебр имеет весьма продолжительную историю. Как правило, всегда имеется стремление к достижению компромисса между разумной выразительностью спецификаций и разрешимостью. В композиционном методе разрешимость приносится в жертву ради достижения полноты спецификаций. Благодаря полноте спецификаций, достигается хорошо обоснованный способ идентификации общих фрагментов спецификаций типов, обеспечивающей возможность их адекватной композиции и повторного использования.
Mili, Mili, Mittermeir [32] рассмотрели структуру репозитория спецификаций компонентов как информационно-поисковой системы. Проблема поиска компонентов рассматривается узко - для компонентов-функций, представляемых отношениями, содержащими все допустимые пары входных/выходных значений функций. Порядок на основе отношения уточнения, заданный на множестве функций, имеет свойства решетки. Решетка формируется посредством операций join и meet на отношениях, представляющих функции. Join (meet) представляют суммарную информацию (общую информацию), содержащуюся в таких отношениях.
Zaremski, Wing [53] предложили способ сопоставления сигнатур операций как механизм поиска спецификаций программных компонентов в их репозитории. Эту работу планируется расширить на случай представления спецификаций функций их пред- и пост- условиями. Отношение подтипа в предлагаемом проекте трактуется аналогично Liskov, Wing [ЗО].
В работах Thalheim [46, 47] предлагает подход к созданию схем больших баз данных на основе композиции более мелких компонентов. Для такой композиции компонентов используются 6 основных операций: композиция посредством типов-мостов; композиция посредством вложенных типов; композиция посредством добавления типов, поддерживающих этапы жизни объектов; композиция посредством добавления ортогональных измерений, таких как время, информация о качестве, и мета-характеристики; композиция посредством добавления записей об использовании объектов; композиция посредством добавления средств поддержки многоверсионности.
Известные методы компонентно-базированного проектирования (например, JavaBeans) конструируют агрегаты компонентов иначе, соединяя порты компонентов друг с другом, или рассматривая их взаимодействие на основе контрактов [31].
Используемый в диссертационной работе подход основан на исчислении спецификаций [24], разработанном в рамках проекта Синтез. Согласно этому исчислению, основной операцией декомпозиции является операция взятия редукта типа. Редукты являются базисом для дальнейшей композиции с целью получения спецификации уточняющую спецификацию требований.
Композиция выявленных фрагментов (редуктов) в спецификации, уточняющие спецификации требований, осуществляется посредством применения операций композиции спецификаций типов (операции meet и join) и посредством конструирования взглядов над классами. Подробное описание процесса выявление фрагментов компонентов и их композиция в спецификации уточняющие спецификации требований представлено в Главе 4.
Основными отличительными особенностями [23] предлагаемого в диссертационной работе композиционного подхода к проектированию ИС на основе интероперабельных сред информационных компонентов по сравнению с известными методами ОАП и методами компонентно-базированного проектирования являются: использование полных спецификаций, обеспечивающих корректность применения существующих компонентов в разрабатываемых системах; наличие репозитория (возможно распределенного) полных спецификаций существующих компонентов; поиск в репозитории компонентов, релевантных спецификации требований; выявление фрагментов компонентов, которые могли бы служить уточнением соответствующих фрагментов спецификации требований; различных конфликтов между спецификациями компонентов и требований; обеспечение композиции повторно используемых фрагментов в спецификацию, уточняющую спецификацию требований; поддержка доказательства правильности построенных уточняющих спецификаций с использованием формальных методов; конструирование реализации информационной системы в среде CORBA как интероперабельной совокупности адаптеров над существующими компонентами в Интернет (Интранет); возможность использования разработанного подхода для других платформ, например Web Services [13].
В дальнейшем, основные результаты диссертационной работы будут демонстрироваться на примере проектирования ИС Исследовательского Фонда на основе композиции двух существующих компонентов (Индустриальной Лаборатории и Университетских Грантов).
Спецификация требований ИС Исследовательского Фонда
В проектируемой ИС основной упор делается на управление финансами для научных исследований. Разрабатываемый исследовательский фонд управляет финансами, направленными на исследовательские проекты. Группа исследователей из одной или нескольких организаций подготавливает заявку и регистрирует ее в фонде для получения гранта. Данная группа составляет консорциум. Фонд назначает экспертов для оценки заявок и принимает решение о поддержке заявок.
Анализ текущего состояния технологических приемов проектирования систем из компонентов и исследований в этой области показывает, что в настоящее время не известны результаты, которые позволяли бы конструировать ИС как композицию компонентов, семантически интероперабельных в контексте спецификации требований, и уточняющую спецификацию требований. Показано, что для обеспечения возможности конструирования ИС из компонентов необходимо: 1. в целях достижения семантической интероперабельности компонентов создать алгоритмы онтологической интеграции контекстов спецификации требований и компонентов и поиска компонентов, онтологически релевантных спецификации требований в таком интегрированном контексте; 2. в целях сокращения различий в спецификации требований и спецификациях релевантных им компонентов, создать алгоритмы разрешения конфликтов между спецификациями компонентов и спецификациями требований; 3. в целях конструирования композиции фрагментов спецификаций компонентов, уточняющей спецификацию требований, создать алгоритмы выявления фрагментов компонентов, которые могли бы служить уточнением соответствующих фрагментов спецификации требований, и построения композиции таких фрагментов в спецификацию, уточняющую спецификацию требований.
Правила структурных преобразований
При проектировании ИС из готовых компонентов неизбежно возникают различные конфликты между спецификациями требований и компонентов [9, 10]. Конфликты могут возникать как из-за разных областей применения, так и из-за разного видения разработчиками представления спецификаций одной и той же ИС. Как было показано в Главе 1, подход к разрешению конфликтов между спецификациями, предлагаемый в диссертационной работе, основан на комбинации двух известных подходов в области интеграции схем баз данных - применение набора предопределенных правил структурных преобразований, и применение языка высокого уровня для описания функций разрешения конфликтов. Функции разрешения конфликтов задаются с помощью формул языка СИНТЕЗ. Язык формул является вариантом типизированного языка логики первого порядка. Для разрешения конфликтов структурного вида используются предопределенные правила. Они устанавливают релевантность путей спецификаций требований и компонентов, и задают правила построения функций разрешения конфликтов.
Существуют разнообразные виды структурных конфликтов, в том числе: конфликт имен; - использование разных имен для эквивалентных элементов (классов, типов, атрибутов, функций); Пример: типы Proposal и Submission имеют одинаковый смысл - использование одинаковых имен для различных элементов; Пример: атрибут пате для типов Proposal и Organization имеет абсолютно разный смысл использование различного набора атрибутов; - отсутствие атрибута типа компонента релевантного атрибуту типа спецификации требований; Пример: для атрибута contest_type типа Proposal нет релевантного атрибута в типе Submission - наличие вычислимых атрибутов (атрибутов типа спецификации требований, которым нет релевантных атрибутов типа компонента, но которые могут быть вычислены из атрибутов типа компонента); Пример: для атрибута termination _date типа Proposal нет релевантного атрибута в типе Submission, но он может быть вычислен из атрибутов startingjiate и duration использование различного набора параметров функций; использование различных типов атрибутов (параметров функций); Примеры: типом атрибута budget является тип integer, а типом релевантного ему атрибута reqjnoney - тип real. использование различного формата представления атрибутов (параметров функций); Пример: атрибут startingjiate может задаваться в одном случае в виде "день/месяц/год", а в другом в виде "месяц/день/год". использование разных уровней абстракции представления информации; Пример: в одном случае адрес задается прямо в типе Organization посредством атрибутов city и street, а в другом случае используется дополнительный тип Address, содержащий эти атрибуты. использование типов и атрибутов для представления одинаковых понятий. Пример: адрес организации может задаваться в виде отдельного типа Address с атрибутами city и street, а может в виде строкового атрибута address в самом типе Organization. Конфликты значений Существуют разнообразные виды конфликтов значений, в том числе: использование разных отношений на экстенсионалах классов (эквивалентность, включение, пересечение); Пример: множество объектов класса employee включается во множество объектов класса person. представление атрибутов в различных единицах измерения; Пример: атрибут budget может задаваться в одном случае в рублях, а в другом в долларах. использование в релевантных атрибутах разных значений по умолчанию; использование поддержки null значений с различной семантикой. Конфликты поведения Существуют разнообразные виды конфликтов поведения, например: использование различных ключей для релевантных классов; использование различных утверждений и ограничений целостности, связанных с релевантными атрибутами или типами; использование различных реализаций методов функций; 3.2 Описание преобразований на языке СИНТЕЗ Формальные параметры имеют вид: вид параметраХтипизированная переменная . Виды параметров бывают: + — входные, - - выходные, пусто - входные/выходные параметры. Функции, возвращающие результат в выражениях, должны включать выходной параметр, задаваемый типизированной переменной: -returns/указатель типа . Спецификации функций в языке СИНТЕЗ задаются с помощью логических формул. Для задания формул используется вариант типизированного языка логики первого порядка. Каждый предикат, функция, константа и переменная в формулах - типизированы.
В этом разделе предлагается подход к разрешению структурных конфликтов на основе поиска релевантных путей спецификаций требования и компонентов. Релевантность путей основывается на правилах структурных преобразований. Предлагаемый подход позволяет автоматизировать процесс поиска и разрешения структурных конфликтов между спецификациями требований и конкретных компонентов.
Предлагаемый алгоритм нахождения релевантных путей основан на поиске путей спецификации требований и компонентов между парами релевантных элементов спецификаций, удовлетворяющих правилам структурных преобразований. Наиболее часто используемой в алгоритме является процедура поиска пути между двумя заданными элементами спецификаций. Поэтому для эффективной работы алгоритма необходимо было разработать структуру представления (хранения) элементов спецификаций требований и компонентов с целью оптимизации работы данной процедуры. При выборе структуры также учитывались условия релевантности путей, описанные выше.
Было выбрано следующее представление: с каждым типом спецификаций требований и компонентов связывается дерево этого типа на основе разрезания циклов, возникающих при рекурсивных определениях типов, за счет введения дублирующих понятий. Разрезание циклов обеспечивает выполнение условия ацикличности релевантности путей. Определение 3.5 Дерево типа встроится по следующим правилам: корнем дерева является тип Т; вершинами дерева уровня i+1 являются типы {Ti+1} непосредственно связанные с произвольным типом Tj уровня і посредством атрибута-ссылки (Tj-a- Tj+) и не содержащиеся в пути между типами Г и Tt; ребрами дерева являются атрибуты-ссылки; листьями дерева являются атрибуты-значения типов.
Основной задачей данного алгоритма является обнаружение релевантных путей на основе описанных выше правил разрешения структурных конфликтов. Алгоритм основан на просмотре всех типов (вершин) спецификации требования, и попытках для каждого такого типа применения одного из приведенных правил. В процесс принятия решения относительно релевантности найденных путей возможно включение эксперта.
Спецификация композиционных типов и взглядов
Задача поиска фрагментов компонентов для использования в разрабатываемой системе является важной для композиционного проектирования. От решения этой задачи зависит масштабируемость метода по числу компонентов в Интернет (Интранет). Фрагменты спецификаций требований и компонентов задаются с помощью редуктов. Задача поиска фрагментов компонентов, уточняющих соответствующие фрагменты спецификации требований, сводится к задаче поиска общего редукта для типов спецификаций компонентов и требований.
Для определения наиболее общих редуктов для каждой пары онтологически релевантных типов Ts и Тг требуется найти максимальный набор А пар атрибутов (aTsi, aTrj), которые являются онтологически релевантными и имеют типы такие, что атрибут аТп можно использовать вместо aTsi. Процедура формирования такой коллекции атрибутов А для пары типов Ts и Тг- выглядит следующим образом: Алгоритм 4.1 Конструирование наиболее общего редукта. Данные: Ts - тип спецификации требований, Тг - тип компонента, RelevantElementsList - список релевантных элементов, RelevantPathsList -список релевантных путей. Результат: А - набор пар атрибутов Процесс: 1. для каждого атрибута as типа спецификации требований Ts; 2. если данному атрибуту релевантен только один атрибут аг типа компонента, то: 2.1 если тип атрибута аг является подтипом типа атрибута as, то пара этих атрибутов (as, аг) добавляется в А; 2.2 если тип атрибута аг не является подтипом типа атрибута as, но существует функция преобразования значений f, входным параметром которой является аг, а тип выходного параметра является подтипом типа атрибута as, то пара (as, f) добавляется в А; 3. если данному атрибуту релевантны несколько атрибутов типа компонента, и существует функция преобразования значений f, входными параметрами которой являются эти атрибуты, а тип выходного параметра является подтипом типа атрибута as, то пара (as, f) добавляется в А; 4. если существует пара релевантных путей вида Ts...as Tr...ar, при этом fr - функция разрешения соответствующего конфликта, тогда пара (as, f) добавляется в А; 5. конец цикла; 6. для каждой функции (функционального атрибута) f типа спецификации требований Ts; 7. если данной функции релевантна только одна функция f типа компонента, то пара этих функций ifs,f) добавляется в А, если на сигнатурах этих функций выполняются следующие условия: - они имеют одинаковое количество попарно релевантных входных и выходных параметров; 103 - для пары входных параметров, тип параметра функции fTsi является подтипом типа параметра функции fTrj (контрвариантность входных параметров); - для пары выходных параметров, тип параметра функции fTsi является супертипом типа параметра функции fTrj (ковариантность выходных параметров). 8. конец цикла.
Основной задачей этапа конструирования является спецификация взглядов (композиционных типов) уточняющих классы (типы) спецификации требований. В предыдущем разделе было показано, как найти и специфицировать фрагменты компонентов, которые могут быть использованы в разрабатываемой системе. Используя полученные фрагменты (в виде наиболее общих редуктов) на самом нижнем уровне, конструируется иерархию взглядов (композиционных типов) посредством композиции классов/взглядов (типов/редуктов) более низких уровней соответственно. При этом конечный взгляд (композиционный тип) должен уточнять соответствующий класс (тип) спецификации требований. На Рис. 4.1 показана иерархия спецификаций для случая двух классов (справа) и двух типов (слева) компонентов.
При реализации программных систем задаются только спецификации типов. Композиция редуктов строится таким образом, чтобы покрыть как
Тип T является более абстрактным, чем тип U, если тип U является уточнением типа Т можно больше атрибутов типа спецификации требований. Если при этом некоторые атрибуты остаются не поддержанными, создается новый тип, содержащий такие атрибуты. В дальнейшем, разработчик должен реализовать этот тип. Композиция редуктов осуществляется посредством операции join. При разработке информационных систем главными являются классы. В зависимости от требований при композиции используются такие операции как, например, операции объединения, пересечения или соединения классов. При объединении классов тип экземпляра конструируемого взгляда образуется посредством операции meet, применяемой к типам экземпляров классов-операндов. При пересечении (соединении) классов тип экземпляра конструируемого взгляда получается посредством операции join, применяемой к типам экземпляров классов-операндов.