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

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

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Datum:2009
1. Verfasser: Пригожев, А.С.
Format: Artikel
Sprache:Russisch
Veröffentlicht: Інститут проблем штучного інтелекту МОН України та НАН України 2009
Schlagworte:
Online Zugang:https://nasplib.isofts.kiev.ua/handle/123456789/8125
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Назва журналу:Digital Library of Periodicals of National Academy of Sciences of Ukraine
Zitieren:Визуализация данных для анализа программного обеспечения с использованием экспертной системы / А.С. Пригожев // Штучний інтелект. — 2009. — № 3. — С. 347-351. — Бібліогр.: 5 назв. — рос.

Institution

Digital Library of Periodicals of National Academy of Sciences of Ukraine
_version_ 1859951234725707776
author Пригожев, А.С.
author_facet Пригожев, А.С.
citation_txt Визуализация данных для анализа программного обеспечения с использованием экспертной системы / А.С. Пригожев // Штучний інтелект. — 2009. — № 3. — С. 347-351. — Бібліогр.: 5 назв. — рос.
collection DSpace DC
description В статье предлагается формальная модель для автоматизированного анализа программного обеспечения в процессе отладки и тестирования при помощи экспертной системы. Рассматриваются вопросы интеграции такой модели в экспертную систему поддержки разработчика. Предлагаемая модель позволяет в дальнейшем разработать формальные правила, позволяющие выявлять наиболее существенные ошибки в функционировании программного обеспечения. У статті запропонована формальна модель для автоматизованого аналізу програмного забезпечення у процесі налагодження та тестування за допомогою експертної системи. Розглядаються питання інтеграції такої моделі в експертну систему підтримки розробника. Запропонована модель дозволяє у подальшому розробити формальні правила, які дозволяють виявляти найбільш суттєві помилки у функціонуванні програмного забезпечення. In the paper the formal model for the software automated analysis during a debugging and testing by means of a consulting program is offered. Problems of model integration in a development engineer support expert system are considered. The offered model allows to develop in the further the formal rules, allowing to reveal the most essential errors in performance of the software.
first_indexed 2025-12-07T16:17:07Z
format Article
fulltext «Штучний інтелект» 3’2009 347 7П УДК 004.891.3 А.С. Пригожев Одесский национальный политехнический университет, г. Одесса, Украина prigozhev@rambler.ru Визуализация данных для анализа программного обеспечения с использованием экспертной системы В статье предлагается формальная модель для автоматизированного анализа программного обеспечения в процессе отладки и тестирования при помощи экспертной системы. Рассматриваются вопросы интеграции такой модели в экспертную систему поддержки разработчика. Предлагаемая модель позволяет в дальнейшем разработать формальные правила, позволяющие выявлять наиболее существенные ошибки в функционировании программного обеспечения. Введение Отладка современного программного обеспечения (ПО) является весьма трудо- ёмкой задачей в силу довольно большого объёма кода такого программного обеспе- чения. Также довольно часто ПО разрабатывается на разных, пусть и достаточно близких языках программирования. В таких случаях процесс отладки существенно затруднён, т.к. значительная часть работы выполняется программистами вручную. Поэтому необходимо автоматизировать процесс отладки с целью упрощения поиска ошибок в программном обеспечении. Существующие средства автоматизации отладки и тестирования программного обеспечения позволяют выполнять в автоматизированном режиме основные опера- ции, связанные с данными процессами. Большинство современных средств разра- ботки позволяет визуализировать значения переменных в процессе отладки на каждом шаге алгоритма. Недостатком данного подхода является слабая реализация возврата к предыдущим шагам программы. Необходимость такого возврата возникает в процессе отладки достаточно часто, поскольку для принятия решения о наличии ошибки в программе приходится знать предыдущие значения переменных. Существующие средства автоматизации тестирования, основанные на графовых и автоматных моделях, позволяют решать рассматриваемые задачи с учётом дополни- тельной информации, представляемой разработчиком. Поскольку такая информация часто зависит от понимания самим разработчиком задачи, то процесс синтеза тестов может быть неточным. Поэтому существует задача дальнейшего развития средств отладки и тестиро- вания. Одним из направлений развития этих средств может являться применение экспертных систем, основанных на представлении знаний о задачах в виде графа, для отладки и тестирования программного обеспечения. Использование таких средств позволяет отлаживать и тестировать программу не только пошагово, но и при по- мощи экспертных правил. Пригожев А.С. «Искусственный интеллект» 3’2009 348 7П Однако для решения задачи тестирования и отладки недостаточно только знаний о порядке решения задач и действий по их решению. Необходимо разработать также формальную модель, позволяющую представлять значения данных на каждом этапе исполнения программы и анализировать их, а также разработать структуру экспертной системы для анализа данных. Решение этих задач является целью данной статьи. Модель для визуализации данных Для реализации процесса анализа исполнения исходного кода предлагается использовать автоматизированный анализ значений переменных в ходе исполнения программы, привязанный к определённому моменту времени. Использование такого подхода позволит в дальнейшем формализовать правила для анализа программного кода в системе. Состоянием программы в определённый момент времени будем называть совокуп- ность всех доступных в данный момент переменных, их значений и некоторого дополни- тельного набора параметров. Если номер шага программы обозначить буквой t , то со- ответствующее состояние программы будем обозначать )(tS . Таким образом, состояние программы является функцией от времени. Состояние программы включает в себя мно- жество состояний всех доступных в данный момент переменных программы. Видимость переменных в программе зависит от местоположения в программе текущего оператора. Все переменные с точки зрения проводимого анализа разделяются на три класса: переменные типа «данные», переменные типа «указатели» и переменные смешанного типа [1]. Кроме этого, необходимо ввести дополнительные переменные, принадле- жащие соответствующим классам, – аппаратные переменные, которые характеризуют взаимодействие с устройствами системы. Их тип и максимальное, и минимальное возможные значения зависят от типа устройства, для которого создаётся переменная. Для каждого класса переменных системы вводится ряд дополнительных характеристик. В частности, рассматривается минимально и максимально возмож- ные теоретические значения переменных в программе, возможные минимальные и максимальные проектные значения и размер переменных в программе. Обозначая теоретические минимальные и максимальные значения переменных mintx и maxtx , соответствующие им проектные значения minx и maxx , размер переменной и имя переменной как r и i соответственно, а значение как z , состояние переменной программы можно представить в виде следующей семёрки: ),,,,,,( maxminmaxmin zrxxtxtxi . (1) Множество всех шестёрок (1) для переменных класса «данные» будем обозна- чать буквой D, для переменных класса «указатели» – буквой P, для переменных смешанного класса – Dp. Соответственно состояние переменных в некоторый момент времени может быть описано следующей двойкой: )),,(,()( DpPDttS  . (2) Первая компонента двойки (2) является временной составляющей, в нашем случае – это номера шагов в программе. Вторая компонента – это тройка, описы- вающая состояния переменных на данном шаге. Множество таких компонент, упо- рядоченное по первой компоненте, образует вектор, аналогичный временному ряду [3]. Визуализация данных для анализа программного обеспечения… «Штучний інтелект» 3’2009 349 7П Для проведения корректного анализа программного кода вершинам модифици- рованного графа задач должны быть сопоставлены элементы двойки (2). Прохождение дерева в прямом порядке, как указано в [1], эквивалентно выполнению программного кода, на основе которого было построено данное дерево. При каждом проходе вершины графа ей сопоставляется порядковый номер выполняемого действия алгоритма. Это позволяет организовать анализ, используя выполняемые операторы и обрабатываемые данные. Каждую функцию в языке программирования можно представить в виде неко- торой схемы в алгебре Дейкстры [4]. Таким образом, каждая функция представляется некоторым подграфом на графе задач. Число, соответствующее вершине вызова функции, является входом функции. С учётом свойств обхода графа в таблице функций можно выявить ряд распространённых ошибок, таких как использование нулевых указателей, деление на ноль и т.п. Например, если в функции существует локальный указатель, и по этому адресу записывается значение на шаге с номером меньшим, чем инициализация указателя, то можно сделать вывод об использовании неинициа- лизированного указателя. Структура экспертной системы поддержки разработчика Построенная модель и дерево задач используются в экспертной системе под- держки разработчика «ExDev», структура которой приведена на рис. 1. Рисунок 1 – Структура системы «ExDev» в нотации UML Основой системы является решатель, который использует информацию, хранящуюся в базе знаний о программном коде и схеме алгоритма. В таблицах исполнения хранится информация, представленная в моделях (1) и (2). Описание правил для решателя системы проводится в терминах моделей (1) и (2), а также сопоставленного с ним дерева задач. Компонент визуализатор связан с решателем и управляется им. Данный компонент позволяет построить модели (1) и (2) для конкретной программы либо схемы алгоритма. Использование компонента Пригожев А.С. «Искусственный интеллект» 3’2009 350 7П совместно с решателем позволяет проводить предварительный анализ построенного дерева на предмет наличия семантических ошибок, таких, например, как бесконечное зацикливание. Вся информация как о дереве, так и о визуализации программы хранится в базе знаний экспертной системы. Структура базы знаний для визуализации переменных в программе Для выявления ошибок, допущенных в программе, необходимо разработать структуру базы данных для экспертной системы поддержки разработчика. В процессе визуализации алгоритма и выполняемой программы строится таблица визуализации, которая содержит большое количество повторяющейся информации. Также данная таблица должна быть связана непосредственно с деревом, которое хранит информацию о коде программы и алгоритма разработанной системы. Таблица визуализации в памяти представляет собой структуру, содержащую либо информацию о текущем значении переменной, если эта переменная изменилась на данном шаге, либо ссылку на строку с текущим значением. Также данная струк- тура содержит ссылку на соответствующий шаг алгоритма. Для хранения базы знаний, включающей в себя дерево задач и таблицу визуа- лизации, предлагается следующая структура реляционных таблиц (рис. 2). Рисунок 2 – Схема базы знаний для экспертной системы поддержки разработчика В таблице «Tree» хранится непосредственно дерево, которое синтезировано для кода программы или алгоритма. Дерево в таблице «Tree» представляет собой множе- ство записей, каждая из которых соответствует единичной ячейке матрицы смежности. Таблица «Tasks» содержит перечень задач, входящих в дерево. Если задача имеет подзадачи, то в поле id_operator записывается 0, в противном случае там содержится ссылка на записи в таблице операторов «Operators». По идентификатору задачи в Визуализация данных для анализа программного обеспечения… «Штучний інтелект» 3’2009 351 7П таблице визуализации «Vizualization» определяются номера шагов алгоритма, на которых решалась соответствующая задача. Таблицы «Variables» и «Values» хранят информацию о переменных, содержащуюся в моделях (1) и (2). Таблица «Variables» хранит сведения о переменных, которые не зависят от алгоритма, а таблица «Values» содержит сведения, зависящие непосредственно от алгоритма. Выводы В ходе исследования была решена задача построения модели для пошагового представления значений переменных в экспертной системе поддержки разработчика. Данная модель позволяет представить для анализа процесс выполнения алгоритма с учётом временной составляющей исполнения алгоритма. Ранее синтезированное представление алгоритма в виде дерева для экспертной системы поддержки пользо- вателя [5] применено для задач тестирования и отладки программного обеспечения. Использование перечисленных моделей позволяет автоматизировать процессы тестирования и отладки c использованием экспертных систем. Литература 1. Пригожев А.С. Языконезависимая среда разработчика для тестирования программного обеспечения / А.С. Пригожев // Радіоелектронні та комп’ютерні системи. – 2009. – № 7. – С. 225-230. 2. Пригожев А.С. Принципы построения интеллектуальной среды разработчика программного обеспече- ния на основе экспертной системы / А.С. Пригожев // Искусственный интеллект. Интеллектуальные системы: материалы IX Международной научно-технической конференции (пос. Кацивели, Крым, Украина, 22 – 27 сент. 2008). – Донецк : ИПИИ «Наука і освіта», 2008. – Т. 2. – С. 127-131. 3. Бриллинджер Д. Временные ряды: обработка данных и теория / Бриллинджер Д. – М. : Мир, 1980. – 532 с. 4. Цейтлин Г.Е. Введение в алгоритмику / Цейтлин Г.Е. – К. : Сфера, 1998. – 310 с. 5. Пригожев А.С. Информационная технология помощи пользователю / Пригожев А.С. // Холодильная техника и технология. – 2007. – № 2. – С. 98-101. О.С. Пригожев Візуалізація даних для аналізу програмного забезпечення з використанням експертної системи У статті запропонована формальна модель для автоматизованого аналізу програмного забезпечення у процесі налагодження та тестування за допомогою експертної системи. Розглядаються питання інтеграції такої моделі в експертну систему підтримки розробника. Запропонована модель дозволяє у подальшому розробити формальні правила, які дозволяють виявляти найбільш суттєві помилки у функціонуванні програмного забезпечення. A.S. Prigozhev Data Visualization for the Software Analysis with Usage of a Consulting Program In the paper the formal model for the software automated analysis during a debugging and testing by means of a consulting program is offered. Problems of model integration in a development engineer support expert system are considered. The offered model allows to develop in the further the formal rules, allowing to reveal the most essential errors in performance of the software. Статья поступила в редакцию 30.06.2009.
id nasplib_isofts_kiev_ua-123456789-8125
institution Digital Library of Periodicals of National Academy of Sciences of Ukraine
issn 1561-5359
language Russian
last_indexed 2025-12-07T16:17:07Z
publishDate 2009
publisher Інститут проблем штучного інтелекту МОН України та НАН України
record_format dspace
spelling Пригожев, А.С.
2010-04-30T15:22:20Z
2010-04-30T15:22:20Z
2009
Визуализация данных для анализа программного обеспечения с использованием экспертной системы / А.С. Пригожев // Штучний інтелект. — 2009. — № 3. — С. 347-351. — Бібліогр.: 5 назв. — рос.
1561-5359
https://nasplib.isofts.kiev.ua/handle/123456789/8125
004.891.3
В статье предлагается формальная модель для автоматизированного анализа программного обеспечения в процессе отладки и тестирования при помощи экспертной системы. Рассматриваются вопросы интеграции такой модели в экспертную систему поддержки разработчика. Предлагаемая модель позволяет в дальнейшем разработать формальные правила, позволяющие выявлять наиболее существенные ошибки в функционировании программного обеспечения.
У статті запропонована формальна модель для автоматизованого аналізу програмного забезпечення у процесі налагодження та тестування за допомогою експертної системи. Розглядаються питання інтеграції такої моделі в експертну систему підтримки розробника. Запропонована модель дозволяє у подальшому розробити формальні правила, які дозволяють виявляти найбільш суттєві помилки у функціонуванні програмного забезпечення.
In the paper the formal model for the software automated analysis during a debugging and testing by means of a consulting program is offered. Problems of model integration in a development engineer support expert system are considered. The offered model allows to develop in the further the formal rules, allowing to reveal the most essential errors in performance of the software.
ru
Інститут проблем штучного інтелекту МОН України та НАН України
Обучающие и экспертные системы
Визуализация данных для анализа программного обеспечения с использованием экспертной системы
Візуалізація даних для аналізу програмного забезпечення з використанням експертної системи
Data Visualization for the Software Analysis with Usage of a Consulting Program
Article
published earlier
spellingShingle Визуализация данных для анализа программного обеспечения с использованием экспертной системы
Пригожев, А.С.
Обучающие и экспертные системы
title Визуализация данных для анализа программного обеспечения с использованием экспертной системы
title_alt Візуалізація даних для аналізу програмного забезпечення з використанням експертної системи
Data Visualization for the Software Analysis with Usage of a Consulting Program
title_full Визуализация данных для анализа программного обеспечения с использованием экспертной системы
title_fullStr Визуализация данных для анализа программного обеспечения с использованием экспертной системы
title_full_unstemmed Визуализация данных для анализа программного обеспечения с использованием экспертной системы
title_short Визуализация данных для анализа программного обеспечения с использованием экспертной системы
title_sort визуализация данных для анализа программного обеспечения с использованием экспертной системы
topic Обучающие и экспертные системы
topic_facet Обучающие и экспертные системы
url https://nasplib.isofts.kiev.ua/handle/123456789/8125
work_keys_str_mv AT prigoževas vizualizaciâdannyhdlâanalizaprogrammnogoobespečeniâsispolʹzovaniemékspertnoisistemy
AT prigoževas vízualízacíâdanihdlâanalízuprogramnogozabezpečennâzvikoristannâmekspertnoísistemi
AT prigoževas datavisualizationforthesoftwareanalysiswithusageofaconsultingprogram