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

кандидата технических наук
Шубинский, Максим Игоревич
город
Санкт-Петербург
год
1996
специальность ВАК РФ
05.13.16
Автореферат по информатике, вычислительной технике и управлению на тему «Развитие методов оценки и прогноза качества и надежности программного обеспечения на основе нечеткой математики»

Автореферат диссертации по теме "Развитие методов оценки и прогноза качества и надежности программного обеспечения на основе нечеткой математики"

по ОД

Г* И /Л-*

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

Шубинский Максим Игоревич

РАЗВИТИЕ МЕТОДОВ ОПЕНКИ И ПРОГНОЗА КАЧЕСТВА

И НАДЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НА ОСНОВЕ НЕЧЕТКОЙ МАТЕМАТИКИ

05.13.16 - применение вычислительной техники, математического моделирования и математических методов н научных исс.челонапинх

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

Санкт-Петербург - 1996

Работа выполнена в Санкт-Петербургском институте информатики и автоматизации РАН

НАУЧНЫЙ РУКОВОДИТЕЛЬ

- доктор технических наук, ВОРОБЬЕВ В.И.

НАУЧНЫЙ КОНСУЛЬТАНТ

- заслуженный деятель науки и техники РФ доктор технических наук, профессор ЮСУПОВ Р. М.

ОФИЦИАЛЬНЫЕ ОППОНЕНТЫ

- доктор технических наук, профессор ПОЛОННИКОВ Р. И .

- кандидат технических наук, БАГЛЮК С.И.

ВЕДУШАЯ ОРГАНИЗАЦИЯ

- Санкт-Петербургский государственный универси

Защита диссертации состоится '49 " 1997 г. вЮча

на заседании Специализированного совета Д .003 .62 .01 при Са - Петербургском институте информатики и автоматизации Р по адресу: 199178, С-Петербург, 14-я линия ВО, д.39.

С диссертацией можно ознакомиться в библиотеке Специа зированного совета Д.003.62.01.

Автореферат разослан 1996г.

Ученый секретарь Специализированного совета кандидат технических наук

А.В.Копыльцов

1.0БШАЯ ХАРАКТЕРИСТИКА ДИССЕРТАЦИОННОЙ

РАБОТЫ

1.1.Актуальность темы. Объекты исследования

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

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

• сложность корректного перевода лингвистических оценок в численные значения.

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

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

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

1.2. Цели исследования

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

Задачи исследования

1. Обобщение методов расчета и прогнозирования качества и надежности программных средств.

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

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

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

1.3. Методы исследования

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

1.4. Научная новизна

1. Проанализированы известные вероятностные методы и модели оценки надежности программных средств и показана необ-

\

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

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

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

1.5. Достоверность результатов исследования

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

1.6. Практическая значимость диссертации

Практическая значимость диссертации заключается в следующем:

• существенно сокращена трудоемкость и повышена оперативность оценки качества программных продуктов;

• повышена точность оценки и прогнозирования надежности программных средств;

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

1.7. Апробация работы

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

и проблемы защиты информации" СПИ И РАН, на международных конференциях: "Региональная информатика - 95", "Региональная информатика - 96", "Информатизация в образовании" (С-Петербург,1995 год)

1.8. Внедрение результатов работы

Результаты исследований были использованы при выполнении НИР "Липота" по заказу Секции Прикладных Проблем РАН.

1.0. Публикации

По теме работы опубликований 8 работ, из них 1 статья в английском журнале (в соавторстве), 2 статьи в сборниках трудов СПИИ РАН (1 принята к публикации), 3 тезиса докладов на НТК, 2 раздела в научно технических отчетах.

1.10. Структура и объем диссертации

Диссертация состоит из введения, трех глав, заключения приложений и списка литературы из 71 наименования. Общий объем - страниц, в том числе 14 рисунков и 4 таблицы.

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

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

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

ПО (МНП) целесообразно разделить на четыре класса: Макро, Микро, Байесовские и Модели обоснования.

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

2. Микро МНП. Микро МНП используют некоторые показатели ПО, такие как сложность ПО и полное число строк исходного текста, для того, чтобы прогнозировать надежностное поведение ПО. Примерами являются модели Шумана и Шатена.

3. Байесовские модели. Байесовские МНП частично относятся к классу моделей черного ящика. Они используют отладочные данные ПО, чтобы оценивать надежностное поведение программ,при этом некоторые параметры модели рассматриваются как случайные переменные. Примером этого типа моделей служат модели Литтлвуда.

4. Модели обоснования. Эти модели надежности ПО используются на этапе обоснования. На данном этапе ошибки только обнаруживаются, но не исправляются. На основе данных тестирования пытаются оценивать надежность ПО. Никаких усилий не делается в направлении улучшения надежности ПО. Примерами этих моделей являются модель Нельсона и модель Бастани-Рамамурти.

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

(показателей), таких как число исправленных ошибок и степень корректности ПО. Исключения из классификационной схемы позволяют лучше понять смысл МНП.

Существующие модели имеют общую особенность - вероятностное предположение. Известны более десяти важнейших предположений, на которых строятся вероятностные модели надежности ПО, часто нарушающиеся на практике. Вот некоторые из них:

1. Времена между отказами независимы. В общем это предположение неверно, так как тесты бычно выбираются не случайно, а на основе предыдущих экспериментов с ПО;

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

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

Чтобы сделать модели надежности ПО трактуемыми и универсальными, необходимо применить нечеткую методологию, так как поведение ПО в смысле надежности является нечетким по природе. Можно сделать это заключение, опираясь на следующие утверждения:

1. Сложно точно описать поведение потоков входных данных. Это объясняется необходимостью комбинировать различные стратегии в процессе отладки и невозможностью представить отклонение различных тестов от реальных входных данных. Поэтому для ээфективности управления входными тестами в моделях надежности ПО целесообразно использовать нечеткие методологии.

2. Крайне трудно описать влияние человека на процесс отладки. Исследования по эргономике утверждают, что поведение человека является но своей природе нечетким. Следовательно, для учета влияния человека в моделях надежности ПО разумно применить нечеткие методологии.

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

Как случайность, так и нечеткость, лежат в основе процесса отладки, но если учесть неудачность большинства вероятностных моделей и требования о трактуемости и универсальности моделей, то можно сделать вывод, что именно нечеткая модель надежности ПО является лучшей альтернативой вероятностным моделям.

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

рядку. Каждый из 12 факторов определяется некоторым набором показателей, причем один и тот же показатель может относиться сразу к нескольким факторам. Лля расчета величины ¡-го фактора используется следующая формула:

/г = Х>,"% (1)

где

Р1 = 0 ,Р2 = = = 1 = $ = 1-

весовые коэффициенты, причем можно взять N равное 20 ¡и(] = 1, - числовые значения показателей, определяющих г - ый фактор; 5; - число показателей, определяющих г - ый фактор. Величины /, определяются для всех г = 1,..., Р с учетом введенного отношения порядка и условия нормированное™ коэффициентов

£^ = 1 для г = 1,(2)

7=1

Поскольку < N + 1, то для каждого 1 количество /, больше 1, т.е. для каждого фактора получаем несколько значений /,. В дальнейшем определяется среднее значение а также дисперсия и среднеквадратичное отклонение В итоге получаем Р значений факторов. Численное значение качества программного продукта определяется как среднее арифметическое полученных значений факторов.

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

• вместо одного эксперта качество программы должны оценивать несколько специалистов, причем как в области программирования, так и в области применения данного программного продута;

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

• при дальнейшей обработке мнений экспертов будет затруднительно свести выбранные ими для себя числовые шкалы к одной единой шкале;

• малый объем выборки затрудняет использование статистических методов обработки результата.

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

Поскольку к] является нечеткой величиной, то и /,- будет нечеткой величиной и ее функция принадлежности может быть задана формулой (3)

Стоит отметить, что в формуле (3) условие нормированное™ весовых коэффициентов - формула (2) - сохранится без изменений.

М/, =

=

2 <;,■ ЦЦг;-), х <

1, а: = Е ЩРз

у=1

г- Ё л,-), X > 2 тур,-

Е Рм У=1

(3)

Л(

;=1

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

1 п

/ £ рф)-х<1х

1 я

IЕ *«/,•(«)<&

О !=1

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

Кроме того, во второй главе расписан алгоритм, реализующий предложенный выше метод многокритериального оценивания готового программного продукта.

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

Пусть Т; - интервал времени между (г - 1 )-ым и г-ым откзами программы. Пусть Т; нечеткая переменная с функцией распределения возможностей

Ш(х) = ехр (-(х-а{)2).

Здесь а,- может рассматриваться как ожидаемое время до следующего (1-го) отказа программы. Предполагается, что

а,- = /(¿),

где / - некоторая функция, характеризующая рост надежности программы в процессе исправления ошибок, например, /(¿) = А» + В. Требуется найти функцию и ее параметры так, чтобы она наиболее точно отражала изменение надежности программы в процессе отладки.

Лля того, чтобы учесть дополнительные предположения, касающиеся числа исправляемых и вносимых ошибок, введем нечеткую переменную Д-, которая характеризует число вносимых и исправляемых ошибок после (» — 1)-го отказа. Эта переменная принимает целые значения в интервале (—оо, + оо). Отрицательные значения D¡ означают, что новые ошибки были внесены в программу. Положительные значения означают, что число исправленных ошибок после ¿-го отказа увеличилось. Почему переменная Д- является нечеткой? Это следует 1а факта , что отладочный процесс полностью зависит от компетенции, опыта и активности программиста. А эти характеристики трудно измерить точно или в контекте вероятностной меры.

Обозначим

тг(А;) = <т(Д- = к),

где 7г(к) функция принадлежности перемнной О,-.

Пусть {а;1,...,жв} - последовательность интервалов времени между отказами программы. Значения этих интервалов априори известны, так как являются наблюдаемыми в процессе отладки. Тогда можно записать функцию правдоподобия в контексте меры возможностей следующим образом:

Ь{хи...,ха) = <г{Тк, = хиТк2 = х2,...,Тк, =а?„,Д1 = =

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

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

Л(£) = эиршахшт тг(А;п+1)} ,

х>е «а+1

где вектор {к1,к2,...,кп} содержит оптимальные значения, полученные после решения оптимизационной проблемы.

В работе доказано, что данную оптимизационную проблему можно свести к следующему: минимизировать функцию Г вида

п

^ = 1 • ги + • + 0 • Ь + 0 • Л

1=1

при следующем наборе ограничений

¿=1

т,- > 0

ТП{< 2-ю г = 1, ...,п,

где

га, = к{ + IV — Л т{> 0

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

Алгоритм предложенной модели оценки и прогноза надежности ПО был реализован в компьютерной программе, позволившей проверить разработанный метод на практике.

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

В качестве меры точности моделей использовлись максимально е абсолютное отклонение (МАО), среднеквадратичное отклонение (СО) и предсказанное время до ошибки (ГШ). Анализ результатов прогнозирования показывает, что новая модель в большинстве случаев дает лучший прогноз по сравнению с моделью К.Кая. В таблице приведены результаты вычислительного эксперимента для набора экспериментальных данных ТиБАБ Лондонского центра надежности ПО

характеристики попал модель модель К. Кал

МАО 2376.89 12198.1

СО 13053.9 26196.2

пв 2293.73 3213.66

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

3. ЗАКЛЮЧЕНИЕ

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

Основные результаты исследования состоят в следующем:

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

'2. В работе развит и формализован возможностный подход применительно к оценке надежности программных средств.

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

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

5. С помощью большого объема известных экспериментальных данных были проведены исследования предложенной модели. Они показали, что для большинства рассмотренных программ прогноз, сделанный на основе предложенной модели, точнее, а в частных случаях сравним с прогнозом, сделанным на основе последних исследований, выполненных под руководством К.Кая.

6. Показано, что на основе математического аппарата теории нечетких множеств, принципиально возможно переориентировать известный метод многокритериального оценивания уров-

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

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

По теме диссертации опубликованы следующие работы:

1. Шубинский М.И. Проблемы надежности педагогических программных средств. Тезисы докладов I международной научно-практической конференции " Информатизация в образовании". - С-Пб., 1995г.

2. Шубинский М.И. Оценка надежности программ, использующих автоматические методы распараллеливания. Тезисы докладов международной конференции "Региональная информатика - 95". - С-Иб., 1995г.

3. Шубинский М.И. Один из подходов к анализу надежности программного обеспечения.//Информационные технологии и интеллектуальные методы. - С-Пб., СПИИРАН,1996г.

4. Шубинский М.И. Проблемы оценки надежности программного обеспечения. Тезисы докладов международной конференции "Региональная информатика - 96".- С-Пб.,1996г.

5. Уткин Л.В., Шубинский М.И. Возможностнал модель прогноза надежности программного обеспечения с нечетким числом исправляемых ошибок. //Информационные технологии

и интеллектуальные методы. Вып.2. - С-Пб., СПИИРАН, (принята к публикации в 1996г.).

6. Шубинский М.И. и др. Отчет о НИР "Линота". - С-Пб.,1995г.

7. Шубинский М.И. и др. Отчет о НИР "Лиса". - С-Пб.Д995г.

8. L.V.Utkin, S.V.Gurov, M.I.Shubinsky, Reliability growth in the probability and possibility contexts, Microelectron.Reliab., 36(9), 1155-1166, 1996.