Введение к работе
Актуальность темы исследования. Процесс проектирования программной системы предлагает построение развернутой и точной архитектуры, покрывающей большинство необходимых аспектов для последующей реализации программного обеспечения (ПО). В настоящее время наиболее распространенной и обоснованной является обобщенная технология проектирования, основанная на последовательной реализации трех основных этапов: анализ требований, поиск существующих компонентов, композиция архитектурного решения (анализ и синтез проектных решений).
Автоматизация проектирования, в том числе методов формирования и детального анализа программной системы перед ее реализацией (этап поискового конструирования), является наиболее сложной и трудно формализуемой задачей на сегодняшний день в теории многокомпонентных программных систем и инженерии ПО. В развитии автоматизации проектирования заметную роль сыграли работы Дж. Джонса, М. Принса, И. Сазерленда, И.П. Норенкова, В.А. Осипова, А.И. Половинкина, В.А. Камаева, Ю.М. Соломенцева и многих других ученых. Концептуальной основой автоматизации проектирования и решения задач анализа и синтеза являются накопленные проектные знания. Однако, до сих пор проблема согласования различных проектных этапов не решена. А существующие технологии содействуют в решении только некоторых подзадач, таких как документирование требований (с помощью ограниченного естественного языка или графических методов); описание программных компонентов и их поиск по ключевым словам; построение архитектуры программной системы на основе выбранных шаблонов. Анализ новейших методов проектирования показал, что успешность решения указанной проблемы проектирования зависит от создания единого формального базиса, обеспечивающего взаимодействие разнородных моделей, методов, технологий.
Как отмечает И. А. Барков в своих работах, в автоматизированном проектировании проблема согласования разнообразных проектных этапов и компонентов трансформируется в проблему интеграции на инвариантной основе структур данных и процедур решения проектных задач. В настоящее время обоснованно применяются логические модели для представления знаний при создании так называемых интеллектуальных САПР, которые характеризуются возможностью принятия проектных решений при использовании инвариантных к проблемным областям алгоритмов. Однако, существующие логические модели описания программных компонентов (OWL-S, WSMO, WSDL-S, FLOWS) строятся только с учетом внутренних характеристик и свойств, независимо от возможных зависимостей и трансформации значений в различных средах.
Также, эти модели предполагают использование одной конкретной логики для описания различных типов данных, что делает задачу представления знаний трудноформализуемой.
Таким образом, актуальной является задача разработки нового подхода для автоматизации начального этапа проектирования многокомпонентных программных комплексов, ориентированного на представление знаний и проектных решений с помощью гибридных логических моделей.
Цели и задачи исследования. Целью работы является повышение эффективности проектирования многокомпонентных программных систем за счет обеспечения начального этапа проектирования средствами моделирования, основанными на гибридных логических моделях. Под повышением эффективности понимается сокращение трудоемкости и стоимости относительно существующих на сегодняшний день методик проектирования при соответствующем качестве. Для достижения данной цели были поставлены и решены следующие задачи:
Разработка методики представления знаний о программных компонентах, с учетом трансформации их функциональных и нефункциональных характеристик при взаимодействии с окружающей средой;
Разработка логической модели требований к разрабатываемому программному обеспечению;
Разработка модели для представления различных по природе знаний о характеристиках программных компонентов с учетом их семантики;
Разработка языка для описания гибридных логических моделей, описывающего взаимосвязь между различными типами разнородных данных;
Разработка инвариантной программной среды, предназначенной для автоматизации процесса проектирования программных систем.
Объектом исследования в диссертационной работе является процесс проектирования программных систем.
Методы исследования. Для решения поставленных задач были использованы теория и методы автоматизированного проектирования программных систем; методы системного анализа, искусственного интеллекта и математической логики, методы интеллектуального анализа данных и анализа бизнес-процессов, методы проектирования формальных языков.
Реализация результатов работы. Теоретические результаты диссертационной работы реализованы в виде программного комплекса «SeMo», позволяющего проверить работоспособность разработанных моделей и алгоритмов.
Результаты работы внедрены в технологический процесс компании Siemens (отдел СТ SE 2) при создании программных комплексов.
Используется для описания программных компонентов с целью повторного использования с помощью предложенной семантической модели и последующей регистрации их в специализированных библиотеках. Позволяет автоматически совмещать логическую модель системы требований с семантическими моделями программных компонентов. После выборки необходимой конфигурации из семейства возможных продуктов программных систем, аналитик получает вариант готовой архитектуры, учитывающей уже существующие программные компоненты.
Достоверность полученных результатов подтверждается успешным применением разработанного программного комплекса «SeMo» к решению задачи автоматизации начального этапа проектирования программных систем в компании Siemens AG, СТ SE 2 (Акт внедрения от 25 сентября 2007 года).
Научная новизна состоит в том, что разработана новая технология автоматизированного проектирования программных систем, включающая в себя:
Методику представления знаний о программных компонентах, отличающуюся от существующих возможностью моделирования процедуры изменения значений характеристик при взаимодействии с окружающей средой;
Модель интерпретации результатов вывода логических систем, использующую разработанный язык для описания гибридных логических моделей;
Методику построения логической модели системы требований, основанную на взаимодействии онтологии предметной области и логической модели семейства продуктов программных систем;
Семантическую модель описания функциональных и нефункциональных характеристик программных компонентов, использующую гибридную логическую модель представления знаний с учетом возможной трансформации характеристик при взаимодействии с окружающей средой.
Практическая ценность работы заключается в том, что созданный программный комплекс автоматизации начального этапа проектирования программных систем может быть использован для:
Создания адаптивных программных систем. Адаптивные программные системы используются в гетерогенных непредсказуемых окружающих средах, когда система должна мгновенно реагировать на изменение условий, требований, и обеспечить надлежащую функциональность с учетом нефункциональных требований к производительности системы;
Создания интеллектуальных систем поддержки принятия решений и инженерного творчества. Семантические модели, созданные на базе гибридной логической системы представления знаний с учетом
возможной трансформации характеристик, могут быть использованы
при описании технических решений для последующего повторного
использования в новых системах; 3. Проведения дальнейших исследований в области автоматизированного
проектирования программных систем и применения логических систем
в инженерии ПО.
Разработанный программный комплекс автоматизации начального этапа проектирования программных систем позволяет существенно сократить время и стоимость, требуемых на определение конфигурации, построение архитектуры программной системы, а также поиск существующих компонентов для повторного использования. Положения, выносимые на защиту.
Модель интерпретации результатов вывода логических систем, которая является основой для построения гибридных логических моделей;
Методика динамического представления знаний о программных компонентах, которая позволяет описывать семантику предметной области и возможные трансформации функциональных и нефункциональных характеристик при взаимодействии с окружающей средой;
Логическая модель системы требований, которая связывает онтологию предметной области с описанием семейства программных продуктов;
Семантическая модель программных компонентов;
Алгоритмическое и программное обеспечение, которое повышает эффективность начального этапа проектирования многокомпонентных программных систем.
Апробация работы. Основные положения диссертации докладывались и обсуждались на следующих российских конференциях: Ш-й и IV-й Международный научно-практический семинар «Интегрированные модели и мягкие вычисления в искусственном интеллекте», Коломна, 15-17.05.2005 и 28-30.05.2007; П-я, Ш-я и 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.08.-1.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».