Я.Н. Гусеница
кандидат технических наук, Военно-космическая академия имени А.Ф.Можайского
МЕТОД ЭКСПЕРТИЗЫ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ВООРУЖЕНИЯ, ВОЕННОЙ И СПЕЦИАЛЬНОЙ ТЕХНИКИ
АННОТАЦИЯ. Изложен метод экспертизы программного обеспечения вооружения, военной и специальной техники, который, в отличие от существующих методов, не требует одновременного участия в реальном масштабе времени экспертов в области инженерии программного обеспечения вооружения, военной и специальной техники, а также не допускает лоббирование результатов экспертизы в интересах отдельных людей и организаций. Кроме того метод позволяет увеличить количество обнаруженных ошибок в программном обеспечении вооружения, военной и специальной, а, следовательно, повысить надежность этого программного обеспечения.
КЛЮЧЕВЫЕ СЛОВА: вооружения, военная и специальная техника, экспертиза программного обеспечения, программные ошибки.
В настоящее время программное обеспечение (ПО) является неотъемлемой составной частью практически любого современного вооружения, военной и специальной техники (ВВСТ). Вместе с тем совершенствование ВВСТ сопровождается заметной тенденцией к росту сложности ПО. Причем усложнение ПО становится причиной появления в нем значительного количества ошибок, наличие которых способствует снижению не только уровня надежности ПО, но и эффективности применения ВВСТ Поэтому исследования, направленные на определение программных ошибок и повышение надежности ПО ВВСТ, являются весьма актуальными.
Сейчас для определения программных ошибок и повышения надежности ПО ВВСТ в ходе различных видов испытаний ВВСТ проводится тестирование их ПО. Однако мировой опыт в области программной инженерии показывает, что тестирование ПО позволяет обнаружить 15— 55 % от предполагаемого количества всех программных ошибок [2].
Известным подходом к улучшению результативности обнаружения программных ошибок является проведение крупномасштабного бета-тестирования ПО. Данный подход позволяет обнаружить 60—85 % от предполагаемого количества всех программных ошибок [2]. Но проведение крупномасштабного бета-тестирования ПО сопряжено с рядом трудностей, которые за-
ключаются в необходимости привлечения более 1000 независимых организаций, специализирующихся на тестировании ПО. Следовательно, использование данного подхода подразумевает расход значительных затрат финансовых, людских и временных ресурсов, не говоря о необходимости обеспечения защиты государственной тайны в этих организациях.
Другим возможным подходом к улучшению результативности обнаружения программных ошибок является проведение экспертизы ПО. Доказано, что в результате экспертизы ПО обнаруживается 60—90 % от предполагаемого количества всех программных ошибок. А совместное использование тестирования и экспертизы ПО позволяет обнаружить практически все программные ошибки [2, 4—11].
Тем не менее, экспертизы не проводятся для обнаружения программных ошибок и повышения надежности ПО ВВСТ. Кроме того анализ существующих методов экспертизы ПО показывает, что они не учитывают характерных особенностей разработки и контроля качества ПО ВВСТ в организациях отечественного оборонно-промышленного комплекса. В частности, существующие методы предполагают одновременное участие в реальном масштабе времени нескольких экспертов в области инженерии ПО ВВСТ. Это в свою очередь требует идеальной согласованности графиков занятости всех экспертов,
что является практически нереализуемой задачей. Экспертов в данной области достаточно трудно собрать в одном месте, в одно время, т. к. они достаточно востребованы и практически не имеют свободного времени. Сложности могут возникнуть и с подбором экспертов, которые были бы не заинтересованы в конечном результате, т. к. существующие методы допускает лоббирование результатов экспертизы в интересах отдельных людей и организаций. Заинтересованный эксперт может навязывать свою точку зрения и убеждать остальных экспертов в своей правоте, что является крайне недопустимым при создании и модернизации любого ВВСТ.
Вышеприведенные недостатки не являются единственными, но они основополагающие. Поэтому разработан метод экспертизы ПО ВВСТ, который, в отличие от существующих методов экспертизы ПО, не требует одновременного участия в реальном масштабе времени нескольких экспертов в области инженерии ПО ВВСТ, а также не допускает лоббирование результатов экспертизы в интересах отдельных людей и организаций.
Метод экспертизы ПО ВВСТ подразумевает наличие следующих этапов, представленных на рис. 1:
1. Определение требований к экспертизе.
2. Формирование экспертной группы.
3. Разработка контрольных списков.
4. Интуитивное определение ошибок в ПО.
5. Получение индивидуальных оценок результатов интуитивного определения ошибок в ПО.
6. Получение групповых оценок результатов интуитивного определения ошибок в ПО.
7. Оценивание достоверности результатов экспертизы.
8. Оценивание соответствия требований и результатов экспертизы.
9. Формирование достоверных результатов экспертизы.
Определение требований к экспертизе предполагает выбор допустимых значений для длительности проведения и достоверности результатов экспертизы. Выбор данных значений осуществляется представителями заказчика ПО ВВСТ.
Формирование экспертной группы подразумевает привлечение потенциальных экспертов, являющихся специалистами в области инженерии ПО. При этом на основе критериев и шкал,
представленных в табл. 1, каждый j-И эксперт оценивается коэффициентом компетентности с помощью следующего выражения [2]:
=
I=1
1 ь
в1 тах
I=1
где вр — вес 1-го эксперта по I -му критерию;
I тах
— предельный вес I -го критерия; Ь — общее количество критериев.
Численность группы экспертов определяется из условия [1]:
3 х ^
2 • #тах
(1)
где дтах = 1 — максимально возможное значение коэффициента компетентности экспертов; — количество затрагиваемых срезов инженерии ПО.
Если условие (1) не выполняется, то в экспертную группу привлекается еще один или несколько экспертов. В результате формируется экспертная группа, которая характеризуется матрицей-строкой компетентности:
0 = (д1)=1../ =(2,..,?/ ).
Разработка контрольных списков предполагает создание списка вопросов, позволяющих экспертам определить программные ошибки. Создание списка данных вопросов осуществляется представителями заказчика ПО. Перед проведением очередной экспертизы данный список может корректироваться. Основные вопросы в контрольном списке представлены в работе [3].
Интуитивное определение ошибок в ПО осуществляется на основе индивидуального ознакомления каждого 1-го эксперта со схемами данных, программ, взаимодействия программ и ресурсов, а также текстами программ, сопоставления их с функциональными требованиями, а также указании мест с конкретными ошибками. При этом каждый 1-й эксперт для каждой обнаруженной им г'-й ошибки определяет тип этой ошибки и выставляет индивидуальную оценку ру е [0,1]. Эта оценка является субъективной вероятностью нахождения г-й ошибки в указанном месте и отражает степень уверен-
в
Рис. 1. Структура метода экспертизы ПО ВВСТ
ности в этом у-го эксперта. Интуитивное определение ошибок в ПО осуществляется исходя из ограничений на время экспертизы с использованием следующего критерия класса пригодности:
I = 1/ (ТД <Т),
где ТД — допустимая длительность экспертизы; Т — фактическая длительность экспертизы.
Результатом интуитивного определения ошибок в ПО является матрица субъективных вероятностей:
(
Р =
( )/=1../,у=1../
Р11 Р12 р21 р22
1.Р/1 Р/ 2
Р1/ Р2/
Р//
Таблица 1
Критерии и шкалы для оценки уровня компетентности экспертов
Критерий Вес ^Ч Уровень образования Ученое звание Количество собственных научных трудов Опыт работы
1 Бакалавр — До 10 До 5 лет
2 Специалист Доцент (старший научный сотрудник) От 10 до 20 От 5 до 10 лет
3 Магистр Профессор От 20 до 30 От 10 до 15 лет
4 Кандидат наук Член-корреспондент Российской академии наук От 30 до 40 От 15 до 20 лет
5 Доктор наук Академик Российской академии наук Более 40 Более 20 лет
Получение индивидуальных оценок результатов интуитивного определения ошибок в ПО осуществляется путем преобразования матрицы субъективных вероятностей в матрицу индивидуальных оценок, учитывающих уровень компетентности экспертов:
(
Ш =
=1..1,}=1../
ж
11
ж
12
ж
'1/
ж
21
V 1
ж
22
ж
2/
ж
12
ж
I/;
Для этого элементы матрицы субъективных вероятностей и матрицы-строки компетентности подставляются в следующее выражение: /
ж = Х Р} ■ 4} •
}=1
Получение групповых оценок результатов интуитивного определения ошибок в ПО осуществляется по средствам преобразования матрицу индивидуальных оценок в матрицу-столбец групповых оценок:
Ш = (*/ ))=1..1 =
( ж >
ж,
VI/
Для этого элементы матрицы индивидуальных оценок подставляются в следующее выражение:
/
X ж
- }=1 Щ = —
и
/
Полученные групповые оценки характеризуют групповое мнение экспертов о нахождении ошибок в ПО.
Оценивание достоверности результатов экспертизы подразумевает получение дополнительной статистической информации о результатах экспертизы. В качестве такой информации выступают [1]:
— дисперсии экспертных оценок;
— среднеквадратические отклонения экспертных оценок;
— коэффициенты вариации экспертных оценок;
— коэффициент конкордации Кендалла.
Дисперсии экспертных оценок являются абсолютными характеристиками разбросанности значений индивидуальных оценок относительно групповых. Данные величины рассчитываются по следующей формуле:
X ( - ж )2
д =
}=1
/ -1
Дисперсии групповых оценок имеют размерность квадрата групповой оценки. Поэтому для наглядной абсолютной характеристики рассеивания индивидуальной оценки, размерность которой совпадает с размерностью групповой оценки, используются среднеквадратические отклонения экспертных оценок. Данные величины рассчитываются по следующей формуле:
о=4Д •
Коэффициенты вариации экспертных оценок являются относительными характеристиками разбросанности значений индивидуальных оценок относительно групповых. Данные величины рассчитываются по следующей формуле:
vi = =. ^
На основе значений дисперсий, среднеква-дратических отклонений и коэффициентов вариации экспертных оценок подтверждается достоверность нахождении обнаруженных ошибок ПО. При этом, чем меньше значения представленных величин для 1-й ошибки, тем выше достоверность ее нахождения в указанном месте ПО.
Коэффициент конкордации Кендалла характеризует согласованность экспертов между собой, т. к. позволяет количественно определить область группового мнения. Данная величина рассчитывается по следующей формуле:
12ХА
^ = =1
J2
(3 -')'
■ = 1,I; (Д )л(оД >ог-)л л(Д >^)л(Д ), '
(2)
Формирование достоверных результатов экспертизы предполагает формирование матрицы-столбца достоверных оценок:
< &
F=(/ )■=ц =
Коэффициент конкордации Кендалла S принимает значение в пределах от 0 до 1. При S = 1 означает полную согласованность мнений экспертов, при S = 0 полную несогласованность. Низкое значение этого коэффициента свидетельствует об отсутствии общности мнений экспертов и требует повторного проведения экспертизы.
Оценивание соответствия требований и результатов экспертизы осуществляется с использованием следующего критерия класса пригодности:
где DД — допустимое значение дисперсии экспертных оценок; оД — допустимое значение среднеквадратического отклонения экспертных оценок; vД — допустимое значение коэффициента вариации экспертных оценок; SД — допустимое значение коэффициента конкордации Кендалла.
Элементы данной матрицы формируются из матрицы-столбца групповых оценок. Для этого используется условие (2). Если какой-нибудь элемент матрицы-столбца групповых оценок удовлетворяет условию (2), то значение этого элемента становится значением элемента матрицы-столбца достоверных оценок:
Ъ = ^ .
В противном случае элементы матрицы-столбца достоверных оценок принимают нулевые значения:
/ = 0.
Представленные этапы могут быть реализованы в виде системы поддержки принятия решения, которая по мере участия каждого привлекаемого эксперта позволит корректировать и вырабатывать обоснованное решение о нахождении ошибок в ПО ВВСТ. В случае реализации такой системы поддержки принятия решения в рамках концепции единого информационного пространства Вооруженных Сил Российской Федерации корректировка и выработка решения о нахождении ошибок в ПО ВВСТ будет происходить практически в реальном масштабе времени.
Таким образом, разработанный метод экспертизы программного обеспечения вооружения, военной и специальной техники, в отличие от существующим методов экспертизы программного обеспечения, не требует одновременного участия в реальном масштабе времени экспертов в области инженерии программного обеспечения вооружения, военной и специальной техники, а также не допускает лоббирования результатов экспертизы в интересах отдельных людей и организаций. Метод позволяет увеличить количество обнаруженных ошибок в программном обеспечении вооружения, военной и специальной техники, а, следовательно, и повысить надежность этого программного обеспечения.
ЛИТЕРАТУРА
1. Араб-Оглы Э.А. Рабочая книга по прогнозированию / [Э.А. Араб-Оглы и др.] — М.: Издательство «Мысль», 1982.
2. Макконнелл С. Совершенный код. Мастер-класс / C. Макконнелл. — М.: Издательство «Русская редакция», 2011.
3. Майерс Г. Искусство тестирования программ / Г. Майерс, Т. Баджетт, К. Сандлер. — М.: Издательский дом «Вильямс», 2012.
4. Фатрелл Р. Управление программными проектами: достижение оптимального качества при минимуме затрат / Р. Фатрелл, Д. Шафер. — СПб: Издательский дом «Вильямс», 2003.
5. Boehm В.,Basili V. Software Defect Reduction Top 10 List. IEEE Computer, 34(1):135—137, January 2001.
6. Fagan M. Design and Code Inspection to Reduce Errors in Program Development.IBM Systems Journal, 15 (3), 1976.
7. Gilb T, Graham D. Software Inspection. Addison-Wesley, 1993.
8. IEEE 1028. Standard for Software Reviews. New York: IEEE, 1998.
9. Knight J.C., Myers E.A. Phased Inspections and their Implementation. ACM SIGSOFT Software Engineering Notes, 16(3):29-35, 1991.
10. Nielsen J. Usability Engineering. Academic Press, Boston, 1993.
11. Wong Y.K. Modern Software Review: Techniques and Technologies. IRM Press, 2006.