НАУЧНО-ТЕХНИЧЕСКИИ ВЕСТНИК ИНФОРМАЦИОННЫХ ТЕХНОЛОГИИ, МЕХАНИКИ И ОПТИКИ май-июнь 2017 Том 17 № 3 ISSN 2226-1494 http://ntv.ifmo.ru/
SCIENTIFIC AND TECHNICAL JOURNAL OF INFORMATION TECHNOLOGIES, MECHANICS AND OPTICS
May-June 2017
Vol. 17 No 3 ISSN 2226-1494
http://ntv.ifmo.ru/en
УДК 004.052.42
МЕТОДИКА ЧИСЛЕННОГО АНАЛИЗА ЭФФЕКТИВНОСТИ ОТЛАДКИ
ПРОГРАММНЫХ СРЕДСТВ А.И. Данилов", А.А. Даниловb
a Военно-космическая академия имени А.Ф. Можайского, Санкт-Петербург, 197198, Российская Федерация b ООО «Нокиа Солюшнз энд Нетворкс», Санкт-Петербург, 192019, Российская Федерация Адрес для переписки: [email protected] Информация о статье
Поступила в редакцию 30.03.17, принята к печати 18.04.17 doi: 10.17586/2226-1494-2017-17-3-543-551 Язык статьи - русский
Ссылка для цитирования: Данилов А.И., Данилов А.А. Методика численного анализа эффективности отладки программных средств // Научно-технический вестник информационных технологий, механики и оптики. 2017. Т. 17. № 3. С. 543-551. doi: 10.17586/2226-1494-2017-17-3-543-551
Аннотация
Предмет исследования. Исследована нестационарная модель надежности программ и на ее основе предложена методика численного анализа эффективности отладки программных средств. Моделирование эффективности процессов отладки программ позволяет комплексно планировать их финальное качество, затрачиваемые ресурсы и необходимое время на различных этапах реализации проектов. Методы. Методика основана на предложенной усовершенствованной численной модели отладки программ. Процесс обнаружения ошибок аппроксимируется экспоненциальным законом, а процесс устранения - двухфазным обобщенным распределением Кокса. Процесс отладки программ после аппроксимации представляется марковской системой обслуживания с дискретным множеством состояний и непрерывным временем. Предусмотрена возможность использования вероятностей обнаружения ошибок для каждого модуля при их тестировании. Приведены модифицированный размеченный граф и система дифференциальных уравнений, численное решение которой позволяет вычислить частные показатели целевого эффекта процессов отладки программных средств: вероятности пребывания системы в определенных состояниях, функции распределения времени обнаружения и устранения ошибок, математические ожидания случайных величин, количество обнаруженных или устраненных ошибок. Для комплексного (с учетом затрачиваемых ресурсов) оценивания эффективности этих процессов использован обобщенный показатель -вероятность достижения цели операции (отладки). Основные результаты. Разработанная методика применена при исследовании эффективности реализованного проекта. Приведены результаты расчетов как частных показателей целевого эффекта отладки программ, так и комплексного показателя эффективности. Определено требуемое время отладки для достижения заданных показателей качества программ. Выполнен анализ влияния целевого эффекта и времени на эффективность отладки (на вероятность достижения цели операции). Практическая значимость. Разработанная методика позволяет учитывать оценки надежности для каждого модуля в отдельности, а аппроксимация двухфазным обобщенным распределением Кокса снимает ограничения на использование законов распределений времени исправления ошибок. Это обобщает известные модели, упрощает подготовку исходных данных, повышает точность моделирования процессов отладки программ и позволяет учитывать состоятельность (мощность) тестов, искать пути повышения показателей надежности программ путем формирования тестов, обнаруживающих ошибки с высокой вероятностью. Предложенная методика позволяет не только рассчитать частные показатели надежности программных средств, но и вычислить комплексный показатель эффективности процессов отладки, выработать практические рекомендации по эффективной организации этих процессов. Ключевые слова
модель, эффективность, программные средства, ошибка, вероятность, распределение Кокса
NUMERICAL ANALYSIS METHODS OF SOFTWARE TEST EFFICIENCY
A.I. Danilov", A.A. Danilovb
a Mozhayskiy Military Space Academy, Saint Petersburg, 197198, Russian Federation b Saint Petersburg Nokia Solutions and Networks, Saint Petersburg, 192019, Russian Federation Corresponding author: [email protected]
Article info
Received 30.03.17, accepted 18.04.17 doi: 10.17586/2226-1494-2017-17-3-543-551 Article in Russian
For citation: Danilov A.I., Danilov A.A. Numerical analysis methods of software test efficiency. Scientific and Technical Journal of Information Technologies, Mechanics and Optics, 2017, vol. 17, no. 3, pp. 543-551 (in Russian). doi: 10.17586/2226-1494-2017-17-3-543-551
Abstract
Subject of Research. A nonstationary software testing model is studied. Numerical analysis methods of software testing efficiency based on this model are developed. Modeling of software testing efficiency enables to plan comprehensively the final quality, resources and time required at various project implementation stages. Methods. The technique is based on the proposed improved numerical model for software testing. The process of errors detecting is approximated by the exponential law and the process of elimination by generalized two-phase Cox distribution. The software debugging process after approximation is described by Markovian queue with a discrete set of states and continuous time. The possibility is provided to use the probability of errors detection for each module during their testing. The paper presents the modified marked graph and the system of differential equations; its numerical solution gives the possibility to calculate specific indicators for target effect of software debugging process: probability of certain system states, the time distribution function for errors detection and elimination, the mathematical expectation of random variables and the number of detected or corrected errors. The probability of operating goal achievement (testing) is used as an overall index for the integrated effectiveness evaluating of these processes (including required resources). Main Results. The developed methodology is applied for effectiveness research of the actual project. The private indicators of target effect and integrated efficiency indicator for testing are calculated. The required testing time for specified software quality indicators achievement is identified. The analysis of target effect and time influence on testing effectiveness is performed (on the probability of operation goal achieving). Practical Relevance. The suggested methodology enables to take into account the reliability assessment for each module separately. The Cox approximation removes restrictions on the usage of arbitrary time distribution for fault resolution duration. That generalizes well-known models, simplifies the initial data preparation, improves the accuracy of software test process modeling and helps to take into account the viability (power) of the tests. With these models we can search for the ways of software reliability improvement by generating tests that detect errors with high probability. This methodology gives the possibility to calculate not only the private reliability software indicators, but the integrated indicator of software testing process effectiveness and to develop practical recommendations for effective organization of these processes. Keywords
model, effectiveness, software, error, probability, Cox distribution
Введение
Обеспечение требуемого финального качества (и в первую очередь надежности) программных средств (ПС), сокращение затрат и сроков на их разработку могут быть достигнуты не только за счет использования более совершенных технологий, сред разработки и средств автоматизации отладки, но и путем более эффективного планирования и организации проведения работ при реализации проектов. Следовательно, планирование и распределение ресурсов программных проектов являются важными управленческими задачами. Для решения этих задач могут быть использованы средства математического моделирования надежности ПС и эффективности процессов их разработки (отладки). К настоящему времени в научной литературе предложено большое количество различных моделей для оценивания и предсказания надежности ПС на различных этапах их жизненного цикла. Подробный обзор и описание таких моделей даны в [1-12]. Анализ показывает, что все известные модели в совокупности имеют ряд недостатков: модели не обладают достаточной общностью (универсальностью); описывают процессы обнаружения, но не устранения ошибок; моделируют процессы обнаружения и исправления всех прогнозируемых ошибок, хотя не все эти ошибки могут быть допущены (найдены) с единичной вероятностью, т.е. модели не учитывают вероятностный характер обнаружения ошибок и состоятельность (мощность) используемых тестов; для оценивания надежности ПС и эффективности процессов их отладки используют частные показатели. Однако при реализации проектов далеко не безразлично, какой ценой, за какое время и к какому сроку получен целевой эффект (финальное качество ПС). Чаще всего именно расход ресурсов и времени предопределяют стратегию реализации проектов.
Целью настоящей работы является разработка методики численного анализа эффективности отладки ПС. Эта методика базируется на предлагаемой обобщенной динамической модели процессов отладки ПС, в которой предусматривается возможность учитывать вероятностные параметры обнаружения ошибок для каждого модуля при тестировании программ или состоятельность используемых тестов. Для реализации общих (не экспоненциальных) предположений о характере распределения интервалов времени исправления найденных ошибок (с целью повышения точности моделирования) используется аппроксимация по методу Кокса. Наряду с частными показателями, в качестве комплексного показателя эффективности (ПЭ) процессов отладки ПС используется вероятность достижения цели.
Таким образом, объектом исследования в предлагаемой работе является ПС на этапе проектирования, реализации или тестирования (отладки). Предмет исследования и разработки - методика численного анализа эффективности отладки ПС.
Методика численного анализа эффективности отладки программных средств
1. Определение вероятности обнаружения ошибок при тестировании программного модуля.
При задании исходных данных для подобных моделей распространенным подходом является использование собранной статистики уже завершенных проектов. Однако для учета особенностей конкретного проекта широко используются различные программные метрики, характеризующие программный продукт (его структуру, сложность, интерфейсы, факторы разработки и др.). Так, с точки зрения совре-
менного объектно-ориентированного программирования целесообразно использовать наборы метрик Чайдамбера-Кемерера и Бансия-Дэвиса [13, 14]. Значения метрик собираются из документов проектирования. На основе полученных метрик решается задача классификации модулей. Так, вероятность наличия ошибки в модуле ю,- можно оценить с использованием логистической регрессии и выразить формулой [13, 14]
1 (1
ю, = 1/ (1 + е
-(во +£в л)
где в/ - параметры логистической регрессии, которые определяются методом максимального правдоподобия; х) - значение метрики сложности.
По принятому в [2, 9] подходу модели строятся на результате двоичной классификации модулей ПС (надежные - ненадежные). Новизна предлагаемой модели заключается в отказе от двоичной классификации модулей и использовании в ней оценки надежности для каждого модуля.
2. Аппроксимация произвольных законов распределения интервалов времени исправления найденных ошибок двухэтапным распределением Кокса.
Как показано в [15], произвольное распределение случайной величины можно аппроксимировать распределением фазового типа (гиперэкспоненциальным, Эрланга или Кокса). Эта аппроксимация позволяет свести случайный процесс к марковскому, получить и численно решить систему дифференциальных уравнений, которая полностью описывает поведение соответствующей модели. Диаграмма двухфазного обобщенного распределения Кокса (С2) представлена на рис. 1.
Вход
р
1-р
Выход
Рис. 1. Двухфазное распределение Кокса
Оно представляет собой смесь двух экспоненциальных фаз с интенсивностями -1 и -2. При этом после прохождения первой фазы с некоторыми вероятностями р и 1-р = р' выбираются продолжение процесса (следующая фаза) или завершение процесса. Моменты распределения С2 с вероятностью р являются моментами свертки показательно распределенных задержек в фазах, а с дополнительной к ней -моментами задержки в первой фазе. Таким образом, для расчета параметров С2 по трем начальным моментам имеем следующую систему уравнений:
1 - Р
(
Л
1 - Р
+ Р
\
— +—
V -1 -2 У
= /
-1
1 - Р
+ Р
Л
+ Р
1
-2 1
-3+-т-
V -1 -1- 2
- 2 у
= /2
(1)
--2 + —
—1— 2 -2
= /3,
где / = g¡ /,!, , = 1,3; gi - , -й начальный момент исходного распределения.
Решая систему уравнений (1), можно получить параметры аппроксимирующего распределения С2: Р = - 2( /1-1 - 1)/-1
<-1 = (-2/1 - 1)/(-2/2 - /) (2) .-2 = (/1/2 - /ъ±!Б )/(2( /2 - /1/3)), где Б = (//2 -/3)2 -4(/2 -/1 /ъ)/ -/2).
В простейшем случае при р = 1 и аппроксимации по двум начальным моментам из (1) получаем
-1,2 = (/1^4/2 -3/12)/(2(/12 -/2)). (3)
3. Обобщенная динамическая модель процессов отладки ПС.
Рассмотрим следующую стратегию распределения времени и ресурсов между этапами тестирования и исправления найденных ошибок (другие стратегии и модели опубликованы в [2-9]). Обнаруженные ошибки устраняются последовательно по мере их выявления, а тестирование во время исправления найденных ошибок не приостанавливается.
После аппроксимации представим процессы обнаружения и исправления ошибок марковским процессом с дискретным множеством состояний и непрерывным временем. Диаграмма (размеченный граф) состояний и переходов таких процессов показана на рис. 2.
Рис. 2. Граф переходов между состояниями марковской системы
При составлении графа учитывалось, что ПС может содержать N ошибок. Вероятность обнаружения (необнаружения) /-ой ошибки равна га,, (га, = 1-га,.). Время обнаружения (необнаружения) ошибок распределено по экспоненциальному закону с интенсивностями га,.X,, (га,.X,,), зависящими от номера ошибки. Произвольное распределение времени устранения всех ошибок аппроксимируется двухэтапным распределением Кокса с параметром р=1 (1-р = р' = 0) и интенсивностями экспоненциальных фаз ц1, ц2.
Состояния (,, к, ]) такой системы в каждый момент времени будем характеризовать количеством обнаруженных, но еще не исправленных ошибок ,, числом устраненных (сумма ненайденных и исправленных ошибок) ] (,', ] = 0, N ) и фазой к (к=0,1) распределения Кокса длины интервалов времени исправления ошибок. Вероятности пребывания системы в этих состояниях обозначим Р,,к](0. Переход системы из состояния (,, к, /) в состояние (,+1, к, /) означает, что при тестировании была обнаружена (,+/+1)-я ошибка. Переход из состояния (,, к, ]) в состояние (,, к, /+1) означает, что при тестировании подтверждено отсутствие ошибки или она не найдена. Переход из состояния (,, 0, /) в состояние (,—1, 0, ]+1), означает, что была исправлена (/+1)-я обнаруженная ошибка, устранение которых описывается двухэтапным распределением Кокса с интенсивностями ць ц2. В таком представлении общее число состояний системы вычисляется по формуле Nc = (N +1)2. Процессы в рассматриваемой марковской цепи описываются системой из Nc дифференциальных уравнений:
«Р, к, / С)
л ■ = 5(1 - к)рк,/ (Г)га,+/X,+/ - 8(N - г - /)Р. к ] (Г) /+1 -
-5(05(1 - к)р,м (0ц + 5(к)[рд/ (Г)рц - Р,Х] (0^] + 5(])5(1 - к)[Рр+ц>/-1(/)^ + +р?,0,]-1 (')(1 - га,,+] +] + Р+1Д]-1«)(1 - р)ц ] + 5(])5(к)Ру>]-! (0(1 - га,,+] +/,
(4)
11, если т > 0 - -
где 5(т) = < ; , = 0, N ; ] = 0, N -,; к=0, 1; значения параметров С2: р, ц1, ц2 вычисляются
[0, если т < 0
по формулам (1)-(3).
Для каждого момента времени t должно соблюдаться условие нормировки вида
N-I N N-,'
,, о ^ ■ о Р,0,] (0 ,,=1 ^ ■=0 Рд,] (0 = 1. Задав начальные условия к системе уравнений в виде
[1, если I + к+] = 0
^¡к / (0) = 1 , можно найти численное решение соответствующей задачи Коши для про-
[0, если 1 + к + ] ф 0
извольного значения времени г. Используя решение предложенной системы (4), можно получить ряд важных частных вероятностных показателей процесса испытаний и состояния ПС.
4. Вычисление частных вероятностных показателей эффективности процесса испытаний и состояния ПС.
Вероятность того, что в процессе испытаний было найдено ровно 1 ошибок (сумма найденных, но не исправленных и устраненных ошибок):
(0 = Е;=0 Р-М О +Е=1 Р-;+ш-1(0 . (5)
Математическое ожидание числа найденных ошибок:
N (г) = Г (г). (6)
Вероятность того, что в процессе испытаний было устранено (исправлено или отсутствовало) ровно ] ошибок:
р (о=1Г0Ч0,; с)+1 Г=;Чм (г > (7)
Математическое ожидание числа устраненных ошибок:
Еи
^ О (8)
Функция ^ (г) распределения времени устранения не менее 1 ошибок:
Р « = Г иР ('), 1 =0, N. (9)
Время отладки, которое требуется, чтобы устранить итр ошибок с заданной вероятностью Ртр : Ти^ =t\FNтp (?) > Ртр , (10)
где итр - требуемое количество ошибок (и); Ртр - требуемая вероятность устранения итр ошибок.
Вероятность безотказной работы Р(г, т) в течение интервала т после испытаний в течение време-
ни г:
Р(г, т) = 1 -Г^1 Рни (г)(1 - е"'+1Ъ'+1Т). (11)
-•] =0 1 0,0,^ V
5. Вычисление обобщенного показателя эффективности отладки программных средств. Приведенные вероятностные показатели качества процессов отладки ПС можно отнести к частным показателям целевого эффекта. При комплексном оценивании эффективности этих процессов необходимо использовать обобщенный показатель [16], который называется вероятностью достижения цели операции Р и в общем случае вычисляется по формуле:
да да
>
Рдц =д^и>е{^и>}) = Дхп.-К„>)= |...| ф* (г<и>(^>), (12)
<
—да —да
где У< п> - п-мерный (п=п1+п2+п3) вектор показателя качества результатов операции, который должен учитывать минимум три аспекта: результативность - У<®>, ресурсоемкость - и оперативность - У® >;
¿<и> - п-мерный вектор требований к вектору У<п> (или область допустимых значений вектора У<п>).
Как видно из (12), для вычисления вероятности РДЦ необходимо знать интегральный закон распределения ФУ (У< ) случайного вектора У<п> и закон распределения р (Я) случайного вектора
У<п> Ь<п>
Ъ<п>. Для получения значений РДЦ могут использоваться следующие методы: аналитический, численный, статистических испытаний, статистического имитационного моделирования. Аналитическое построение функции ФУ (У< п>) распределения показателя У и вычисление РДЦ представляет трудоем-
У<п> ДЦ
кую задачу. Решение этой задачи может быть упрощено в случае, если известны функциональные связи
между компонентами вектора У< п> (операционный функционал - совокупность операционной функции и
функции связи). Операционная функция (ОФ) - это соотношение, описывающее зависимость целевого эффекта от расходуемых операционных ресурсов и времени. Функция связи (ФС) - это балансные соотношения между различными характеристиками результатов операции (в частности, между ресурсами различных видов). Для нашего случая, не нарушая общности рассуждений, ограничимся симплексной канонической формой представления показателя качества результатов операции, при которой размер-
п
ность вектора У,и> равна трем, т.е. п=3. Тогда: У<3> = <у1гу2гУъ> =<9,г,т>, а его компоненты связаны монотонными зависимостями. В общем случае целевой эффект 0, вычисленный по формулам (5)—(11), связан с ресурсами такой зависимостью ОФ: 9 = Я(г, т). Пусть целевой эффект 0 и расход операционного времени т связаны с расходом ресурсов г (выделенных на отладку программ денежных средств) ФС, для которых существуют обратные функции: 9 = Я (г) ^ г =Я-1(9); т=S(г) ^ г =£-1(т).
Очевидно, что в нашем случае функции (вероятностные показатели) Я и £ - монотонно возрастающие. Это положение можно аргументировать так. При фиксированной технологии, чем больше в ходе операции расходуются ресурсы (денежные средства), тем большее время можно уделить отладке ПС. Пусть известна функция распределения / ( г) количества расходуемых ресурсов (денежных средств) г, которая является генеральной компонентой. При указанных предположениях найдем функцию распределения вектора У<3>:
Ф3> (У<3>) =Ф<9лт> (<9,г,т>) =Р[(9 >9) п (Я < г) п (Т < т)] =
=Р[(Я(г) >9) п (Я < г) п (£(г) < т)]=Р[(Я > Я-1(9)) п (Я < г) п (Я < £-1(т))] =
=Р[Я-1(9) < Я < шш{г,£-1(т)} ]=/Дшш{г,£-1(т) ]-/^[Я-1(9)].
Если известной генеральной компонентой будет операционное время с функцией распределения /т (т), то целевой эффект 9 и расход ресурсов г будут связаны с расходом операционного времени т
ФС, для которых существуют обратные функции: 9 = Я(т) ^ т=Я-1(9); г =£(т) ^ т=£-1(г). Тогда функция
распределения вектора У<3> может быть вычислена по следующей формуле:
ФУ (У<3>) =Ф<9 Я т> (<9,г ,т>) =Р[(9 >9) п (Я < г) п (т < т)] =
<3> ' '
=Р[(Я(т) >9) п (£(т) < г) п (т < т)]=Р[(т > Я-1 (9)) п (т < £-1 (г)) п (т < т)] = (13)
=Р[Я-1 (9) < т < шт{£-1(г),т} ]=/т[шт{£-1(г),т} ] -К[Я-1(9)].
Таким образом, методика численного оценивания эффективности отладки программных средств состоит из реализации пяти предложенных пунктов. Для получения методики численного анализа эффективности отладки программных средств необходимо к указанной методике добавить анализ чувствительности и влияния ПЭ к изменениям параметров, определяющих условия задачи. Эта задача решается методами теории чувствительности.
Вычислительный эксперимент
Предложенная методика позволяет не только рассчитать частные показатели надежности ПС, представленные формулами (5)—(11), но и вычислить комплексный ПЭ процессов отладки ПС РДЦ , выработать практические рекомендации по эффективной организации отладки программ. Этого можно достичь с помощью математического аппарата теории чувствительности (коэффициентов чувствительности и влияния), проанализировав зависимость ПЭ от параметров, определяющих условия задачи.
Для иллюстрации таких возможностей модели приведем результаты расчета некоторых частных показателей процесса испытаний и состояния ПС. Расчеты выполнены по формуле (9) для следующих исходных данных. Предполагается, что изначально в ПС содержится N = 10 ошибок со средними длительностями интервалов времени тестирования, равными 0,3; 0,3; 0,3; 0,7; 0,7; 1; 2; 3; 5; 10 (ч) соответственно. Распределение времени устранения каждой ошибки одинаково и аппроксимируется распределением Кокса с интенсивностями экспоненциальных фаз ц1 = 1,2375, ц2 = 0,591. Значения вероятностей обнаружения ошибок га,,, , = 1, N, указаны непосредственно на графике. На рис. 3 представлены графики функций распределения времени устранения не менее ,, (,=5-10) ошибок для рассматриваемой модели. Приведенные графики функций дают возможность оценить время отладки Ты Р , которое требуется для
устранения заданного количества ошибок NТР с заданной вероятностью . Время Т^. Р устранения
ошибок в данном случае зависит от значения вероятностей обнаружения ошибок. Получены данные о зависимости вероятности исправления всех N=10 ошибок от различных значений коэффициента вариации V распределения интервалов времени устранения ошибок. Эти данные позволили рассчитать значения требуемого времени отладки по заданной вероятности при V = 0,5; 0,75; 1,0, которое представлено в таблице.
Расчеты показывают, что переход от экспоненциальной модели надежности ПС к неэкспоненциальным дает преимущество в точности прогноза. Эта информация необходима руководителям проекта для планирования сроков сдачи ПС для определения требуемых трудозатрат и ресурсов, формирования команд программистов и тестеров.
Для иллюстрации возможностей модели по исследованию эффективности процессов отладки ПС конкретизируем условия задачи. Пусть целевой эффект $ есть вероятность устранения не менее / программных ошибок, связанная со временем отладки т соотношением (9) 9 = ^ (т) = ^=.р (т) ^ т = ¥7 '(9). Функции распределения этой вероятности для /=5 и 10 ошибок представлены на рис. 3.
Вероятность отсутствия ошибки Требуемое время отладки, ч
Значения коэффициента вариации
v=0,5 v=0,75 v=1,0
0,7 30,7 31,9 32,3
0,8 33,7 35,5 36,4
0,9 41,1 41,7 42,2
0,95 48,4 48,6 49,1
Таблица. Расчет времени отладки по вероятности отсутствия ошибок
F1 Ш /"
0,8
Г т —г / i £ f А' / i ' i /У /
0,6
i; / // /
0,4 й / /
' ' // /
0,2 | ,77 / ;_/_ // / .
; / // / .У
0 10 20 30 40 50 60 Т, ч
i=5 (ю=1) i=10 (ю=0,5)
— ;=10 (со=1) ;'=5 (со=0,1)
- - ;'=5 (со=0,5) —/=10 (со=ОД)
Рис. 3. Функции распределения времени устранения ошибок
Продолжительность времени отладки ПС т от момента начала отладки t' до момента ее окончания t", связанного с израсходованием выделенных на отладку ресурсов (денежных средств) или достижением заданной вероятности целевого эффекта, случайна и подчинена равномерному закону распределения на интервале т e[t', t"j , т.е.
ft(t)=р^т n(T;t',t' )+Д(т -1"),
где А(х) - «селектор луча» - индикатор полубесконечного интервала [0,®); П(т//') - «селектор интервала» - индикатор интервала [t',t"j.
Расходуемые в ходе отладки ПС ресурсы r (денежные средства) пропорциональны времени отладки, т.е. r = ат. Таким образом, известной генеральной компонентой будет операционное время с функцией распределения FT (т). Цель отладки ПС достигается, если [(& >9Т) п (Г < гп) п (т < тД)] = U, т.е. одновременно выполняются три указанных события. Здесь - требуемый целевой эффект; гП - предельные затраты ресурсов; тД - директивное время.
По формуле (13) найдем закон распределения вектора Y<3>
Ф-^ (Y<3>) =0^ (<Э,г,т>) =Pp > ») п (r < r) п (т < т)]=
=P[(Fi (т) > S) п (ат < r) п (т < т)]=Р[(т > F^ (ЭД п (т < r) п (т < т)]=
а
=P[F-1(S) < т < min{r ,т} ]=F.[min{r,т} ] -F-F^S)]. а а
С учетом равномерного закона распределения F^) и области допустимых значений вектора Y<3>, которая определяется декартовым (прямым) произведением трех множеств [zj, да) х (- <»,z2 ] х (- <»,z3 ], получаем выражение для закона распределения вектора Y<3>:
Ф* (*<з>) =Ф<9,-т>(<9/,т>) =
min{ —,т} -1' _а_
t '' -1 ' '
F,-'(S) -1 ' t '' -1 '
n(9;F (t' ),F (t '')) X П(г ;at' ,at") >
<n(x;t ' ,t '' ) +
min{—,т} -1 '
_а_
t '' -1 '
A(F (t '' ) - 9) x n(r;at ' ,at '' ) x n(x;t ' ,t '' ) +
т -1' - F-'(9) -1 ' t '' -1 ' t ''-t'
xn(9;F (t'),F (t '')) x A(r - at '') x n(x;t',t'') +
r - at' F-'(9) -1'
a(t " -1') t ' -1'
n(9;F (t ' ),F (t ')) x
т -1 ' r - at '
хП(г ;at ',at'' ) x А(т -1'' ) +--A(F (t '' ) -9) x A(r - at'' ) x n(x;t' ,t'' ) +-A(F (t '' ) - 9) >
t ''-1 ' a(t '' -1')
хП(г;а/',at'') x A(t -t'') +
F '(9) -1'
n(9;F (t'),F (t'')) x A(r - at") x A(t -1'') +
/" -/'
+Д(^ (/") -9) х Д(г - а/") х А(т - /").
Определим выражение для Рдц и вычислим ее при следующих значениях параметров: 9Т = 0,8;
гП = 200 [тыс. руб.]; тД = 60 [час]; а=3 [тыс. руб./час]; / ' = 0 [час]; / ' = 70 [час].
Для получения значения обратной функции целевого эффекта F-1(9Т) воспользуемся графиком рис. 3, построенным при /'=10, ю=0,5.
■ {200 60} т1П{—3—,60}
Р = Ф ... (<9Т,гП,тД>) = Ф ... (<0,8; 200; 60>) =-3---= 0,40.
ДЦ <9,г,т>у Т' П ' Д ^ <9,г,т>у ' ' ' 7 70 70
Выполним анализ влияния аспектов 9Т и тД на эффективность отладки ПС:
рдц(9т ,тд)
Тд - f F '(9Т)-1
t' -1'
t' -1'
Тд - F-'(9Т ) 70 70 '
Вычислим коэффициенты чувствительности йрдц и влияния ¥трДДЦ
hrm = ^дц (9т ,тд) = _L = 0,014 Тд dTn 70
час
УрДЦ = hP^T. = 0,86.
1Д 1Д д
Для вычисления h9™ и К9 ДЦ необходимо показатель целевого эффекта F ' (9) выровнять (аппроксимировать) теоретической функцией распределения и найти ее обратную функцию. Аппроксимировать функции можно стандартным способом, например, с помощью процедуры «построение линии тренда» EXCEL, а затем продифференцировать показатель РДЦ (9Т, тД) по параметру 9Т .
„ДЦ = dPДЦ (9т , Тд ) ; РДЦ = ^РДЦ 9Т '
9Т d 9 9Т 9Т Т
Заключение
Использование в предложенной методике оценки надежности для каждого модуля упрощает задание исходных данных, повышает точность моделирования, позволяет учитывать состоятельность (мощность) тестов, используемых для отладки программ, искать пути повышения характеристик надежности программных средств путем формирования тестов, обнаруживающих ошибки с высокой вероятностью. Аппроксимация произвольных законов распределений интервалов времени исправления ошибок распределением Кокса обобщает известные марковские модели, повышает точность моделирования процессов отладки программ и делает предложенную модель более универсальной. Методика позволяет не только рассчитать частные показатели надежности программ, но и вычислить комплексный показатель эффективности отладки программных средств, выработать практические рекомендации по эффективной организации испытаний программ.
Литература
References
1. Смагин В.А. Основы теории надежности программного 1. Smagin V.A. Fundamentals of Software Reliability Theory. St. обеспечения. СПб.: ВКА им. А.Ф. Можайского, 2009. 355 с. Petersburg, Military Space Academy named A.F. Mozhaisky,
2. Бубнов В.П., Сафонов В.И. Разработка динамических 2009, 355 p. (In Russian).
x
моделей нестационарных систем обслуживания. СПб.: Лань, '999. 64 с.
3. Данилов А.И., Данилов А.А. Нестационарные модели процессов испытаний программных средств в условиях риска // II Всерос. науч.-практ. конф. «Современные проблемы создания и эксплуатации вооружения, военной и специальной техники». СПб., 20'4. С. '99-202.
4. Хомоненко А.Д., Данилов А.И., Данилов А.А. Нестационарные модели стратегий испытаний программных средств при вероятностных параметрах обнаружения ошибок // Информационно-управляющие системы. 20'5. № 4. С. 50-58.
5. Хомоненко А.Д., Данилов А.И., Данилов А.А. Динамические модели испытаний программных средств // '8 Международная конференция по мягким вычислениям и измерениям. СПб., 20'5. Т. '. С. 239-242.
6. Данилов А.И., Данилов А.А. Динамические модели испытаний программных средств с двумя типами ошибок // Труды военно-космической академии имени А.Ф. Можайского. 20'5. № 647. С. '2-2'.
7. Хомоненко А.Д., Данилов А.И., Данилов А.А., Герасименко П.В. Нестационарные модели отладки программ с распределением Кокса длительности исправления ошибок // Международная конференция по мягким вычислениям и измерениям. СПб., 20'6. Т. '. С. '63-'66.
8. Хомоненко А.Д., Данилов А.И., Данилов А.А. Динамические модели отладки программ с вероятностным обнаружением ошибок и распределением Эрланга длительности их исправления // Научно-технический вестник информационных технологий, механики и оптики. 20'6. Т. '6. № 4. С. 655-662. doi: '0''7586/2226-'494-20'6-'6-4-655-662
9. Бубнов В.П., Тырва А.В., Бурцева К.И. Нестационарная модель надежности программных средств с распределением Кокса длин интервалов времени исправления ошибок // Вестник ВЭлНИИ. 20'0. № '(59). С. '43-'52.
'0. Moranda P., Jelinski Z. Final Report on Software Reliability Study. McDonnell Douglas Astronautics Company, MADC Report Number 6392', '972. ''. Musa J.D., Iannino A., Okumoto K. Software Reliability: Measurement, Prediction, Application. NY: McGraw-Hill, '987.
'2. Littlewood B. The Littlewood-Verrall model for software reliability compared with some rivals // Journal of Systems and Software. '980. V. '. N 3. P. 25'-258. doi: '0.'0'6/0'64-'2'2(79)90025-6
'3. Chidamber S.R., Kemerer C.F. A metrics suite for object oriented design // IEEE Transactions on Software Engineering. '994. V. 20. N 6. P. 476-493. doi: '0'''09/32'295895 '4. El Emam K., Melo W., Machado J.C. The prediction of faulty classes using object-oriented design metrics // Journal of Systems and Software. 200'. V. 56. N '. P. 63-75. '5. Cox D'R. A use of complex probabilities in the theory of stochastic processes // Mathematical Proceedings of the Cambridge Philosophical Society. '955. V. 5'. N 2. P. 3'3-3'9. doi: '0''0'7/S0305004'0003023' '6. Петухов Г.Б', Якунин В.И. Методологические основы внешнего проектирования целенаправленных процессов и целеустремленных систем. М.: АСТ, 2006. 504 с.
Авторы
Данилов Анатолий Исаевич - кандидат технических наук, доцент, доцент, Военно-космическая академия имени А.Ф. Можайского, Санкт-Петербург, '97'98, Российская Федерация, anna_hab_20'[email protected]
Данилов Андрей Анатольевич - ведущий инженер-программист, ООО «Нокиа Солюшнз энд Нетворкс», Санкт-Петербург, '920'9, Российская Федерация,
Andrey. [email protected]
2. Bubnov V.P., Safonov V.I. Dynamic Modeling of Non-Stationary Service Systems. St. Petersburg, Lan' Publ., 1999, 64 p. (In Russian).
3. Danilov A. I., Danilov A. A. Transient models of the software testing processes in risk conditional. II Vseros. Nauch.-Prakt. Konf. Sovremennye Problemy Sozdaniya i Ekspluatatsii Vooruzheniya, Voennoi i Spetsial'noi Tekhniki. St. Petersburg, 2014, pp. 199-202. (In Russian).
4. Khomonenko A.D., Danilov A.I., Danilov A.A. Non-stationary models of software testing strategies with probabilistic parameters for fault detection. Informatsionno-Upravlyayushchie Sistemy, 2015, no. 4, pp. 50-58. (In Russian)
5. Khomonenko A.D., Danilov A.I., Danilov A.A. Dynamic software testing models. Proc. 18th Int. Conf. on Soft Computing and Measurements, SCM. St. Petersburg, 2015, vol. 1, pp. 239-242. (In Russian)
6. Danilov A.I., Danilov A.A. Dynamic software testing models with two types of faults. Proceedings of the Military Space academy named after A.F. Mozhaisky, 2015, no. 647, pp. 1221. (In Russian).
7. Khomonenko A.D., Danilov A.I., Gerasimenko P.V., Danilov A.A. Nonstationary software testing models with cox distribution for fault resolution duration. Proc. 19th Int. Conf. on Soft Computing and Measurements, SCM 2016. St. Petersburg, 2016, pp. 209-212.
8. Khomonenko A.D., Danilov A.I., Danilov A.A. Dynamic software testing models with probabilistic parameters for fault detection and Erlang distribution for fault resolution duration. Scientific and Technical Journal of Information Technologies, Mechanics and Optics, 2016, vol. 16, no. 4, pp. 655-662. doi: 10.17586/2226-1494-2016-16-4-655-662
9. Bubnov V.P., Tyrva A.V., Burtseva K.I. Non-stationary software reliability model with Coxian distribution of errors detection time interval lengths. Vestnik VElNII, 2010, no. 1, pp. 143-152. (In Russian)
10. Moranda P., Jelinski Z. Final Repot on Software Reliability Study. McDonnell Douglas Astronautics Company, MADC Report Number 63921, 1972.
11. Musa J.D., Iannino A., Okumoto K. Software Reliability: Measurement, Prediction, Application. NY, McGraw-Hill, 1987.
12. Littlewood B. The Littlewood-Verrall model for software reliability compared with some rivals. Journal of Systems and Software, 1980, vol. 1, no. 3, pp. 251-258. doi: 10.1016/0164-1212(79)90025-6
13. Chidamber S.R., Kemerer C.F. A metrics suite for object oriented design. IEEE Transactions on Software Engineering, 1994, vol. 20, no. 6, pp. 476-493. doi: 10.1109/32.295895
14. El Emam K., Melo W., Machado J.C. The prediction of faulty classes using object-oriented design metrics. Journal of Systems and Software, 2001, vol. 56, no. 1, pp. 63-75.
15. Cox D.R. A use of complex probabilities in the theory of stochastic processes. Mathematical Proceedings of the Cambridge Philosophical Society, 1955, vol. 51, no. 2, pp. 313-319. doi: 10.1017/S0305004100030231
16. Petukhov G.B., Yakunin V.I. Methodological Basis for External Design of Targeted Processes and Dedicated Systems. Moscow, AST Publ., 2006, 504 p. (In Russian).
Authors
Anatoly I. Danilov - PhD, Associate professor, Associate
professor, Mozhayskiy Military Space Academy, Saint Petersburg,
197198, Russian Federation, [email protected]
Andrey A. Danilov - Senior software engineer, Saint Petersburg
Nokia Solutions and Networks, Saint Petersburg, 192019, Russian
Federation, [email protected]