Введение к работе
Актуальность темы. В настоящее время существует большое количество методов и средств, позволяющих создавать программы для разных областей применения и типов вычислительных машин. Увеличивается объем разработок программ. Это связано с повышением уровня доверия к программам и к их возможностям, что значительно повышает важность и ответственность выполняемых ими функций. Рост интереса пользователей и разработчиков к анализу качества создаваемых и эксплуатируемых программ обусловлен повышением значения результатов функционирования пакетов прикладных программ и сложных комплексов программ управления и обработки информации.
Программирование как целенаправленная деятельность обладает своей спецификой, а программные продукты - уникальны, не похожи ни на какую другую продукцию. Создание индустрии программных средств сопровождается трудностями, связанными, прежде всего со сложностью и несовершенством ЭВМ, разобщенностью в процессе промышленного производства программных средств между различными его элементами по содержанию, структуре, терминологии, времени исполнения. Процесс создания программ сталкивается с трудностями связанными с технологическими, организационными и экономическими факторами.
Для превращения программирования в современную инженерную дисциплину проектирование программного продукта следует осуществлять научными и промышленными методами, с обязательным применением различных способов измерения характеристик программ и установлением между ними причинно-следственных связей. Для этого необходимо научиться измерять и прогнозировать характеристики качества программ, а также изучить зависимость характеристик от различных параметров.
Формализация понятий показателей качества, введение для них методов измерения способствует к переходу от индивидуального производства изделий к промышленному производству на базе современных достижений прикладных наук и инженерных дисциплин.
Накопление знаний в различных областях науки и техники приводит к переходу от качественного описания объектов исследования и разработки к методам количественного представления характеристики этих объектов. В результате исследования объекта устанавливаются связи между интуитивными, неформализованными понятиями качества и измеряемыми количественными характеристиками объектов исследования. Эмпирические связи или свойства отображаются в формальную модель процесса функционирования и модель показателей качества объекта. Уг-
лубление исследований повышает достоверность измерения показателей качества и предсказание их значений на основе значений других параметров, коррелированных с прогнозируемыми.
Размеры и сложность программных продуктов не позволяют в чистом виде использовать эвристические методы оценки качества программных продуктов. Поэтому в последние годы наряду с эвристическими методами широко используются математические методы и строятся модели.
В настоящей работе исследуется проблема оценки качества и сравнительного анализа алгоритмов и программ. Основным содержанием работы является создание адаптивной экспертной системы сравнительного анализа алгоритмов и программ. Ключевой проблемой при построении экспертной системы является проблема представления и использования знаний, которыми обладают эксперты, то есть специалисты, имеющие существенный и положительный опыт при решении исследуемых задач. Исходя из анализа классов решаемых задач, а ими являются задачи выбора параметров проектирования, определения вариантов проектирования программного продукта, в качестве моделей представления знаний предлагается система условных нечетких высказываний, с помощью которых экспертами описываются характеристики программных продуктов. Для решения поставленных задач используются модели, удачно сочетающие в себе как декларативное, так и процедурное представление знаний. Фактически решаемые в работе задачи являются задачами принятия решений на трудноформализуемых этапах проектирования в условиях нечеткости, которая проявляется на этапе постановки задачи, при использовании интуитивных представлений эксперта о путях ее решения, а также нечетком описании характеристик программ. Исследуемые в работе задачи решаются различными способами, в частности строятся логические и логико-вероятностные решающие правила, нечеткие модели на основе нечетких отношений предпочтений и нечетких оценок характеристик программ. Кроме того, используется модифицированный метод «Электра», разработанный Руа, в качестве основы при решении задачи
ранжирования объектов ai,a2,...,am составляющих множество
А — \ах,а2,...,ат \ по критериям Р — {Р, ,Р2,..., Р„} и метод взвешенной линейной свертки для сертификации качества программ в четкой и нечеткой среде.
Второй круг вопросов, рассматриваемых в диссертации, связан с построением целесообразной системы характеристик программных продуктов и алгоритмов.
По мере накопления знаний об объекте исследования происходит переход от его качественного описания к методам количественного представления характеристик этих объектов. В результате устанавливаются связи между интуитивными, неформализованными понятиями качества и измеряемыми количественными характеристиками объектов исследования. Эмпирические свойства или связи отображаются в формальную модель процесса функционирования и модель показателей качества объекта. В процессе углубления исследований повышается достоверность создаваемых понятий и адекватность моделей исследуемым реальным объектам. Вследствие этого возрастает достоверность измерения показателей качества и предсказания их значений на основе использования других параметров, коррелированных с прогнозируемыми. Появляется возможность численного описания характеристик исследуемого объекта и использования их для целенаправленного управления его разработкой и эксплуатацией. Формализация понятий показателей качества, введение для них методов измерения способствуют переходу от индивидуального и ненаучного производства программных продуктов к современному промышленному производству на научной основе с использованием последних достижений соответствующей прикладной науки и инженерной дисциплины
В повседневной жизни человек постоянно сталкивается с проблемами принятия решений при наличии многих разнородных условий, ограничений и критериев. Традиционный подход к принятию решений индивидом осуществляется исходя из его субъективных представлений, знаний, опыта и анализа ситуаций. Такой подход, как правило, оказывается далеко не эффективным. Ситуация усугубляется, если таких решений приходится принимать много, причем при наличии многочисленных условий и ограничений.
Выходом из ситуации является автоматизация и интеллектуализация процедур принятия решений (ПР). Для разработки таких процедур необходимо иметь модели данных, а также модели ПР, оперирующими этими данными.
Те и другие модели могут быть как количественными, базирующимися на точных математических моделях (числа, формулы), так и качественными - на основе логико-лингвистических структур (фактах, текстах). Для автоматизации процедур принятия решений в настоящее время активно используется технология баз данных и баз знаний. С точки зрения структуризации первая служит как бы средством механизации ручного труда (просмотр и поиск необходимых данных), вторая — для автоматизации умственной деятельности (принятие решений на количественных и качественных моделях поддержки принятия решений).
Цель работы. Целью диссертационной работы является разработка и построение демонстрационного прототипа адаптивной экспертной системы анализа алгоритмов и программ на основании разработанной целесообразной совокупности характеристик качества программных продуктов и алгоритмов.
Методы исследования. В диссертации используются методы теории вероятностей, современной алгебры, компьютерной алгебры, теории графов, теории нечетких множеств, теории принятия решений, теории математического моделирования и компьютерного моделирования.
Научная новизна. Разработана общая схема построения экспертной системы задачи сравнительного анализа алгоритмов и программ на основе логических, логико-вероятностных, нечетких моделей представления знаний.
Практическая ценность. Разработанные в диссертации методы и алгоритмы могут найти применение при решении прикладных задач выбора параметров проектирования, определения вариантов проектирования. Созданная экспертная система может служить демонстрационным материалом спецкурсов по искусственному интеллекту и методам принятия решений.
Реализация результатов работы. Реализованные в диссертационной работе методы и алгоритмы легли в основу программного средства «Эксперт», реализованного на IBM PC совместимых компьютерах.
Апробация работы. Основные результаты были представлены на следующих конференциях и семинарах:
III международной конференции «Региональная информатика -95», 1995г, С.-Петербург;
II Всероссийской конференции «Распознавание образов и анализ изображений: новые информационные технологии», 1995г, Ульяновск;
Международной научно-практической конференции «Эльбрус'97 - новые информационные технологии и их региональное развитие», 1997г, Приэльбрусье.
На научно-исследовательском семинаре отдела интеллектуали-зиции информационных и управляющих систем НИИ ПМА КБНЦ РАН.
На расширенном семинаре кафедры «Информатики и математического обеспечения автоматизированных систем» Кабардино-Балкарского государственного университета, 1999г, Нальчик.
Публикации. Результаты диссертации опубликованы в 6 работах.
Объем и структура диссертации. Диссертация состоит из введе
ния, пяти глав, заключения и приложеііия^^ций^обьем^диссертациТГ
составляет 100 стр,