Метод управления надежностью программных средств

Доклады БГУИР

Doklady BGUIR

2017, № 1

УДК 004.052

МЕТОД УПРАВЛЕНИЯ НАДЕЖНОСТЬЮ ПРОГРАММНЫХ СРЕДСТВ

С.Н. НЕБОРСКИЙ

Белорусский государственный университет информатики и радиоэлектроники, Республика Беларусь

Поступила в редакцию 8 декабря 2016

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

Ключевые слова: программное средство, надежность, оценка качества.

Abstract. A method to manage reliability of software is proposed in this paper. The method is based on fast forecasting of software reliability and monitoring of reliability changes through time. Reliability forecast is given by building correlation between known issues in software and subcharacteristics of reliability. Changes of relibility are monitored with exponentially weighted moving average charts.

Keywords: software, reliability, quality assessment.

Doklady BGUIR. 2017, Vol. 103, No. 1, pp. 58-64 Software reliability management method S.N. Niaborski

Введение

Современный процесс разработки программных средств (ПС) предполагает непрерывный контроль качества ПС и управление качеством. В настоящее время разработаны модели качества ПС, адаптированные для конкретных классов ПС, постоянно предлагаются новые метрики оценки качества, позволяющие более точно определить свойства ПС заданного класса [1]. Анализ литературы [2] показывает, что, несмотря на значительное количество информации по обеспечению качества ПС, проблема управления качеством в условиях ограниченного времени и ресурсов для выполнения работ по контролю качества ПС является нерешенной. Предметом исследования в данной статье является надежность ПС - одна из ключевых характеристик качества ПС согласно стандарту ISO/IEC 25010:2011 SQuaRE [3]. Предлагается метод прогнозирования надежности ПС на основе информации об известных на данный момент времени ошибках ПС, преимуществом которого перед аналогами [4] являются: 1) скорость выполнения оценки, 2) возможность автоматизации процедуры оценки. Далее, в данной статье предлагается метод управления надежностью ПС путем отслеживания динамики изменения надежности. Преимуществом данного метода переда аналогами [5] являются: 1) возможность автоматического мониторинга критичных событий, которые являются сигналом для изменения процедур обеспечения качества, 2) возможность тонкой настройки чувствительности метода к результатам измерений.

Оценка надежности программного средства

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

справедливая и прогнозируемая. Справедливая оценка надежности выполняется посредством сбора всех данных, необходимых для расчета метрик отдельных подхарактеристик надежности [6]:

т

X • V; )

Р = —т- '

XVI

1=1

где Р} - оценка }-й подхарактеристики надежности, т - количество реально используемых подхарактеристик надежности, - весовой коэффициент}-й подхарактеристики надежности.

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

На практике применение справедливой оценки затруднено необходимостью сбора исходных данных для работы метрик: требуются не столько статистические данные, сколько эксперименты для измерения реальных свойств ПС. В силу этого часто используют прогнозную оценку надежности [8]. Метод прогнозирования надежности ПС состоит в выявлении связи между известными на данный момент ошибками в ПС и конкретными подхарактеристиками надежности ПС. Пусть ошибки ПС разделены на п групп (группа ошибок может соответствовать функциональным областям либо компонентам ПС), образуя множествоЕ = {в1, ..., еп}, где е{ - /-я группа ошибок. Пусть для оценки надежности ПС

используется модель надежности Я = {г, ..., }, где г}- - }-я подхарактеристика надежности.

Тогда суть предлагаемого метода прогнозирования надежности ПС заключается в следующем.

1. На основе статистических данных заполняется матрица соответствия подхарактеристик надежности г}- группам е/. Строки матрицы соответствуют группам ошибок, столбцы - подхарактеристикам надежности. На пересечении строки и столбца рассчитывается коэффициент корреляции Пирсона s/j между количеством ошибок в /-ой группе и уровнем надежности по }-ой подхарактеристике. Для вычисления данного коэффициента необходимо использовать собранные статистические данные об известных ошибках С и справедливые

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

к ___

X С - С^)

^ - к=1 ,

1 I к _ к _

XС -С)2 хХ()2

V к=1 к =1

где К - количество итераций разработки ПС; ск/ - количество ошибок в /-й группе на итерации к; с - среднее количество ошибок в /-й группе; ^ - справедливая оценка надежности по }-ой

подхарактеристике на итерации к; 1  - средняя справедливая оценка надежности по }-ой подхарактеристике.

2. На матрицу шага 1 накладывается фильтр с целью получения единичной матрицы А связей статистических данных об ошибках Е и надежности Я:

А =

^а11 а12 ... а1т ^

Vап1 ап2 ... апт)

где а1 =

1, если связь между е и гу значима

0, если связи между е и Г не значима

3. На момент выполнения прогноза определяется (фиксируется) список выявленных ошибок по каждой из групп Е.

4. Вычисляется прогнозная оценка надежности ПС по группам ei для подхарактеристики rf.

z. c — c

p = MAX

dj c ^

где ci - текущее количество ошибок в i-ой группе, которая коррелирует с rу; ct - среднее

количество ошибок в i-ой группе согласно имеющимся статистическим данным, причем Сг Ф 0;

z - среднее справедливое значение надежности ПС по у-ой подхарактеристике согласно

n

имеющимся статистическим данным; dj = ^ atj - нормирующий коэффициент,

рассчитываемый как сумма по столбцу j матрицы (3) соответствия подхарактеристик надежности R группам E, т.е. количество групп ошибок ПС, которые коррелируют с j-ой подхарактеристикой надежности; причем d. > 1 - условие наличия связи между j-ой

подхарактеристикой надежности и хотя бы одной из групп ошибок E = {вг, ..., en} (условие

dj Ф 0 является обязательным).

Функции MAX и MIN в формуле (4) ограничивают прогнозную оценку с тем, чтобы она была на отрезке [0; 1]. Чем ближе значениеру к 1, тем выше надежность ПС.

5. Интегральный прогнозируемый уровень надежности ру по j-ой подхарактеристике надежности вычисляется как сумма прогнозов по отдельным группам ошибок. Полученный результат и есть прогнозируемая оценка надежности:

n

pj = MIN

i=i

6. Выполняется расчет справедливых значений надежности по каждой из подхарактеристик на основе стандартной (полной) методики оценки надежности ПС, применяемой на предприятии: определяются конкретные значения множества Z = {z, z2,..., zm} . Рассчитанные значения заносятся в базу статистических данных вместе с

информацией об известных на момент оценки надежности ошибках C = {c, c2,..., cn}. Данный шаг алгоритма прогнозирования надежности может выполняться реже, чем сам прогноз: например, при типичной итерации разработки в 2 недели прогноз выполняется также раз в 2 недели, но вычисление справедливой надежности - раз в 2 месяца.

Управление надежностью программного средства

Современный процесс создания ПС предполагает итерационную разработку и поставку ПС. При этом перед каждой поставкой ПС выполняется оценка его надежности. Однако результаты оценки надежности не способны в полной мере проиллюстрировать динамику изменения надежности, а значит, без дополнительной обработки непригодны для управления надежностью. Для управления надежностью ПС в данной статье предлагается использовать метод экспоненциально взвешенного скользящего среднего значения функции надежности (EWMA - exponentially weighted moving average) [9].

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

Функция надежности показывает, как изменяется надежность Р в зависимости от времени. Пример данной функции для некоторого ПС приводится в табл. 1.

Таблица 1. Пример задания функции надежности для некоторого ПС

Итерация к Надежность Рк Итерация к Надежность Рк

1 0,89 11 0,82

2 0,91 12 0,88

3 0,92 13 0,94

4 0,85 14 0,92

5 0,84 15 0,74

6 0,93 16 0,86

7 0,95 17 0,89

8 0,9 18 0,88

9 0,89 19 0,89

10 0,91 20 0,92

На основе этих данных можно построить график зависимости надежности от времени. На рис. 1 значения надежности отражены на оси ординат, а номера итераций - на оси абсцисс. Также нанесено целевое значение функции надежности, определяемое эмпирически исходя из специфики проекта. Для данного примера в качестве целевого выбрано 0,9.

Рис. 1. График зависимости надежности от времени для некоторого ПС

Несмотря на то, что значение надежности часто ниже целевого значении 0,9, по данному графику нельзя сказать, в какой момент необходимо принимать решение об изменении процедур обеспечения качества, т.е. нельзя однозначно сказать, что надежность заметно ухудшилась и это не случайное отклонение. Отчет на вопрос о том, когда надо принимать управляющее решение, дает ЕММЛ.

Значения ЕЖМЛ вычисляются по следующей формуле [9]:

ЕШМАк = А Рк + (1 - А,) ЕшмАк

где к - номер итерации, А - весовой коэффициент (0 < А < 1) .

Весовой коэффициент для статистических данных выбирается эмпирически. В данной работе на основе проведенных экспериментов по управлению надежностью предлагается использовать 0,2. Так как формула оперирует над временным рядом, надо определить, как задать первую точку / = 1. В данной работе в качестве первой точки предлагается использовать целевое значение функции надежности 0,9. Тогда ЕШЫЛ2 рассчитывается следующим образом: ЕШ^А = А Р2 + (1 -А) EWMA = 0,2 • 0,91 + (1 - 0,2) • 0,9 = 0,902.

В табл. 2 представлены результаты расчета EWMA для заданного примера.

Итерация к EWMЛk Итерация к EWMЛk

1 0,9 11 0,886079

2 0,902 12 0,884863

3 0,9056 13 0,89589

4 0,89448 14 0,900712

5 0,883584 15 0,86857

6 0,892867 16 0,866856

7 0,904294 17 0,871485

8 0,903435 18 0,873188

9 0,900748 19 0,87655

10 0,902598 20 0,88524

На рис. 2 приведен график ЕШМЛ для рассматриваемого примера.

Рис. 2. Пример графика ЕШМЛ

Для каждой оценки надежности, получаемой в результате очередной итерации разработки ПС к, рассчитывается значение EWMЛk. Расчет включает определение весов предыдущих оценок. Так, предыдущие значения влияют на EWMЛ, но чем дальше они расположены на временной оси от текущего момента времени, тем меньше их влияние. Эта особенность является принципиальным моментом, позволяющим применять EWMЛ для управления надежностью: результаты оценки надежности на ранних итерациях разработки должны вносить меньший вклад в анализ надежности, чем результаты последних итераций.

Пунктирная линия на графике EWMЛ - это целевое значение 0,9. На график также нанесена штрихпунктирная линия управляющего ограничения ЬСЬ - нижняя граница надежности. Пересечение с данной линией является сигналом для изменения процедур управления качеством ПС. Расчет нижней границы надежности ЬСЬ выполняется следующим образом [9]:

ЬСЬ = ц0 - Ра

X

(1 - (1 -Х)2к),

2-X

где ц0 - целевое значение функции надежности, Р - коэффициент масштаба,

а =

X(ЕШМАк - ЕШМА)2

К -1

- стандартное отклонение скользящего среднего значения EWMЛ.

Следует отдельно отметить степень 2к под функцией квадратного корня. Этот аргумент как раз является причиной того, что управляющие ограничения - не константно. С ростом к управляющий лимит стремится к

ЬСЬ = - Ра.

X

2-X

К

к =1

Управляющий лимит для первой итерации рассчитывается следующим образом: ЬСЬХ = 0,9 - 2 • 0,04793^°^ (1 - (1 - 0,2)2) = 0,880827.

Как можно видеть на графике, надежность после 15-й итерации пересекла управляющее ограничение, что послужило сигналом к изменению процедур обеспечения качества ПС.

Важным моментом является выбор весового коэффициента X . Весовой коэффициент в расчете ЕШМЛ Х = 0,2, а также коэффициент масштаба в управляющем ограничении р = 2 позволяют управлять чувствительностью графика ЕШМЛ. Данные параметры позволяют задать степень влияния предыдущих итераций и установить, как сильно может отклоняться от среднего значение функции надежности до того, как будет сгенерирован сигнал по изменению процедур управления качеством ПС.

Заключение

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

Так как справедливая оценка надежности в общем случае является ресурсоемкой и продолжительной во времени операцией, для оценки надежности предлагается использовать метод ее прогнозирования. Метод состоит в установлении корреляции между ошибками ПС и подхарактеристиками качества ПС. Преимуществами его перед аналогами являются: 1) скорость выполнения оценки, 2) возможность автоматизации процедуры оценки.

Предложенный метод управления надежностью был применен на практике на одном из предприятий-резиденте Парка Высоких Технологий (государственное учреждение «Администрация Парка высоких технологий») при разработке ПС расчета кредитных рисков. Условия разработки требовали поставки ПС не реже, чем 2 раза в неделю, команда разработчиков насчитывала 10 человек. Эксперимент показал, что использование предложенного метода позволяет непрерывно контролировать надежность поставляемого ПС за счет автоматической процедуры оценки надежности ПС, а также своевременно применять меры по улучшению его надежности.

Список литературы

1. Vugt B. Investigation for synergy Effects and Preconditions in merging Quality Assurance-Systems: Shown on the Example of Software Requirements Management. Hamburg: Diplomarbeiten Agentur, 2001. 128 p.

2. Sillitti A., Ceschi M., Russo B. Managing uncertainty in requirements: a survey in documentation-driven and agile companies // Software Metrics. 2005. P. 10-17.

3. ISO/IEC 25010:2011. Systems and software engineering - Systems and software Quality Requirements and Evaluation (SQuaRE) - System and software quality models.

4. Pandey A.K., Goyal N.K. Early Software Reliability Prediction. New York: Springer, 2013. 153 p.

5. Pham H. Handbook of Reliability Engineering. New York: Springer Science & Business Media, 200б. бб3 p.

6. ГОСТ 28195-99. Оценка качества программных средств : Общие положения.

7. Дроботун Е.Б. Критичность ошибок в программном обеспечении и анализ их последствий // Современные телекоммуникационные и информационные технологии. 2009. № 4. С. 73-74.

8. Неборский С.Н., Бахтизин В.В. Метод прогнозирования надежности программных средств // Докл. БГУИР. 2015. № 5 (91). С. 41-4б.

9. Montgomery D. Introduction to Statistical Quality Control бШ ed. New York: John Wiley & Sons, 2008. 752 p.

References

1. Vugt B. Investigation for synergy Effects and Preconditions in merging Quality Assurance-Sy stems: Shown on the Example of Software Requirements Management. Hamburg: Diplomarbeiten Agentur, 2001. 128 p.

2. Sillitti A., Ceschi M., Russo B. Managing uncertainty in requirements: a survey in documentation-driven and agile companies // Software Metrics. 2005. P. 10-17.

3. ISO/IEC 25010:2011. Systems and software engineering - Systems and software Quality Requirements and Evaluation (SQuaRE) - System and software quality models.

4. Pandey A.K., Goyal N.K. Early Software Reliability Prediction. New York: Springer, 2013. 153 p.

5. Pham H. Handbook of Reliability Engineering. New York: Springer Science & Business Media, 2006. 663 p.

6. GOST 28195-99. Ocenka kachestva programmnyh sredstv : Obshhie polozhenija.

7. Drobotun E.B. Kritichnost' oshibok v programmnom obespechenii i analiz ih posledstvij // Sovremennye telekommunikacionnye i informacionnye tehnologii. 2009. № 4. S. 73-74.

8. Neborskij S.N., Bahtizin V.V. Metod prognozirovanija nadezhnosti programmnyh sredstv // Dokl. BGUIR. 2015. № 5

9. Montgomery D. Introduction to Statistical Quality Control 6th ed. New York: John Wiley & Sons, 2008.

l52 p.

Сведения об авторе

Information about the author

Неборский С.Н., к.т.н., доцент, доцент кафедры программного обеспечения информационных технологий Белорусского государственного университета информатики и радиоэлектроники

Niaborski S.N., PhD, associate professor, associate professor of information technology software department of Belarusian State University of Informatics and Radioelectronics

Адрес для корреспонденции

Address for correspondence

220013, Республика Беларусь,

г. Минск, ул. П. Бровки, д. 6,

Белорусский государственный

университет информатики и радиоэлектроники

тел. +375-17-293-23-88;

e-mail: sergei.neborski@gmail.com;

Неборский Сергей Николаевич

220013, Republic of Belarus, Minsk, P. Brovka st., 6, Belarusian State University of Informatics and Radioelectronics tel. +375-17-293-23-88; e-mail: sergei.neborski@gmail.com; Niaborski Sergei Nikolaevich