Герасина А.И.
Пензенский
государственный университет, Россия
Интеллектуальная система принятия
решения по выбору технологий и средств разработки программного обеспечения
В данной статье
рассмотрена проблема выбора технологий и средств разработки программного
обеспечения. Обосновано использование интеллектуальных систем и онтологий для
решения этой проблемы, а также разработана архитектура интеллектуальной системы
принятия решения по выбору средств управления жизненным циклом программного
обеспечения.
1 Актуальность
проблемы выбора
Разработка программного обеспечения давно стала
полноценной индустрией. В настоящее время существует множество различных
технологий и средств разработки программных продуктов. Они в значительной мере
облегчают и ускоряют процесс управления жизненным циклом программного
обеспечения. Каждое существующее на данный момент автоматизированное средство
разработки и поддержки жизненного цикла программного обеспечения имеет свои
преимущества перед другими и свои недостатки.
В процессе проектирования, разработки и
сопровождения программного обеспечения неизменно возникает вопрос выбора набора
автоматизированных средств поддержки жизненного цикла программного обеспечения.
Этот выбор набора средств разработки и управления жизненным циклом программного
обеспечения должен осуществляться на основании целого ряда критериев. Набор
критериев поиска средств автоматизации разработки программного обеспечения
определяется исходя из конкретной решаемой задачи. Вручную человеку пришлось бы
затратить большое количество времени на анализ рынка всех существующих на
данный момент средств управления жизненным циклом программных продуктов. А
потому разработка такой системы, которая бы позволила автоматизировать процесс
поиска и выбора технологий и средств разработки программного обеспечения по
определенному набору критериев, к настоящему времени является актуальной.
2
Обоснование применения интеллектуальных систем и онтологий
Критерии выбора технологий и средств разработки
программного обеспечения зависят от конкретной предметной области. Набор этих
критериев чаще всего не может быть определен однозначно. Кроме того, одни
критерии могут иметь более высокий приоритет, чем другие. А потому задача
поиска и выбора средств управления жизненным циклом программного обеспечения
носит слабоструктурированный характер. Для решения задач такого типа
целесообразно использование интеллектуальных систем.
В настоящее время разработка интеллектуальных
систем не так широко используется в решении практических задач, как можно было
ожидать. Объясняется это тем, что очень часто такие системы не соответствуют
требованиям к ним со стороны пользователя: представление знаний в модели
создает трудности для понимания.
Интеллектуальная система для автоматизации
процесса выбора средств разработки программного обеспечения должна строиться на
такой модели знаний, которая бы позволяла пользователю, который не является
профессиональным программистом, общаться с системой на привычном для него
профессиональном языке. Выполнение этого условия становится возможным при
использовании в качестве модели представления знаний онтологий. Онтологии
позволяют реализовать такое представление знаний, которое было бы удобным для
пользователя. Кроме того, онтологии могут
применяться при организации коллективной работы с базой знаний. Все
пользователи в сети будут иметь одинаковое понимание терминов, их атрибутов и
отношений в базе знаний.
Таким образом, применение интеллектуальных
систем и онтологий для решений задачи автоматизации поиска и выбора технологий
и средств разработки программного обеспечения является целесообразным и
оправданным.
3
Архитектура системы
В данной работе предлагается архитектура
интеллектуальной системы принятия решения по выбору технологий и средств
разработки программного обеспечения. Ее схема представлена на рисунке 1.

Рисунок 1 – архитектура системы
В первом приближении архитектуру
интеллектуальной системы можно представить как взаимосвязанную тройку,
состоящую из следующих уровней:
-
база
знаний;
-
сервер
приложений;
-
приложение
пользователя.
Уровень базы знаний включает в себя ряд
различных онтологий, с которыми работает интеллектуальная система. Каждая из
онтологий может иметь различную модель представления данных:
-
объектная
модель данных;
-
реляционная
модель данных;
-
модель
данных на языке OWL;
-
модель
данных на языке RDF и т.д.
Онтологии, описанные на языке OWL и RDF могут
быть созданы, например, при помощи редактора онтологий Protege, а так же может
быть отображена в базу данных объектно-ориентированной СУБД Cache или реляционной СУБД MS SQL Server.
Уровень сервера приложений содержит набор
функций для работы с онтологией и является связующим звеном между
пользовательским приложением и базой знаний. В зависимости от того, в виде
какой модели представления данных хранится онтология, сервер приложения
обращается к ней при помощи средств соответствующей библиотеки.
Например, для объектной модели данных и
реляционной модели данных это может быть встроенная библиотека MS Visual Studio
C# System.Data; для онтологии на языке OWL это может быть библиотека
OwlDotNetApi; для онтологии на языке RDF это может быть библиотека dotNetRDF.
Уровень сервера приложений включает в себя:
-
подсистему
работы с онтологией;
-
подсистему
ведения знаний;
-
подсистему
поиска решений.
Подсистема работы с онтологией содержит набор функций
для чтения и записи знаний и фактов онтологии. Данная подсистема имеет
непосредственный доступ к базе знаний через соответствующую библиотеку.
Подсистема ведения знаний содержит набор функций
для добавления и редактирования знаний онтологии. Доступ к знаниям и фактам
базы знаний данная подсистема получает при помощи средств подсистемы работы с
онтологией. Кроме того, в рамках данной подсистемы реализуется возможность
коллективной работы с базой знаний. Здесь выделяются два набора функций для
двух различных типов пользователей: инженера знаний и эксперта.
Третья составляющая второго уровня
интеллектуальной системы – это подсистема поиска решений. Она содержит набор
функций для осуществления поиска и выбора технологий и средств разработки
программного обеспечения по заданным критериям, а также функции для изменения
приоритетов критериев выбора. Данная подсистема получает доступ к знаниям и фактам базы знаний через
средства подсистемы работы с онтологией.
Уровень приложения пользователя – это самый
верхний слой интеллектуальной системы, с которым непосредственно
взаимодействует пользователь. Этот уровень включает в себя следующие
компоненты:
-
просмотр
онтологии;
-
ведение
знаний;
-
поиск
решений.
Каждый из компонентов связан через интерфейс с
соответствующей подсистемой уровня сервера приложения и имеет доступ к
определенному набору функций, заданному в интерфейсе.
Функция просмотра онтологии включает средства
для отображения в понятной для пользователя форме всей структуры онтологии.
Доступ к этой функции имеют пользователи любого типа.
Функция ведения знаний включает средства для
предоставления возможности пользователю осуществлять добавление и изменение знаний
в онтологии. Здесь возможна работа в одном из двух режимов:
-
режим
инженера знаний;
-
режим
эксперта.
Для каждого режима определен свой функциональный
набор, исходя из прав пользователя.
Функция поиска решений включает средства для:
-
задания
критериев поиска;
-
задания
приоритетов критериев поиска;
-
запуска
процесса поиска технологий и средств разработки программного обеспечения;
-
отображения
найденных вариантов решений.
Эта функция определена для пользователей любого
типа.
4
Перспективы и варианты использования
Описанная выше архитектура интеллектуальной
системы принятия решения по выбору технологий и средств разработки программного
обеспечения может быть использована, например, для решения задачи подбора
пакета инструментальных средств разработки ПО по определенным критериям.
Выделяют различные наборы критериев для анализа
рынка существующих инструментальных средств. Не всегда представляется возможным
однозначно их трактовать. Прежде чем выбрать те или иные инструментальные средства,
необходимо убедиться в рациональности их использования.
В качестве критериев выбора средств управления
жизненным циклом программного обеспечения, например, можно выделить следующие:
-
стоимость;
-
набор
выполняемых функций с учетов этапов жизненного цикла программного обеспечения;
-
используемые
нотации, стандарты и методологии;
-
интеграция
со средами разработки;
-
интеграция
с другими средствами поддержки жизненного цикла программного обеспечения;
-
производитель;
-
поддерживаемые
платформы.
В интеллектуальной
системе принятия решений по выбору инструментальных средств должны быть
реализованы три функции, рассмотренные ранее:
-
возможность
просмотра имеющихся в онтологии знаний;
-
возможность
добавления и модификации знаний;
-
возможность
поиска и выбора пакета инструментальных средств по заданным критериям.
Возможность просмотра знаний онтологии
может быть реализована с помощью вывода списков различных типов компонент
онтологии и их свойств: классов и экземпляров классов (рисунок 2), атрибутов
(рисунок 3), отношений (рисунок 4).

Рисунок 2 – вывод
классов и экземпляров классов онтологии

Рисунок 3 – вывод
атрибутов

Рисунок 4 – вывод
отношений
Та же схема может быть использована для
вывода результатов поиска пакетов инструментальных средств (рисунок 5).

Рисунок 5 – вывод
результатов поиска пакетов инструментальных средств
Для организации поиска и выбора пакета
инструментальных средств разработки программного обеспечения целесообразно
реализовать мастер поиска инструментальных средств, где на каждом шаге задаются
критерии поиска (рисунок 6).

Рисунок 6 – выбор
возможных функций в окне мастера поиска пакетов инструментальных средств
Такой же мастер может быть использован
для организации возможности добавления новых знаний в онтологию.
Кроме того, предложенная архитектура
может применяться для решения задач выбора:
-
методологии
разработки программного обеспечения;
-
стандартов,
используемых на различных этапах жизненного цикла программного обеспечения;
-
архитектуры
программного обеспечения;
-
моделей
проектирования программного обеспечения;
-
шаблонов
проектирования программного обеспечения;
-
языков
программирования и т.д.
Литература
1. Грибова В.В., Клещев
А.С., Шалфеева Е.А. Системы управления интеллектуальными интернет-приложениями.
– Владивосток: Институт автоматики и процессов управления ДВО РАН, 2010. – 31
с.
2. Башмаков А.И., Башмаков
И.А. Интеллектуальные информационные технологии: учебное пособие. – М.: Изд-во
МГТУ им. Н.Э.Баумана, 2005. – 304 с.
3. Гаврилова Т.А.,
Хорошевский В.Ф. Базы знаний интеллектуальных систем. – СПб: Питер, 2000ю – 384
с.
4. Вендров А.М.
CASE-технологии. Современные методы и средства проектирования информационных
систем. URL: http://citforum.ru/database/case/
5.
Артемьева
И.Л., Рештаненко Н.В. Интеллектуальная система, основанная на многоуровневой
онтологии химии. URL: http://www.swsys.ru/index.php?page=article&id=113