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

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

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

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

Рощин Михаил Александрович

ПРОЕКТИРОВАНИЕ МНОГОКОМПОНЕНТНЫХ ПРОГРАММНЫХ СИСТЕМ НА ОСНОВЕ ГИБРИДНЫХ ЛОГИЧЕСКИХ МОДЕЛЕЙ

05 13 01 — «Системный анализ, управление и обработка информации» 05 13 12 — «Системы автоматизации проектирования»

АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата технических наук

□□31746 11

Вочгоград- 2007

003174611

Работа выполнена на кафедре Системы автоматизированного проектирования и поискового конструирования Волгоградского государственного технического университета

Научный руководитель доктор технических наук, профессор

Камаев Валерий Анатольевич

Официальные оппоненты доктор технических наук, профессор

Андрейчиков Александр Валентинович,

доктор технических наук, профессор Ковалев Сергей Михайлович

Ведущая организация Научно-исследовательский институт

конструкторско-технологической информатики РАН г Москва

Защита состоится 8 ноября 2007 г в часов на заседании

диссертационного совета Д 212 028 04 Волгоградскою государственного технического университета по адресу 400131, г Волгоград, пр Ленина 28

С диссертацией можно ознакомиться в библиотеке Волгоградского государственного технического университета

Автореферат разослан 5 октября 2007 г

Ученый секретарь *

диссертационного совета ^Водопьянов В И

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

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

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

Как отмечает И А Барков в своих работах, в автоматизированном проектировании проблема согласования разнообразных проектных этапов и компонентов трансформируется в проблему интеграции на инвариантной основе структур данных и процедур решения проектных задач В настоящее время обоснованно применяются логические модели для представления знаний при создании так называемых интеллектуальных САПР, которые характеризуются возможностью принятия проектных решений при использовании инвариантных к проблемным областям алгоритмов Однако, существующие логические модели описания программных компонентов (OWL-S, WSMO, WSDL-S, FLOWS) строятся только с учетом внутренних характеристик и свойств, независимо от возможных зависимостей и трансформации значений в различных средах

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

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

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

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

2 Разработка логической модели требований к разрабатываемому программному обеспечению,

3 Разработка модели для представления различных по природе знаний о характеристиках программных компонентов с учетом их семантики,

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

5 Разработка инвариантной программной среды, предназначенной для автоматизации процесса проектирования программных систем

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

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

Реализация результатов работы. Теоретические результаты диссертационной работы реализованы в виде программного комплекса «SeMo», позволяющего проверить работоспособность разработанных моделей и алгоритмов

Результаты работы внедрены в технологический процесс компании Siemens (отдел СТ SE 2) при создании программных комплексов

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

Достоверность полученных результатов подтверждается успешным применением разработанного программного комплекса «SeMo» к решению задачи автоматизации начальйого этапа проектирования программных систем в компании Siemens AG, СТ SE 2 (Акт внедрения от 25 сентября 2007 года)

Научная новизна состоит в том, что разработана новая технология автоматизированного проектирования программных систем, включающая в себя

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

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

3 Методику построения логической модели системы требований, основанную на взаимодействии онтологии предметной области и логической модели семейства продуктов программных систем,

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

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

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

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

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

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

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

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

3 Логическая модель системы требований, которая связывает онтологию предметной области с описанием семейства программных продуктов,

4 Семантическая модель программных компонентов,

5 Алгоритмическое и программное обеспечение, которое повышает эффективность начального этапа проектирования многокомпонентных программных систем

Апробация работы. Oci овные положения диссертации докладывались и обсуждались на следующих российских конференциях Ш-й и IV-й Международный научно-практический семинар «Интегрированные модели и мягкие вычисления в искусственном интеллекте», Коломна, 15-17 05 2005 и 28-30 05 2007, И-я, III-я и IV-я Международная научно-техническая конференция «Интеллектуальные системы (AIS' 05, 06, 07), Интеллектуальные САПР», Дивноморское, 310 09 2005, 2006 и 2007 гг, научно-практический семинар, «AIS-ADM' 07», Springer LNCS, Санкт-Петербург, 3-5 06 2007

Также, основные положения диссертации докладывались и обсуждались на следующих зарубежных конференциях Международный семинар «Frameworks for Semantics in Web Services», консорциум W3C, Инсбрук, Австрия, 9-10 06 2005, 1-й научно-практический семинар «Workshop on Product Lines & Vanability», Siemens AG и Мюнхенский тех университет, Мюнхен, Германия, 9 05 2006, научный семинар будущих кандидатов и докторов наук на 20-й Европейской конференции по ОО программированию (ЕСООР' 06), Нант, Франция, 3-7 07 2006, 32-я конференция «Euromicro Conference on Software Engineering and Advanced

Applications, Component-based Software Engineering track», IEEE, Дубровник, Хорватия, 28 08 -1 09 2006, международная конференция «Information Research and Applications l TECH 2007», Варна, Болгария, 25 06-1 07 2007

Публикации. Основное содержание диссертации нашло отражение в 17 опубликованных научных работах, в том числе в 1 статье в журнале из списка ВАК, в 9 зарубеж публикациях на англ языке, из них 1 статья в сборнике работ по искусственному интеллекту «LNAI» изд-ва Springer Verlag (Германия), 1 статья в сборнике работ по компьютерным технологиям изд-ва IEEE (США), 1 статья в списке рекомендованных к прочтению статей на сайте межд консорциума W3C, 1 статья в межд журнале «Information Theones and Applications»

Структура и содержание диссертационной работы. Диссертационная работа состоит из введения, четырех глав с выводами, заключения, библиографического списка из 112 наименований, и приложений Общий объем работы 107 страниц, в том числе 24 рисунка и 10 таблиц

Автор выражает глубокую благодарность научному консультанту доктору технических наук, профессору Заболеевой-Зотовой Алле Викторовне за оказанное содействие и поддержку в ходе выполнения диссертационной работы

СОДЕРЖАНИЕ РАБОТЫ

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

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

В области создания САПР для программного обеспечения выделяются работы А В Андрейчикова, А В Григорьева, M Грувера, В А Камаева, В П Корячко, В M Курейчика, H Г Малышева, В Г Митрофанова, И П Норенкова, А В Петрова, В И Потапова, Т П Проскурова, У X Сайдиева, H В Чичварина и многих других Во всех этих работах отмечается, что концептуальной основой автоматизации проектирования программных систем и решения задач анализа и синтеза являются накопленные проектные знания В настоящее время в этой области собрано достаточное количество информации о существующих

методах построения точных архитектур программных систем, шаблонов поведения и существующих компонентах ПО, предназначенных для повторного использования при последующей автоматизации всего процесса проектирования Однако, до сих пор, время необходимое на композицию архитектурного решения на начальном этапе проектирования программных систем, составляет до 50% от общего времени, затрачиваемого на реализацию системы Существующие системы САПР для ПО строятся на CASE-технологии, которая представляет собой совокупность методологий анализа, проектирования, разработки и сопровождения сложных многокомпонетных систем Существующие CASE-системы, среди которых наиболее распространенными являются Rational Rose, ARIS Toolset, MS Visio, значительно автоматизируюi процесс проектирования ПО Но, как показал анализ (см Таблицу 1), данные системы предлагают автоматизированные решения только некоторых подзадач, таких как документирование требований (с помощью ограниченного естественного языка или графических методов), описание программных компонентов и их поиск по ключевым словам (основанное на моделях CORBA, СОМ++, OSGi Bundles, WSDL и др), построение архитектуры программной системы на основе выбранных шаблонов (технология шаблонов проектирования)

Таблица 1 Анализ существующих CASE-систем

Проектирование ПО Существующие CASE-систечы

Rational Rose ARTS Toolset BPwin + ERwin

Описание предм области * UMI диаграммы • Рачличные граф методы • Спепификаиия 1DFF

Специфика-ция требований • Докумеширование • Use case диагр • Документирование • Докумеширование • Use case диагр

Анализ 1рсбований Выпочняе1ся аналитиком / архитектором ПО Выпотняется аналишком / архитектором ПО ВЫ1ЮЛ11ЯС1СЯ аналитиком / архитектором ПО

Композиция архитуктур решения • Выполняется аналитиком / архитекюром ПО • U ML диаграммы • Выполняется аналитиком / архитектором ПО • • Выполняется аналитиком / архшектором ПО • UML диаграммы

Верификация / тестирование полученной архитектурной модели Выполпяс 1 ся аналитиком / архитектором ПО / разработчиками • Выполняется аналитиком / архитектором ПО / разработчиками • Модуль форм верификации Выполняося аналитиком / архитектором ПО / разработчиками

Доступ к библиотеке компонентов • Ин герфеис доступа • Поиск по кчюч словам • Интерфейс доступа • Поиск по ключ словам • Инт ерфейс доступа Поиск но киоч счовам

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

особенностях процесса проектирования программных систем, возникающих при композиции архитектурного решения

1 Требования заказчика, формализуемые на начальном этапе проектирования, описываются с помощью ограниченного естественного языка и с помощью графических методов (И-ИЛИ деревья, направленный граф),

2 Аналитик (проектировщик, архитектор) принимает архитектурное решение, основываясь на знании существующих шаблонов проектирования и собственном опыте их применения,

3 Наличие уже реализованных программных компонентов в проекте архитектуры будущей системы зависит от наполнения библиотеки готовых компонентов и времени, затраченного на поиск и анализ подходящих компонентов аналитиком,

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

5 Время и стоимость тестирования программной системы зависит, прежде всего, от учтенных в проектном решении нефункциональных свойств программных компонентов (время реакции, время ответа, производительность и др ) и их зависимостей

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

Таблица 2 Сравнение логических моделей прогр компонентов

Тип модели Реализация

OWL-S Семантическая сеть, Пр0д}кшгониая модель Язык описания онтологии OWI , Язык описания правил SWRL

WSMO Фреймовая модель Я1ык описания фреймов F-l ogic

TLOWS Продукционная мо цель, Логическая модель Логика первого порядка

WSDL-S Семантическая сеть Язык описания онтологии OWL

Были определены основные требования предъявляемые к выбору

метода представления знаний

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

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

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

Представление знаний, с учетом возможной трансформации характеристик объекта описания во время взаимодействия с окружающей средой, нашло отражение в работах Г С Осипова, Ю Н Жданова, А В Андрейчикова Основной вывод, который был сделан в их публикациях,

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

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

Модечъ интерпретации результатов вывода чогическш систем строится на основе языка для описания гибридных логических моделей Язык описания гибридных логических моделей строится на основе выбранных языка описания онтологии (Description Logic), языка описания правил (SWRL), модальной логики К„

Грамматика языка описания гибридных логических моделей представлена следующим образом

Class J_ | Г | class Name \ Class \ Class n Class | Class <j Class |

-i Class | V relation Class | 3 relation Class | > number relation \ < number relation где Nr и N( - непересекаемые множества имен отношений и классов, N -множество натуральных чисел, Class — это терм / класс, className с- Nc — имя класса, re NR - имя отношения между классами, number е N -натуральное число

assertion a Class | (a, b) relation

где /V/ - множество имен объектов классов, assertion - выражение, определяющее принадлежность объекта класса к какому то определенному классу, и задающее отношения между объектами классов, a, b е /V/ — объекты классов

rule^ => {Condition consequence)'

Condition atom \ atom л Condition

consequence atom

atom Class(x) \ relation(x, у) \ sameAsfx, у) | differentFt от (x, y)

где rule — правило / зависимость значений объекта класса, condition -предусловие правила; consequence - последствие правила, х, у — переменные, объекты классов или конкретные значения данных, sameAs -отношение эквивалентности, differentFrom — отношение различия, atom — атомарное выражение

ProbabilityExpr Class | ProbabilityExpr n ProbabilityExpr \

Pr obabilityExpr и ProbabilityExpr | -. ProbabilityExpr | [m] ProbabilityExpr | <m> ProbabilityExpr где Mn- множество модальных параметров, m s M„- модальный параметр, ProbabilityExpr - модальная фрмула

Модель интерпретации результатов вывода логических систем на основе языка описания гибридных логических моделей строится с помощью оператора интерпретации языка / = (Д7, •'), где Д7 - непустое множество интепретаций, - функция интерпретации, которая приписывает каждому имени класса className е Nc подмножество className1^д/ (те имена класса интерпретируются как множества объектов) и каждому имени отношения relation еNR бинарную функцию relation'^ Л7 х Д' (имена отношения интерпретируются как бинарные отношения) Таким образом, функция интерпретации индуктивно определяется как 1 ' = 0, Т 1 = Д1, (Class 1 п Class2) ' = Class l' гл Class2',

(Class 1 и Class2)' = Classl' и Classi, Class) 7 = A'\ Class', (V relation Class)' = {d ^ A71 Ve e Д' (d, e) e relation' => ее Class'}, (3relation Class)' = {d ^ a' | Эе e д' (d, e) ^ relation a e^ Class'}, 0- number relation)' = {d e \ [{e <- A71 (d, e) relation'}7 - и A number relation)' = {d e A7 j [ {e e Д' | (d, e) e relation'} ] - n }

Интерпретация I для выражений, определяющих принадлежность объекта класса к какому то определенному классу, определяется следующим образом для каждого имени объекта класса a eNt, интерпретация определяется как а'е Д7, таким образом, если а* Ь, то а'ф b' Интерпретация правил на значениях объектов классов строится следующим образом

(Class(х))' = (х = а) -» (a' eClass'), (relation(x, у))' = (х = а л у = Ъ) -> (a', b ' € relation'), (sameAs (х, у)) ' = Six) = S(y), (differentFrom(x, у)) ' = S(x) ф S(y) где S(x) и S(y) - функция интерпретации хну соответственно

Интерпретация модальных выражений описывается с помощью структур модели Крипке К = (W, ж, R), где W — множество возможных состояний, ж — функция определения, которая определяется как ж W х А —> {0, ]}, R - множество отношений доступности, которые определяются с для каждого т, как R,„ сг W х W Модальное выражение является выполнимым - К, w (=Кп ProbabilityExpr, если выполняется одно из следующих условий

К, w Class тогда и только тогда, когда n^(Class) = /

К, w (=Kn ProbabilityExprl n ProbabilityExpr2 тогда и только тогда,

когда К, w (=ь.п ProbabilityExprl и К, w (=кп ProbabihtyExpr2 К, w |=кп ProbabilityExprl \j ProbabihtyExpr2 тогда и только тогда, когда К, w [=кп ProbabilityExprl или К, w f=Kn ProbabilityExpr2 К w \=к„ [т] ProbabilityExpt тогда и только тогда,

когда Vw'e Этаких, что (w, w')eRm, имеем К, w' ProbabilityExpr

К, w |=л„ <т> ProbabihtyExpr тогда и только тогда,

когда 3w 'е Этаких, что (w, w')^Rm, и К, w' ProbabihtyExpr

Модальное выражение является тождественным, если в каждом состоянии (Vwé W) и для всех структур модели Крипке (у К) оно является выполнимым (обозначается как |=Kn ProbabihtyExpr)

Интерпретация является моделью описываемой области, если выполняются следующие условия

1 Если и только если className' = Class' для всего множества определений классов className=Class,

2 Если а' с Class' для всего множества выражений типа a Class и если (a1, b1) е relation' для всего множества выражений типа (а, Ъ) relation

Например Л' = (а, Ь, с, d}, интерпретация классов А и В определена как А1 = {a, b}, В1 — {b, d}, интерпетация отношений s и г определена как s' = {(b, с), (с, с)}, г = {(a, b), (a, d), (.b, d)} Тогда, интепретация следующих классов выглядит таким образом f-vf/ = А' \ а' = Д' \ {а, Ъ} = {с, d}, Ы П В)' = {с, d} П {b, d} = {d}, (Vг В)' = {а, Ъ, с, d}, (У, А)'= {с, dj, (Is -Л/= {b, с), (3s А)'= {} = 0

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

Этап 1 Осуществляется определение основных терминов используемых в данной предметной области в виде классов, их иерархии относительно друг друга и иных отношений между ними Таким образом, строится онтология предметной области Данный уровень модели является основным в спецификации программных компонентов (конструкторская спецификация) и отвечает за конструкторскую семантику используемых характеристик Все возможные варианты интерпретации характеристик из данной предметной области должны быть описаны Данные знания могут быть экспортированы из уже существующих моделей программных

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

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

Этап 3 Формируются статические данные о программном компоненте Данные сведения могут быть транслированы из уже существующих моделей, таких как СОКВА, \VSDL, СОМ++, 0501 и др Используется язык описания онтологий

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

В третьей главе описываются логическая модель системы требований и семантическая модель программных компонентов

Для построения логической модели системы требований на вход подается описание предметной области В данной диссертационной работе изучаются так называемые семейства продуктов программного обеспечения, обладающие общими и вариативными характеристиками Описание строится на основе модели, представленной на Рис 1 Данная модель описывает семейства продуктов программного обеспечения как совокупность всех возможных и необходимых для последующей реализации конечного продукта характеристик и их значений, описывая свойства, типы и варианты использования Помимо функций, эксперт моделирует семейство программных продуктов с помощью нефункциональных характеристик системы, таких как цвет, время реакции и т п Каждый вариант при необходимости соединяется с помощью зависимостей (отношения требования и/или исключения) с уже существующими и описанными характеристиками Так же задается причина выбора той или иной характеристики В результате строится графовая модель описания семейства программных продуктов

Рисунок 1. Модель описания семейства программных продуктов Логическая модель системы требований формализована с помощью языка описания онтологий:

Property с Т; Requirement с Property; Component с Т; SoftwareComponent с Component; WebService с SoftwareComponent; SoftwareSystem с 3 consistsOf. Component; Variation с 3 belongsTo.VariationPoint; Variation?oint с 3 belongsTo.Component;

Requirement e 3 specifiedBy.Characteristic; Characteristic с Г; Requirement(?requirement) n specifiedBy(?requirement, Characteristic1) n где Property — класс представления свойств, Requirement - класс представления требований, Variation ~ является характеристикой будущей сис темы, VariationPoint - причина выбора характеристики.

Условие выбора необходимой характеристики описывается с помощью следующей офрмулы:

Property (?property) гл specifiedBy (?property, Characteristic 1) matches(?requirement, ?property).

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

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

первичную задачу идентификации тождественных характеристик программных компонентов для последующего автоматического сравнения, основанного на логическом выводе Например, определяет, что значение характеристики «Время задержки» сервиса А идентично значению характеристика «Время выполнения» сервиса Б в условиях работы в окружающей среде С

Знания Методикапрелст я Яшкопи^алия

Рис 2 Семантическая модель программных компонентов Семантическая модель программных компонентов представлена на Рис 2 Формально она описывается с помощью тройки понятий SM — (О, DM, SM), где О - онтология, отвечающая за словарь конструкторского понятия, DM - динамический уровень модели, описывающий возможные транформации характеристик программных компонентов, SM — статический уровень семантической модели, отвечающий за описание неизменяемых характеристик во времени и пространстве

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

Алгоритм автоматизации начального этапа проектирования строится с помощью функции Configuration = F (Requirements, SemanticModels, DomainOntology), где Configuration — это получаемая в конечном итоге конфигурация (архитектура) будущей системы для последующего тестирования и реализации, Requirements — логическая модель системы требований, SemanticModels - семантические модели доступных программных компонентов, DomainOntology - описание окружающей среды, которое включает в себя спецификацию условий внедрения и отношений к уже внедренным компонентам, также дополнительную информацию Алгоритм представлен на Рис 3

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

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

1 3 Получение необходимой конфигурации будущего продукта в виде

множества необходимых характеристик

2 Идентификация характеристик программных компонентов и их значений относительно предъявляемых требований

2 I Сравнение названии характеристик с помощью синтаксических

методов,

2 2 Сравнение названий характеристик с помощью онтологических методов

2 2 1 Проверка на отношение характеристики к требованию в роли подкласса с помощью онтологических методов логического вывода,

2 2 2 Проверка на эквивалентность характеристик программных компонентов и предъявляемых требований с помощью онтологических методов логического вывода

2 3 Анализ значений выбранных характеристик относительно требуемых

показателей

2 3 1 Проверка статически заданных параметров, 2 3 2 Проверка динамически заданных параметров

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

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

3 Верификация всей полученной системы на непротиворечивость

3 1 Верификация всей полученной системы относительно требований,

3 2 Проверка полученной системы относительно условий окружающей среды

Для алгоритмизации автоматизированного логического вывода используются правила приведения модальной логики К„ к языку описания онтологий

Модальный параметр т — имя отношения г, [т] РюЪаЬйЩ'Ехрг - V г,„ РгоЬаЬЛпуЕхрг, <т> РгоЬаЬй^Ехрг - 3 г„, РгоЬа 1пк¡уЕхрг

Для проведения более сложных алгоритмических расчетов язык описания онтологии приведен к логике первого порядка

a Class (a, b) relation Class I c Class2 Class 1 n Class2 Class 1 u Class2 v relation Class 3 relation Class -i Class

- Class (a)

- relation(a, b)

- V x Class l(x) С las s 2 (x)

- Class l(x) л С lass 2 (x)

- Class l(x) v Class2(x)

- ^y (relation(x, y) Class(y))

- В y (relation (x, у) л Class (y)) --1 СI as s (x)

САрх-ное N решение J

решение.,

Рисунок 3 Композиция архитектурного решения Принципиальное отличие разработанного программного комплекса «веМо» от существующих СА8Е-систем состоит в сквозной автоматизации всего начального этапа проектирования программною обеспечения «ЭеМо» позволяет провести этап анализа и синтеза

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

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

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

3 Автоматизированный анализ и синтез требований, основанный на разработанной логической модели системы требований, относительно существующих семантических моделей программных компонентов,

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

5 Автоматизированная верификация полученных решений на основе задач логического вывода

Сравнение разработанного программного комплекса с существующими САБЕ-системами представлено в Таблице 3

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

3000

I 2500 т

I

£ 2000

! - !

/

—я — без исп-ния "веМо"

? 1500

т

1 1000

X

— с исп-нием "БеМо"

0 4—г

Кол-во пр компонентов

Рис 4 Время, затрачиваемое в зав-ти от кол-ва компонентов

Таблица 3 Сравнение «SeMo» с сущ CASE-системами

Эшпы проектирования ПО САПР для программного обеспечения

Существующие CASE- системы Програм комплекс «ЗеМо»

Анализ предметной области • Графические методы описания бизнес-процессов, • Методика концептуального моделирования баз данных, ■ словари предметной области • -II- • Онтология предметной области

Спецификация компонентов CORBA, СОМ ++, EJB, OSGi Bundles, и др • -II- • Разработанная семаншческая модель программных компоненюв

Анализ и синтез прогр кочионешов По ключевым словам • -II- • Семантический анализ и интерпретация функциональных и нефункциональных характеристик, • Анализ зависимостей и правил образования характеристик с учетом их возможной трансформации

Спецификация требований ■ 1 рафические методы, • Ограниченный естеств язык • -//- • Разработанная лмическая модель системы требований

Анализ требований Выполняется аналитиком / архитектором ПО . -//- • Автоматизированный семантический анализ логической модели системы требований с помощью онтологии предметной области

Композиция архитуктур решения Выполняется аналитиком / архитектором ПО • -II- • Автоматизированная композиция архитектурного решения, основанная на анализе и синтезе онтологии предметной области, логической системы требований и семантических моделей сущесшующих про1раммных компонентов

Верификация / тестирование полученной архитектурной модели Выполняется анали iukom / архитектором ПО У разрабо гчиками • -II- • Автоматизированная верификация полученных решений на основе задач логического вывода

Показатели эффективности представлены на Рис 4 Эффективность внедрения предложенной технологии достигается при очень большом

количестве программных компонентов (> 1000), готовых для повторного использования

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

ОСНОВНЫЕ РЕЗУЛЬТАТЫ РАБОТЫ Основная цель повышения эффективности проектирования многокомпонентных программных систем за счет обеспечения начального этапа проектирования средствами моделирования, основанными на гибридных логических моделях, была достигнута Повышение эффективности заключается в существенном сокращении времени на построение архитектуры и поиск уже существующих компонентов (от 10% до 50%, в зависимости от размера библиотеки программных компонентов) и сокращении стоимости самой реализации (от 20% до 40%, в зависимости от размера библиотеки программных компонентов) Также, необходимо отметить, что результаты композиции архитектурного решения являются согласованными с предъявляемыми требованиями и характеристиками окружающей среды, с учетом функциональных и нефункциональных свойств программной системы

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

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

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

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

4 Разработана методика представления знаний о программных компонентах, с учетом трансформации функциональных и нефункциональных характеристик В соответствии с данной методикой,

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

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

6 Разработана семантическая модель для представления различных по природе знаний о характеристиках программных компонентов Модель построена посредством разработанного языка описания гибридных логических моделей на основе созданной автором методики динамического представления знаний о программных компонентах,

7 Разработано алгоритмическое обеспечение автоматизации процесса проектирования программных систем Процесс проектирования основан на разработанной технологии, реализующей три этапа проектирования программных систем анализ требований (на основе разработанной логической модели системы требований), поиск существующих компонентов (на основе разработанной семантической модели программных компонентов), композиция архитектурного решения (на основе разработанных алгоритмов),

8 Разработан и апробирован в 3-х предметных областях программный комплекс «SeMo» автоматизации начального этапа проектирования программного обеспечения, реализующий предложенные модели, методики и алгоритмы

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

ОПУБЛИКОВАННЫЕ РАБОТЫ 1 Рощин М А Подход для автоматизации проектирования программного обеспечения / М А Рощин // Известия ВолгГТУ Серия «Акутальные проблемы управления, вычислительной техники и информатики в

технических системах» межвуз сб науч ст / ВолгГТУ - 2007 — Выи 3, № 9 - с 114-123 (В журнале, рекомендованном ВАК)

2 Roshchin М Semantic Modelling for Product Line Engineering / M Roshchin, P Graubmann, V Kamaev // International Journal "Information Theories and Applications" / ITHEA International Scientific Society (Bulgaria) - Sophia, 2008 - Vol 15 -pp 5 (готовится к выходу)

3 Roshchin M Semantic Modelling in Agent-based Software Development / P Graubmann, M Roshchin // Lecture Notes in Artificial Intelligence 4476 Autonomous Intelligent Systems Agents and Data Mining / Springer-Verlag Berlin Heidelberg, 2007 - pp 94-99 - Англ (Springer)

4 Roshchin M Semantic Annotation of Software Components [по матер 32nd Euromicro Conf on SEAA, Aug 29 - Sep/ 1, 2006] / P Graubmann, M Roshchin //IEEE Computer Society - 2006 - App - с 170-174 - Англ (IEEE)

5 Roshchin M Logic Models in Software Product Lines / M Roshchin, P Graubmann, V Kamaev // Интеллектуальные системы (AIS'07) Интеллектуальные CAnP(CAD-2007) тр Междунар н -техн конф, Дивноморское, 3-10 сент 2007 / Таганрог гос радиотехн ун-т и др -М , 2007 - Т 4 - с 21-27 - Англ

6 Roshchin М Semantic Modelling for Product Lme Engineering / M Roshchin, P Graubmann, V Kamaev // Information Research and Applications i TECH 2007 proc (Bulgaria), 26-30 06 2007 / FOI ITHEA -Sofia, 2007 Vol 1 -p 143-148 - Англ

7 Рощин M А Логическое моделирование характеристик программных компонентов / А В Заболеева-Зотова, М А Рощин // Интегрированные модели и мягкие вычисления в искусственном интеллекте сб Науч Тр IV Межд Н -пр Сем , Коломна, 28-30 06 2007 / МГТУ им Н Э Баумана и др - Коломна, 2007 - Т1 -с 141-148

8 Рощин М А Автоматизация первоначального этапа проектирования программных систем / М А Рощин, А В Заболеева-Зотова, В А Камаев // Открытое образование прилож к журн по матер XXXIV междунар конф и дискусс науч клуба, Ялта-Гурзуф, 20-30 05 07 Инф технологии в науке, образ, телеком и бизнесе (IT+SE'07) - 2007 -[Б/н] -с 73-75

9 Roshchin М Ontology Engineering for Intellectual Agents / M Roshchin // II-я Международная конференция по когнитивной науке [сб тр ] / С -Петерб Гос Ун-т - СПб, 2006 - с 558-559 - Англ

10 Roshchin М Semantic Modelling for Variabilities [Электронный ресурс] / Roshchin М // The 20th annual European Conference on Object-Oriented Programming (ECOOP 2006), Nantes, France, 3-7 July 2006 / University of Nantes etc - Nantes, 2006 - p 1-5 - Англ - Режим доступа http //2006 ecoop org/

11 Рощин M А Семантический подход для автоматизации создания композитных систем / M А Рощин, Ю А Орлова // Интеллектуальные системы (AIS'06) Интеллектуальные САПР(СА1>2006) тр Междунар н-техн Конф, Дивноморское, 3-10 сент 2006 / Таганрог Гос Радиотехн. Ун-т и др - M , 2006 - Т.1 - с 433-438

12 Graubmann P. Web Services Annotation and Reasomng [Электронный ресурс] / P Graubmann, E Pfeuffer, M Roshchin // W3C Workshop on Frameworks for Semantics in Web Services proc Of Int Conf - Innsbruck (Austna), 2005 -pl-5 - Англ - Режим доступа www w3c org

13 Рощин MA Использование Semantic Web технологий для автоматизации создания программных систем/ M А Рощин // Интеллектуальные системы (AIS'05) Интеллектуальные САПР (CAD-2005) тр Междунар H-техн Конф, Дивноморское, 3-10 09 05 / Таганрог гос радиотехн. ун-т и др -М,2005 -Т2 -с 140-141

14 Рощин M А Использование Semantic Web технологий для создания автоматизированного конвейра программных систем / M А Рощин, А В Заболеева-Зотова, В А Камаев // Информационные технологии в науке, образовании, телеком И бизнесе (IT+S&E'05), майская сессия матер XXXII Междуар конф и III Междунар конф молодых ученых, Ялат-Гурзуф (Украина), 20-30 05 05 - Запорожье, 2005 -с 121-122

15 Рощин MA Использование Semantic Web технологий при аннотировании программных компонентов [по матер 11 Междунар Конф KDS 2005, Варна, Болгария, 20-30 06 05] / M А Рощин, А В Заболеева-Зотова, В А Камаев // Information Theones and Applications прложение -2005 -Vol2,№l -с 171-173

16 Рощин MA Применение описательной логики при аннотировании компонентов / M А Рощин, А В Заболеева-Зотова, В А Камаев // Интегрированные модели и мягкие вычисления в искусственном интеллекте сб Науч Тр III Межд Н-пр Сем , Коломна, 15-17 05 2005 /МГТУим Н.Э Баумана и др -М,2005 - с 101-105

17 Рощин MA Инновационный подход при аннотировании программных компонентов / M А Рощин, В А Камаев // Новые информационные технологии Разработка и аспекты применения тр VII всерос Науч Конф Междунар Участ , 25-26 11 04/ Таганрог гос радиотехн ун-т и др - Таганрог, 2004 - с 228-231

Подписано в печать 03 10 2007 г Заказ №339 Тираж 100 экз Печ л 1,0 Формат 60 х 84 1/16 Бумага офсетная Печать офсетная

Типография РПК «Политехник» Волгоградского государственного технического университета 400131, г Волгоград, ул Советская, 35

Оглавление автор диссертации — кандидата технических наук Рощин, Михаил Александрович

содержание. перечень сокращений и условных обозначений. введение.

глава 1. состояние вопроса и постановка задачи исследования.

1.1 Концептуальное проектирование многокомпонентных программных систем.

1.2 Существующие технологии и методы начального этапа проектирования многокомпонентных программных систем.

1.2.1 Системный анализ требований.

1.2.2 Поиск существующих компонентов.

1.2.3 Композиция архитектурного решения.

1.2.4 Выводы по современному состоянию вопроса проектирования ПО.

1.3 Особенности представления знаний на начальном этапе проектирования программных систем.

1.4 Обзор существующих логических систем представления знаний.

Выводы. Постановка задачи исследования.

глава 2. разработка языка, модели и методики для описания гибридных логических моделей.

2.1 Спецификация программных компонентов на основе гибридных логических моделей

2.2 Модель интерпретации результатов вывода логических систем.

2.2.1 Язык описания гибридных логических моделей.

2.2.2 Модель интерпретации результатов вывода.

2.3 Методика динамического представления знаний.

Выводы по Главе 2.

глава 3. гибридные логические модели описания системы требований и программных компонентов.

3.1 Логическая модель системы требований.

3.2 Семантическая модель программных компонентов.

3.2.1 Семантическая составляющая в спецификации программных компонентов.

3.2.2 Описание семантики с помощью гибридной логической модели.

3.2.3 Пример спецификации программных компонентов с помощью семантической модели

Выводы по главе 3.

глава 4. разработка алгоритмического и программного обеспечения автоматизации начального этапа проектирования.

4.1 Ал горитмическое обеспечение.

4.1.1 Алгоритм композиции архитектурного решения.

4.1.2 Оценка алгоритма.

4.2 программный комплекс автоматизации начального этапа проектирования «SEMO»

4.2.1 Требования к разрабатываемой системе.

4.2.2 Архитектура.

4.2.3 Программный комплекс «SeMo».

4.2.4 Интерфейс пользователя «SeMo».

4.2.5 Тестирование и оценка эффективности «SeMo».

ВЫВОДЫ ПО ГЛАВЕ 4.

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

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

Автоматизация проектирования, в том числе методов формирования и детального анализа программной системы перед ее реализацией (этап поискового конструирования), на сегодняшний день является наиболее сложной и трудно формализуемой задачей в теории многокомпонентных программных систем и инженерии ПО. В развитии автоматизации проектирования заметную роль сыграли работы Дж. Джонса, М. Принса, И. Сазерленда, И.П. Норенкова, В.А. Осипова, А.И. Половинкина, В.А. Камаева, Ю.М. Соломенцева и многих других ученых. Концептуальной основой автоматизации проектирования и решения задач анализа и синтеза являются накопленные проектные знания. Однако до сих пор проблема согласования различных проектных этапов не решена. А существующие технологии содействуют в решении только некоторых подзадач, таких как документирование требований (с помощью ограниченного естественного языка или графических методов); описание программных компонентов и их поиск по ключевым словам', построение архитектуры программной системы на основе выбранных шаблонов. Анализ новейших методов проектирования показал, что успешность решения указанной проблемы проектирования зависит от создания единого формального базиса, обеспечивающего взаимодействие разнородных моделей, методов, технологий.

Как отмечает И.А. Барков в своих работах, в автоматизированном проектировании проблема согласования разнообразных проектных этапов и компонентов трансформируется в проблему интеграции на инвариантной основе структур данных и процедур решения проектных задач. В настоящее время обоснованно применяются логические модели для представления знаний при создании так называемых интеллектуальных САПР, которые характеризуются возможностью принятия проектных решений при использовании инвариантных к проблемным областям алгоритмов. Однако существующие логические модели описания программных компонентов (OWL-S, WSMO, WSDL-S, FLOWS) строятся только с учетом внутренних характеристик и свойств, независимо от возможных зависимостей и трансформации значений в различных средах. Также эти модели предполагают использование одной конкретной логики для описания различных типов данных, что делает задачу представления знаний трудноформализуемой.

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

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

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

2. Разработка логической модели требований к разрабатываемому программному обеспечению;

3. Разработка модели для представления различных по природе знаний о характеристиках программных компонентов с учетом их семантики;

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

5. Разработка инвариантной программной среды, предназначенной для автоматизации процесса проектирования программных систем. Объектом исследования в диссертационной работе является процесс проектирования программных систем.

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

Реализация результатов работы. Теоретические результаты диссертационной работы реализованы в виде программного комплекса «SeMo», позволяющего проверить работоспособность разработанных моделей и алгоритмов.

Реализация результатов работы. Теоретические результаты диссертационной работы реализованы в виде программного комплекса «SeMo», позволяющего проверить работоспособность разработанных моделей и алгоритмов.

Результаты работы внедрены в технологический процесс компании Siemens (отдел СТ SE 2) при создании программных комплексов. Используется для описания программных компонентов с целью повторного 7 использования с помощью предложенной семантической модели и последующей регистрации их в специализированных библиотеках. Позволяет автоматически совмещать логическую модель системы требований с семантическими моделями программных компонентов. После выборки необходимой конфигурации из семейства возможных продуктов программных систем, аналитик получает вариант готовой архитектуры, учитывающей уже существующие программные компоненты.

Достоверность полученных результатов подтверждается успешным применением разработанного программного комплекса «SeMo» к решению задачи автоматизации начального этапа проектирования программных систем в компании Siemens AG, СТ SE 2 (Акт внедрения от 25 сентября 2007 года).

Научная новизна состоит в том, что разработана новая технология автоматизированного проектирования программных систем, включающая в себя:

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

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

3. Методику построения логической модели системы требований, основанную на взаимодействии онтологии предметной области и логической модели семейства продуктов программных систем;

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

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

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

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

3. Проведения дальнейших исследований в области автоматизированного проектирования программных систем и применения логических систем в инженерии ПО.

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

Положения, выносимые на защиту.

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

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

3. Логическая модель системы требований, которая связывает онтологию предметной области с описанием семейства программных продуктов;

4. Семантическая модель программных компонентов;

5. Алгоритмическое и программное обеспечение, которое повышает эффективность начального этапа проектирования многокомпонентных программных систем.

Апробация работы. Основные положения диссертации докладывались и обсуждались на следующих российских конференциях: III-й и IV-й Международный научно-практический семинар «Интегрированные модели и мягкие вычисления в искусственном интеллекте», Коломна, 15-17.05.2005 и 28-30.05.2007; И-я, III-я и IV-я Международная научно-техническая конференция «Интеллектуальные системы (AIS' 05, 06, 07), Интеллектуальные САПР», Дивноморское, 3-10.09. 2005, 2006 и 2007 гг.; научно-практический семинар, «AIS-ADM' 07», Springer LNCS, Санкт-Петербург, 3-5.06.2007.

Также основные положения диссертации докладывались и обсуждались на следующих зарубежных конференциях: Международный семинар «Frameworks for Semantics in Web Services», консорциум W3C, Инсбрук, Австрия, 9-10.06.2005; 1-й научно-практический семинар «Workshop on Product Lines & Variability», Siemens AG и Мюнхенский тех. университет, Мюнхен, Германия, 9.05.2006; научный семинар будущих кандидатов и докторов наук на 20-й Европейской конференции по ОО программированию (ЕСООР' 06), Нант, Франция, 3-7.07.2006; 32-я конференция «Euromicro Conference on Software Engineering and Advanced Applications, Component-based Software Engineering track», IEEE, Дубровник, Хорватия, 28.081.09.2006; международная конференция «Information Research and Applications i.TECH 2007», Варна, Болгария, 25.06.-1.07.2007.

Публикации. Основное содержание диссертации нашло отражение в 17 опубликованных научных работах, в том числе в 1 статье в журнале из списка ВАК; в 9 зарубежных публикациях на английском языке, из них: 1 статья в сборнике работ по искусственному интеллекту «LNAI» издательства Springer Verlag (Германия), 1 статья в сборнике работ по компьютерным технологиям издательства IEEE (США), 1 статья в списке рекомендованных к прочтению статей на сайте международного консорциума W3C, 1 статья в межд. журнале «Information Theories and Applications»,

Структура и содержание диссертационной работы. Диссертационная работа состоит из введения, четырех глав с выводами, заключения, библиографического списка из 112 наименований, и приложений. Общий объем работы 107 страниц, в том числе 24 рисунка и 10 таблиц.

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

Выводы по главе 4

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

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

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

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

ЗАКЛЮЧЕНИЕ

Основная цель повышения эффективности проектирования многокомпонентных программных систем за счет обеспечения начального этапа проектирования средствами моделирования, основанными на гибридных логических моделях, была достигнута. Повышение эффективности заключается в существенном сокращении времени на построение архитектуры и поиск уже существующих компонентов (от 10% до 50%, в зависимости от размера библиотеки программных компонентов) и сокращении стоимости самой реализации (от 20% до 40%, в зависимости от размера библиотеки программных компонентов). Также необходимо отметить, что результаты композиции архитектурного решения являются согласованными с предъявляемыми требованиями и характеристиками окружающей среды с учетом функциональных и нефункциональных свойств программной системы.

Основные научные и прикладные результаты диссертационной работы заключаются в следующем:

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

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

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

4. Разработана методика представления знаний о программных компонентах с учетом трансформации функциональных и нефункциональных характеристик. В соответствии с данной методикой, модель программных компонентов разделяется на три уровня описания: онтология предметной области для описания семантики характеристик; зависимости и правила регулирования значений характеристик относительно внешних условий; постоянные значения характеристик;

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

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

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

109 программных компонентов), композиция архитектурного решения (на основе разработанных алгоритмов); 8. Разработан программный комплекс «SeMo» автоматизации начального этапа проектирования ПО, реализующий предложенные модели, методики и алгоритмы.

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

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

Библиография Рощин, Михаил Александрович, диссертация по теме Системный анализ, управление и обработка информации (по отраслям)

1. Технология системного моделирования / Е.Ф. Аврамчук, А.А. Вавилов, C.B. Емельянов и др.; Под общ. ред. C.B. Емельянова и др.- М.: Машиностроение; Берлин: Техник, 1988 520 с.

2. Половинкин А.И. Теория проектирования новой техники Волгоград: ВолгПИ, 1990.-25 с.

3. Буш Г.Я. Методы технического творчества. Рига : Лиесма, 1972. - 94 с.

4. Половинкин А.И. Методы инженерного творчества- Волгоград: ВолгПИ, 1984.-365 с.

5. Буш Г.Я. Методические основы научного управления изобретательством-Рига : Лиесма, 1974. 167 с.

6. Буш Г.Я. Аналогия и техническое творчество. Рига : Лиесма, 1979. -128 с.

7. Альтшуллер Г.С. Творчество как точная наука. М.: Советское радио, 1979.-184 с.

8. Мюллер И. Эвристические методы в инженерных разработках /Пер. с нем. М.: Радио и связь, 1984. - 144 с.

9. Глушков В.М., Мясников В.А.,Половинкин А.И. Автоматизация поискового конструирования //Вестн. АН СССР. 1979. №7.

10. Анкудинов Г.И. Синтез структуры сложных объектов (логико-комбинаторный подход). Л.: Изд-во ЛГУ, 1986. - 258 с.

11. Глазунов В.Н. Поиск принципов действия технических систем. М.: Речной транспорт, 1990. -111 с.

12. Мамиконов А.Г., Пискунова А.Н., Цвиркун А.Р. Модели и системы проектирования информационного обеспечения АСУ М.: Статистика, 1978.

13. Krumhauer Р. Möglichkeiten der Rechnerunterstutzung für die Konzeptphaseder Konstruction -Z.wirtscaftl.Fertigung, 1973, N 3, s.l 19-126.

14. Rodenacker W.G. Methodisches Konstruieren. Berlin, Heidelberg, New York, Springer-Verlag, 1976.

15. Presse G. Aufbau und Anwendung lines Katalogs physikalisher Effekts. Berlin, Maschinenbantechnik, 1977.7,P. 330-333.

16. Половинкин А.И. Основы инженерного творчества- М.: Машиностроение, 1988. 368 с.

17. Гришин В. А.,Камаев В.А. Математическое моделирование изделий и технологий. Учебное пособие, Волгоград, 1986.-193 с.

18. Фоменков С.А., Гришин В.А., Камаев В.А. Представление и использование физических знаний при поисковом конструировании изделий машиностроения. Учебное пособие. Волгоград: ВолгГТУ, , 1994.-121 с.

19. Камаев В.А., Колесников С.Г., Фоменков С.А. Физические эффекты из материалов заявок на открытия по физике, ч.1. Учебное пособие. -Волгоград: ВолгГТУ,, 1994. 200 с.

20. Камаев В.А., Фоменков С.А., Сипливая М.Б., Колесников С.Г. Физические явления из материалов заявок на открытия по физике, ч.2. Учебное пособие. Волгоград: ВолгГТУ, 1995. - 224 с.

21. Бутенко JI.H., Дворянкин А.М., Камаев В.А., Фоменков С.А. и др. Техническое творчество: теория, методология, практика.

22. Энциклопедический словарь-справочник. / Под ред. А.И. Половинкина, В.В. Попова. M.: НПО "Информ-систем", 1995. - 408 с.

23. Дворянкин A.M., Половинкин А.И., Соболев А.Н. Методы синтеза технических решений М.: Наука, 1977. - 103 с.

24. Андрейчиков A.B., Андрейчикова О.Н. Интеллектуальные информационные системы. М.: Финансы и статистика, 2006. - 424 с.

25. Норенков И.П. Основы автоматизированного проектирования. М.: Изд-во МГТУ им. Н.Э.Баумана, 2002. - 336 стр.

26. Барков И.А. Теория конструкторской семантики. Ижевск: Изд-во ИжГТУ, 2003.-360 с.

27. Вигерс К.И. Разработка требований к программному обеспечению / Пер. с англ. М.: Изд-во «Русская редакция», 2004. - 576 с.

28. Орлик С. Введение в программную инженерию и управление жизненным циклом ПО Электронный ресурс. -Режим доступа: http://sorlik.blogspot.com

29. Вендров A.M. CASE-технологии. Современные методы и средства проектирования информационных систем Электронный ресурс. -Режим доступа: http://www.codenet.ru/db/other/case/

30. Martin R.C. Agile Software Development, Principles, Patterns, and Practices.- Prentice Hal, 2002. 552 с. - Англ.

31. Greenfield J., Short K., Software Factories. Wiley Publishing, 2004. - 560c.- Англ.

32. Timo Kakola, Juan Carlos Duenas. Software Product Lines: Research Issues in Engineering and Management. Springer-Verlag, 2006 - Англ.

33. Kr. Czarnecki, С. H. P. Kim, К. T. Kalleberg: Feature Models are views on Ontolgies, 2004. - Англ.

34. Danilo Beuche, Holger Papajewski, Wolfgang Schroeder-Preikschat. Variability Management with feature Models, 2003. - Англ.

35. Stan Buehne, Kim Lauenroth, Klaus Pohl. Why is it not sufficient to Model Requirements Variability with Feature Models? 2004. - Англ.

36. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования: паттерны проектирования. СПб: Питер, 2001.-368 с.

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

38. Заболеева-Зотова А.В. Использование естественного языка при автоматизации слабо структурируемых процессов в проектировании технических, программных и информационных систем // Дисс. на сосискание уч. степени доктора тех. наук. Волгоград, 2004.

39. Вагин В.Н., Головина Е.Ю., Загорянская А.А., Фомина М.В. Достоверный и правдоподобный вывод в интеллектуальных системах. -М.: ФИЗМАТЛИТ, 2004. 704 с.

40. Гаврилова Т.А., Хорошевский В.Ф. Базы знаний интеллектуальных систем. СПб.: Изд-во «Питер», 2001. - 384 с.

41. Заболеева-Зотова А.В. Естесственный язык в автоматизрованных системах: Семантический анализ текстов: Монография. Волгоград: Изд-во ВолгГТУ, 2002. - 228 с.

42. Заболеева-Зотова А.В. Лингвистические системы: Модели, методы, приложения: Монография. Волгоград: Изд-во ВолгГТУ, 2004. - 190 с.

43. Калянов Г.Н. CASE-технологии: консалтинг при автоматизации бизнес-процессов. М.: Горячая линия-Телеком, 2000. - 320 с.

44. Камаев В.А., Сипливая М.Б., Козлов А.А. Методы и алгоритмы оптимизации детерминированных потоков в сетях: Уч. пособие. -Волгоград: Изд-во ВолгГТУ, 2000. 80 с.

45. Карпов Ю.Г. Теория автоматов. СПб.: Питер, 2002. - 224 с.

46. Люгер Д.Ф. Искусственный интеллект: стратегии и методы решения сложных проблем, 4-е изд.: Пер. с англ. М.: Изд. дом «Вильяме», 2003. - 864 с.

47. М.Р. Singh, M.N. Huhns. Service-Oriented Computing: Semantics, Processes, Agents. Wiley, 2005

48. Graubmann P. Semantic Annotation of Software Components:по матер. 32nd Euromicro Conf. on SEAA, Aug. 29 Sep/ 1, 2006. / P.Graubmann, M. Roshchin //IEEE Computer Society. - 2006. - App. - c. 170-174. - Англ. (IEEE)

49. Муромцев Ю.Л., Орлова Л.П., Муромцев Д.Ю., Тютюнник В.М. Информационные технологии проектирования РЭС. 4.1: Основные понятия, архитектура, принципы: Уч. пособие. Тамбов: Изд-во ТГТУ, 2004.-96 с.

50. Непейвода Н.Н. Прикладная логика: Учеб. пособие. Новосибирск: Изд-во Новосиб. ун-та, 2000. - 521 с.

51. Павлов С.Н. Системы искусственного интеллекта: Уч. пособие. Томск: Томский межвузовский центр дистанционного образования, 2002. - 187 с.

52. Пастухов А.Ю. Разработка языков программирования с учетом психолингвистического анализа процесса понимания текста программы // Дисс. на сосискание уч. степени кандидата тех. наук. Волгоград, 2000.

53. Прохоров И.В. Автоматизированный этимологический анализ // Дисс. на сосискание уч. степени кандидата тех. наук. Волгоград, 2007.

54. Рассел С., Норвиг П. Искусственный интеллект: современный подход, 2-е изд.: Пер. с англ. М.: Изд. дом «Вильяме», 2006. - 1408 с.

55. Савчук В.П. Оценка эффектинвости инвестиционных проектов Электронный ресурс. -Режим доступа: http://www.cfin.ru/finanalvsis/savehuk/index.shtml

56. Себеста Р.У. Основные концепции языков программирования: Пер. с англ. М.: Изд. дом «Вильяме», 2001. - 672 с.

57. Сливин Р.Ю. Интеллектуальная поддежрка инженерного анализа на основе рассуждений по прецедентам (на примере задач контактной механики) // Дисс. на сосискание уч. степени кандидата тех. наук. Волгоград, 2006.

58. Тарасов В.Б. От многоагентных систем к интеллектуальным организациям: философия, психология, информатика. М.: Эдиториал УРСС, 2002. - 352 с.

59. Фаулер М. Архитектура корпоративных программных приложений.: Пер. с англ. М.: Изд. дом «Вильяме», 2004. - 544с.

60. Фоменков С.А., Петрухин A.B., Камаев В.А., Давыдов Д.А. Представление физических знаний для автоматизированных систем обработки информации: Монография. Волгоград: ТОО «Принт», 1998. -152 с.

61. Фреге Г. Логика и логическая семантика: Сборник трудов. М.: Аспект Пресс, 2000.-512 с.

62. Хопкрофт Д.Э., Мотвани Р., Ульман Д.Д. Введение в теорию автоматов, языков и вычислений, 2-е изд.: Пер. с англ. М.: Изд. дом «Вильяме», 2002. - 528 с.

63. Шалыто А.А. Новая инициатива в программировании. Движение за открытую проектную документацию // Мир ПК. 2003. - № 9. - с. 52-56

64. Cockburn A. Agile Software Development. Addison-Wesley Prof., 2001

65. Roshchin М. Semantic Modelling for Product Line Engineering / M. Roshchin, P. Graubmann, V. Kamaev // Information Research and Applications. i.TECH 2007: proc. (Bulgaria), 26-30.06.2007 / FOI ITHEA. -Sofia, 2007. Vol.1, -p.143-148. Англ.

66. Roshchin M. Ontology Engineering for Intellectual Agents / M. Roshchin // И-я Международная конференция по когнитивной науке: сб. тр. / С.-Петерб. Гос. Ун-т. СПб., 2006. - с. 558-559. - Англ.

67. Afimann U. Invasive Software Composition. Springer-Verlag, 2003

68. ABmann U. Architectural Styles for Active Documents. SCP Journal on Software Composition, 2003.

69. F. Campoy Flores, V. Quint, I. Vatton. Templates, Microformats and Structured Editing. In Proceedings of ACM Symposium on Document Engineering (DocEng), pp. 188-197, Amsterdam, The Netherlands. Brailsford, D. F., Eds. (2006)

70. J. Le Maitre. Representing Multistructured XML Documents by Means of Delay Node. In Proceedings of ACM Symposium on Document Engineering (DocEng), pp. XXX, Amsterdam, The Netherlands. Brailsford, D. F., Eds. (2006)

71. Кузин С.Г. Конструирование компонент программного обеспечения на основании графовых моделей Электронный ресурс. -Режим доступа: http ://www. unn. ru/vmk/graphmod/index .php?i d=con sept

72. A.C. Faria, Joao B.S. de Oliveira. Measuring Aesthetic Distance between Document Templates. In Proceedings of ACM Symposium on Document Engineering (DocEng), pp. 13-21, Amsterdam, The Netherlands. Brailsford, D. F., Eds. (2006)

73. M.G. Pimentel, L. Baldochi, E.V. Munson. Modelling Context Information for Capture and Access Applications. In Proceedings of ACM Symposium on Document Engineering (DocEng), pp. 92-94, Amsterdam, The Netherlands. Brailsford, D. F„ Eds. (2006)

74. V. Lanfranchi, F. Ciravegna, D. Petrelli. Semantic Web-based Document Editing and Browsing in ActiveDoc.

75. H. Ahonen, B. Heikkinen, O. Heinonen, etc. Intelligent Assembly of Structured Documents. Report, 1996

76. Glushko, J. Robert. Document Engineering: Analyzing and Designing Documents for Business Informatics & Web Services. 2005

77. Timo Kakola, Juan Carlos Duenas. Software Product Lines: Research Issues in Engineering and Management. Springer-Verlag, 2006

78. The Elucidative Programming Home Page http://www.cs.aau.dk/~normark/elucidative-programming/

79. Semantic Web, http://www.w3.org/2001/sw/

80. OWL, http://www.w3.org/TR/owl-features/

81. Description Logics, http://dl.kr.org/

82. Razmerita L., Angehrn A., Maedche A. Ontology-based User Modelling for Knowledge Management Systems.

83. Uren V., Cimiano P., Iria J. and others. Semantic Annotation for Knowledge Management: Requirements and a survey of the state of the art. Journal of Web Semantics, ELSEVIER, October 2005

84. S.H. Kaisler. Software Paradigms, Wiley-Interscience, 2006

85. Peter Graubmann, Mikhail Roshchin, "Semantic Annotation of Software Components", Accepted for IEEE Proceedings of 32th EUROMICRO CONFERENCE on Software Engineering and Advanced Applications (SEAA), Component-Based Software Engineering Track, 2006

86. Danilo Beuche, Holger Papajewski, Wolfgang Schroeder-Preikschat. Variability Management with feature Models, 2003

87. Stan Buehne, Kim Lauenroth, Klaus Pohl. Why is it not sufficient to Model Requirements Variability with Feature Models?, 2004

88. Michael Klein, Brigitta Koenig-Ries, An Ontology-based Document-Space as an Adaptable Use Interface for Mobile Information Systems, 2006

89. Lutz, C.: Lecture Notes on LBKR. 2003

90. UML, http://en.wikipedia.org/wiki/Unified Modelling Language

91. John F. Sowa. Knowledge Representation: Logical, Philosophical, and Computational Foundations, Brooks Cole Publishing Co., Pacific Grove, CA, 2000

92. R. E. Lopez-Herrejon, D. Batory. A Standard Problem for Evaluating Product-Line Methodologies, 2003

93. Kr. Czarnecki, С. H. P. Kim, К. T. Kalleberg: Feature Models are views on Ontolgies, 2004

94. Blog of Michael Stal, http://stal.blogspot.com/

95. Protégé, http://protege.stanford.edu/113. pure::variants, http://www.pure-svstems.com/Variant Management.49.0.html

96. Java Prolog Library, http://www.swi-prolog.org/packages/ipl/iava api/index.html

97. Semantic Web Library for Prolog, http://www.swi-prolog.org/packages/semweb.html

98. Thea OWL Library, http://www.semanticweb.gr/TheaOWLLib/

99. Алгоритмы оптимизации проектных решений/Под ред. Половинкина А.И.- М.:Энергия,1976.

100. Финн В. К. О машинно-ориентированной формализации правдоподобных рассуждений в стиле Бэкона-Милля// Семиотика и информатика. 1983. Вып.20.-С.35-101.

101. Финн В.К. Искусственный интеллект: идейная база и основной продукт// Сб. трудов Девятой национальной конференции по искусственному интеллекту с международным участием. Том I., С.11-21.

102. Карпунин Н.Г., Майданчик Б.И. Функционально-стоимостной анализ в электротехнической промышленности М.: Энергоиздат, 1984. - 288 с.

103. Фоменков С.А. Представление физических знаний в форме физических эффектов для автоматизированных систем обработки информации // Дисс. на сосискание уч. степени доктора тех. наук. Волгоград, 2000.

104. Пискунов А.И. Структурный подход к анализу нечетко формализованных систем. I Эквивалентные преобразования структуры нечетко формализованных систем // Автоматика и телемеханика.- 1988 -N4.- С.128-137.