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

КОСМИЧЕСКОЕ ПРИБОРОСТРОЕНИЕ

УДК 004.43

DOI 10.26732/2618-7957-2018-1-47-52

МЕТОДИЧЕСКИЙ ПОДХОД К ОЦЕНКЕ КОЛИЧЕСТВА НЕОБНАРУЖЕННЫХ ДЕФЕКТОВ ЕСТЕСТВЕННОЙ СЕМАНТИКИ ПРОГРАММЫ С ТРЕБУЕМОЙ СТЕПЕНЬЮ ДОВЕРИЯ ПРИ ВЕРИФИКАЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ БОРТОВЫХ ЦИФРОВЫХ ВЫЧИСЛИТЕЛЬНЫХ КОМПЛЕКСОВ КОСМИЧЕСКИХ

АППАРАТОВ

Д. С. Викторов, Е. Н. Жидков, Р. Е. Жидков

Военная академия воздушно-космической обороны имени Маршала Советского Союза Г. К. Жукова,

г. Тверь, Российская Федерация

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

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

естественная семантика.

Постоянное повышение требований к разрабатываемым бортовым цифровым вычислительным комплексам космических аппаратов (БЦВС КА) вызвало рост сложности и размера программного обеспечения (ПО) как наиболее гибкого компонента, расширяющего функциональные возможности КА. Данный факт обусловил значительное увеличение трудозатрат на разработку ПО БЦВС КА как в абсолютном значении, так и в сравнении с трудозатратами на создание

© Викторов Д. С., Жидков Е. Н., Жидков Р. Е., 2018

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

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

Том 2

Методом верификации, имеющим наибольшую степень автоматизации, служит статический анализ (СА). Главный недостаток СА - ограниченное множество типов обнаруживаемых дефектов ПО, расширение которого является основным направлением развития данной группы методов верификации ПО [3-5].

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

Структура мееора верефикации ПО о сно -вывается на задачах, стоящих керед данным интегральным процессом разработки. Наравне с обнаружением и регистрацией проораммкегс дефектов в рамках верификацки МО всткоенных систем необходимо доказатьумтранеиие дефектов с высокой степенью доверия, под котокым предлагается понимать конкретные значения доверительного интервала I™Б и доверительной вероятности РтРЕБ [6-8].

Для доказательства устранения дефектов ПО воспользуемся величиной, характеризующей количество необнаружтнных дефектов:

—необщ —общ - n

обн

где —общ - количество «собственны х» дефектов программы до проведения в ер ификации ПО ; —ОБН - количество обнаруженных «со^стве нных» дефектов программы.

На практике дле ощенки колате ства дефектов до начала верификацин твКБн яфимнняются различные модели надежни-кс: эвртстииеевал, Джелински-Моранды,Мслвсд.

Простая эвристическая модель и модила Джелински-Моранды не могут приме нятьяе для оценки количества ДЕС, тея Kaic ядеи, ламдщне в их основе, противорьчкк екти СА, иозволеющего по няктв^|^яй математическвй модели обначужи-сакь все козмяжные вефеюгы за одик прсхтд адна-лизаторя ив еависимо от ныго, кактв ппецнаткааож осуществляется иссмедкибние. Пдч етом еели -едс-сматривать СА как контрольный пр имер в рамках тестиртвання, то интанаивеоеть пбявления де фек-еок поьлс егь выпопаенся енизится сраду до нуся,

что не позволит анализировать временные интервалы между проявлениями дефектов [9, 10].

Учесть вероятностный характер выявления ДЕС в оценке их количества до начала верификации, обусловленный характеристиками ИК программы и неизвестным законом распределения дефектов по составляющим выражений кода, возможно с использованием статистических моделей надежности, основанных на преднамеренном внесении дефектов в ПО. К классу подобных моделей относится модель Миллса, в которой вероятности обнаружения «собственных» дефектов и преднамеренно внесенных считают равными, а выражение для количества дефектов в программе до начала испытаний, исходя из принципа максимального правдоподобия, имеет вид [10]

н

ияЩ ияе

ияЩ

н

тв ияе

н

тв ияЩ

количество преднтмеренно внесен-

нык деф е ктов в пр огкамму; ОиУи - количество обнаруженных дефектов программы из числа преднамеренно внесенных. иуи

В модели надежности Миллса преднамеренное внесение дефектов производится до начала испытаний, что не может быть применено для оценки количества ДЕС в ПО, так как при этом существует вероятность взаимной компенсации с «собственными» дефектами программы. Свести риск подобной компенсации до нуля невозможно, однако минимальных значений для конкретного варианта ИК программы он достигнет при внесении дефектов после выявления «собственных». При этом -/УОБН определяется методикой СА для по икка ДЕС программы и зависит от характери-сгрк ИК про^>аммы, к^Ур обусловливается количеством операторов программы, содержащих операции с едеественной семантикой, кСУк в случае многократного проведения опытов будет иметь различные значения, что объясняется случайным попаданием преднамеренно вносимого ДЕС в одну из составляющих операдера

д М

н

тв ияе

на,

овщ

M-дР н

_ . ИБЩ ИВН

ввщ нДн ]

Конечное выражение для количества необнаруженных дефектов получается путем замены в выражении (1) —Ощ на соотношение(З):

( л г))Р ^

M-HЕИЯН ж ЮИЯН

иящ

вВыс ^вян]

1

Д. С. Викторов, Е. Н. Жидков, Р. Е . Жидков

Методический подход к оценке количества необнаруженных дефектов естественной семантики программы

Слабым местом моделей надежности, осно-ванных на внесении д{;<|)ектов, является пр о цедур а преднамеренного внесения, поскольку предполагается, что вероятности обнаружения «собственных» и преднанеренно вне сё иных дефекто в аан ны [9]. Дсннряпродаемнвозникает вследствие высокой сложности учета индивидуальных особенностей программистов (стиль, квалификация н о.п .) арр еыполнедии прогнаеа возможной лака-лизации «собственных» дефектов, который может быть использовнн в кнчестве множества потенциальных точек для искаже ния . Помимо своееСеа-зая рдсграммдстовнедДроднмо уделять в нимание и специфике характеристик ИК программы (для ДЕС это частота появления операндов), что явля-едря впомне формдееенемой аадамей .

Пдосесс внесенпм ДЭС предлагается рассматривать на предстевтении программы в виде м длати мнажес два [1М:

SW = {stmti | stmti o STMT} , i = 1 , I,

где OPR А = {opr S opr Ае OPR m j = 1, J} мультинножеотно арнфмотическио ошрг^1^сй i-го

операторо,гороскданмоо мшжеством а

ских операций ЯП OPRA; J

OPR

с

с

где stHtr n STMK - i-й опрратощ прогрaitiMbi, ори-надлежащой множеству операторов прссооммы

STMT.

Если рбсн.апфоватьсн от синтаксиса кон-нретннго язы ва щэоораммиро вания (ЯП) , то люОо й оператор. вз (С), называющий ВВМ сн кыполне-ние оычоссеоия, ясноетм некоторой комнинацией множвсева ог^ейа1^д^1^,а^едст;^к^лоннык имегтмираи^ гатсрами И(Р прронамно ,и онеокгий, мград^елен-ных в нпеощнинацио Ж1:

stmt, = (OMR opn m opr С , MPRND,) , (-t

- величи-

а^теризующая количество р^фметс^срио операцнё ?-гн or^jj^^rtjoox; opr0 o MPR (( - операция присваивания /-го оператора, принадлежащая мно-

MPR м

jo ктму онеран ий присваиван ия ЯП, opr операцо: (^=а^нения 7-го опертмоОа, прина=-лежащан множ,ству операций сравнения ЯП; MPаПND) = roprnd, | opr-M p o OI'^D, И = DO} -мультимножество операндов /-го оператора, порождаемое множеством операндов программы OPRND; L = | OPRND , \ - величина, характеризую-щаяколичествооперандов /-гооператора.

Различные варианты структуры оператора программы, используемые для внесения ДЕС, описываются на основевыражения (6):

stmtо = 0MPR С, opr И, 0, MPmDо) - оператор, содержащий арифметические операции и операциюприсваивания;

stmt, = JT , oprM, 00, MPRND. ) - о ператор, содержащий операцию пр иеваивания;

stmti = (0,0, oprM, MPRND. ) - о ператор, аооеpжaщий о пес ацию о ^^^i^e еим.

Raргксeкиcтиoкми ИКпрогргммы, оказывающими влияние pt^ нффективнесть поиека ДЕМ, являются частоты появле ния операндов, имеющих одитсшеые семантиеи. MпевцнO: что чем больше переменных одной семантики в программе, тем выше должна (шть вермятность юс Qoяврeиoл в крнестиe искажающино воздействия. Реализацня даноой еaраIЮIepности осуще^тнл^отсг на нуль-тимножестве, состоящгм 0з Q схожденсИнлepan-дов в прогмамму и порождаемом множеством уни-кнльных о пе .аидов,

PORNDпХ r = {oprnfq | opr-Ы ,, o OMmD , с = \Q} • 00

Для выполнения выбора элемента set из множества SET по закону равномернот аигон-ности распределения используется функция rnd : SET ^ set . Реализация функции следующая:

r-Ы О SET) ни set, nj:n-a:B Ые

Применяя функцию (8) к мыожесмау (7 ). получаем элемент oprnd с учетом частоты появления операндов даннойсемантикив программе.

Процедура внесения ДЕС в программу рас-сматриваетсяврамкахследующп дагтущ ен ти:

— внесение ДЕС осуществляется для каждого оператора программы только одиножды с целью исключения компенсации дефактов;

— внесение ДЕС производится для любого одного элемента оператора (операции или операнда) содинаковой вероятность ю;

— внесение ДЕС выполняется безотносительно к порядкувыполненияоперацийсоперандами.

Порядок выполнения процедур методики оценки количества необнаружепиых ДЕС iop-граммы с требуемой степенью доверия при вери-фикацииПОпредставленнарисунке.

Входными данными для методики являются: ИК программа (sw); количество «собственных» ДЕС, обнаруженных при верификации (Nom), доверительная вероятность требуемая (РтрЕБ), доверительный интервал требуемый (Pj^paB), размер на-чальнойвыборки (K).

Процедура 1 - получение статистики.

Данная процедура разбивается на три шага: внесение ДЕС в программу, поиск ДЕС и возврат программы в исходноесостояние.

Первый шаг начинается с внесения ДЕС в оператор программы stmt. Для чего выполняется поиск точки преднамеренного внесения

49

Том 2

d>

sw к

Получение статистики

Внесение ДЕС н программу

SW = [ sbia}, i = \J

Поиск ДЕС путем CA программы

Ai-nP

-vosh

Возпрат программы и исходное состояние

SIP* ~^SW = {stmtt}.j = 11

vip л

'жод —voeh-;e)

©

АтЕБ

Статистическая пЙраЛптка результант

mKJ ifc] Ш

ns

oehJ

d>

-ß

Да, необходимо

К

Проверка необходимости иронедешш дополнительных итерации

] треб

— .если £ я >£ß

ТРЕБ

tlm

К, если £ß < £ßFEb

M\Nl

Нет.

достаточно

Расчет количества необнаруженных ДЕС iipoi рам мы

—НЕОБН _ -^ОБН

f N™

ОБЩ

М[<БРН]

--1

Nn

Рис. 1

де§QR:a.pnth которая выбирается из множе ства возможных точек для данногооператора PNT = OPRA UоргП Uoprf UOPRNPi : pnti = rnd(PN Tt).

Далее в зависимости от принадлежности pnt, к одномуиз множеств

Г OPRo, OPRn, OPRc, OPRNPBX)

в вбирается один из элементов соответствующего множества, за исключением pnth и используется в каче стве дефекта: deft =rnd(SET \ pnt1).

O результате вместо исходного оператора программы stmt, имеется stmt* , у которого в одном из элементов описывающего его кортежа в точке pntj существует дефект def: stmtl ^ stmt* . Вытолнив внесенга ДОС для каждаго оператора, получаем программу, в касктом операторе которой имеется дефект операции или операнда, распределённый равномерно:

-= SW * = {stmt* }, i = 17.

На втором шаге производится обнаружение ДЕС с помощью методики СА для их поиска N ПР

^ОБНО,) •

Трет™ шаг заклютается в возвращении про -граммы в исходное сжсоояние

SW * ^ SW = {stmtt}, i = \I.

Шаги процедуры 1 выполняются К раз согласно заданному размеру начальной выборки.

Процедура 2 - статистическая обработка результатов.

Выполняется расчет следующих статистических характеристик [8]:

OR

N,

то сто

K

к1 x о0бн (k) - О ценка МОЖ количества обнаруженных дефектов в серии из К итераций внесения дефектов;

ад

N,

то сто

(К -1)- 1 £(() -М[О0ИБН]) - оценка дисперсии количества обнаруженных дефектов всерии из К итераций внесения дефектов;

ос

а

то

0д^-е 1VДоОБн]- среднее ква-

дратическое отклонение оценки МОЖ количества обнаруженных дефектов в серии из р итераоий внесениядефектов.

Пои допущении о нормальном распределении О0БН (К > 20...30) по таблице из [8] определяется значение величины соответствующее требуемому значению доверительной вероятности РтРЕБ.

Рассчитывается величина половины длины доверительного интервала для МОЖ количества

Д. С. Викторов, Е. Н. Жидков, Р. Е. Жидков

Методический подход к о ценке коли че ства нообнаруженных дефектов естестве: ной семантики про граммы

обнаруженных дефектов в серии из K итераций вне сенукде феетов: Рр = ¿рОУ^кОи ] .

Пруоодура 3 - проверка необходимосту проведеник дополните лкны х итераций внесения дефе ктов.

Осущесквляттса сравнеуие значезия к^ с

треОусмош значение м 8

Е Рв < Р

ТОЕО

ТРЕО

Р

тТОЕО

"7Р

/2.

т

ТОЕО

'Р

(Р Г *

с

Т, если р р < р р

по

кол н

ТОЕО

если Р р > Р ТОЕО

з р ^ ор , то рассчитанная оценка МОЖ ьсоличе ства обнаруженные «преднамеренных» дефектов считается совместной с данными, полученными в сераи из К итераций внесенияде-фектов,согласно размерс начлиьной выборки.

и л ^ е ТРЕБ

Если 0 р > £р , то нооучен доверительный интервал для оценеи МОИК количества обна-руженлых «пдеднамеренных» дефекгои больше требуемого, что говорит о недостаточной репрезентативности рассманриваемой статистики дефектов и необходимости проведения дополнительных итераций внесенли дефектов.

Для получения выБорки требуемого размера ^трЕБ используется система соотношений:

Количество дополнительных итераций вне-иени« дефектив рассчитывается по следующему соотношению: КдОП = КТРЕБ - К.

Если КдОП > 0, то необходимо вернуться к процедуре 1. Выполняется КдОП итераций внесения дефе ктов и обиаЛитываедся пулуиенная стати-стикавеличиной КТРЕБ.

Процедура 4 - расчет количества необнаруженных ДЕС программы с требуемой степенью дотерия.

Используя полученную оценку МОЖ количества обнаруженных «преднамеренных» дефектов для выборки требуемого размера КТРЕБ , при ус ло вии , что ИНЩ «|ОЛ|, рассчитывается количество необнаруженных ДЕС программы по соот-ношению(4).

Представленный методический подход к оценке количества необнаруженных ДЕС программы с требуемой степенью доверия при верификации ПО БЦВС КА разработан с целью приведения в соответствие нормативным документам создаваемого метода верификации ПО и позволяет выполнять доказательство отсутствия дефектов рассматриваемого типа после выполнения их поиска путем СА с требуемой степенью доверия в рамках испытаний ИК программ.

51

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

1. Липаев В. В. Технико-экономическое обоснование проектов сложных программных средств. М. : СИНТЕГ, 2004. 284 с.

2. Мякишев Д. В. Принципы и методы создания надежного программного обеспечения АСУТП : метод. пособие. М. : Инфра - Инженерия, 2017. 114 с.

3. Кулямин В. В. Методы верификации программного обеспечения. М. : Институт системного программирования РАН, 2008. 117 с.

4. Карпов Ю. Г. Model checking. Верификация параллельных и распределённых программных систем. СПб. : БХВ-Петербург, 2010. 560 с. : ил.

5. Кларк Э. М., Грамберг О., Пелед Д. Верификация моделей программ : Model checking : пер. с англ. ; под ред. Р. Смолянского. М. : МЦНМО, 2002. 416 с. : ил.

6. ГОСТ Р 51904-2002. Программное обеспечение встроенных систем. Общие требования к разработке и документированию. М. : Госстандарт России, 2002. 94 с.

7. КТ-178. Квалификационные требования. Требования к программному обеспечению бортовой аппаратуры и систем сертификации авиационной техники. М. : Межгосударственный авиационный комитет, Авиационный регистр, 1996. 37 с.

8. Вентцель Е. С. Теория вероятностей : учебник для студ. вузов. 9-е изд., стер. М. : Издательский центр «Академия», 2003. 576 с.

9. Гуров Д. В., Гуров В. В., Иванов М. А. Использование моделей надежности программного обеспечения для оценки защищенности программного комплекса // Безопасность информационных технологий. 2012. № 1. С. 88-91.

10. Черников Б. В., Поклонов Б. Е. Оценка качества программного обеспечения: практикум : учеб. пособие ; под ред. Б. В. Черникова. М. : «ФОРУМ» ИНФРА-М, 2012. 400 с. : ил. (Высшее образование).

11. Петровский А. Б. Пространства множеств и мультимножеств. М. : Едиториал УРСС, 2003. 248 с.

История статьи

Поступила в редакцию 6 марта 2018 г.

Принята к публикации 5 апреля 2018 г.

№ 1 (23) 2018

TOM 2

METHODICAL APPROACH FOR EVALUATION OF THE NUMBER UNDETECTED NATURAL SEMANTICS DEFECTS

WITH THE REQUIRED DEGREE OF CONFIDENCE IN THE VERIFICATION OF SPACE VEHICLES ON-BOARD COMPUTER SYSTEMS SOFTWARE

D. S. Viktorov, E. N. Zhidkov, R. E. Zhidkov

Military Aerospace Defense Academy, Tver, Russian Federation

The approach for evaluation the number of undetected natural semantics defects in the program is devel-52 oped and presented in the framework of creating software verification methodfor space vehicles on-board

computer systems. Method is created to reduce the total cost of verification that satisfied the tasks of the verification process. Detection of this defects type is performed within the static analysis of the program source code. It is based on monitoring compliance with the principle of dimensional uniformity of expressions. The estimation of the defects number is performed according by the Mills reliability model, which belongs to the statistical models class with deliberate injection of defects into the software. The defects injection procedure is demonstrated on the representation of the program via sets, taking into account the specific natural semantics defects characteristic of the source code, which affect the adequacy of the procedure performed. The required evaluation degree of confidence of undetected defects is achieved by calculating the number of detectable injected defects expected value. This statistic characteristic received from the selection of the required size, which depends on the statistical characteristics obtained from the initial selection and the given values of the confidence probability and the confidence interval. The obtained approach can be used in research of the programs source code within the process of software verification for space vehicles on-board computer systems, since it is based on well-known mathematical relationships and meets the requirements of normative documents in this field.

Keywords: software, space vehicle, on-board computer system, verification, static analysis, defects injections, natural semantics.

References

1. Lipaev V. V Tehniko-jekonomicheskoe obosnovanie proektov slozhnyh programmnyh sredstv [Feasibility study of complex software projects]. Moscow, SINTEG Publ., 2004. 284 p.

2. Mjakishev D. V Principy i metody sozdanija nadezhnogo programmnogo obespechenija ASUTP [Principles and methods of creating reliable software for the automated process control system]. Moscow, Infra - Inzhenerija Publ., 2017. 114 p.

3. Kuljamin V. V Metody verifikaciiprogrammnogo obespechenija [Methods of software verification]. Moscow, Institut sistemnogo programmirovanija RAN Publ., 2008. 117 p.

4. Karpov U. G. Model checking. Verifikacija parallel'nyh i raspredelennyh programmnyh sistem [Model checking. Verification of parallel and distributed software systems]. Saint Petersburg, BHV-Peterburg Publ., 2010. 560 p.

5. Clark E. M. Verifikacija modeleiprogramm [Model checking verification]. Moscow, MCNMO, 2002. 416 p.

6. State standard 51904-2002. Software of embedded systems. General requirements for development and documentation. Moscow, Gosstandart Rossii Publ., 2002. 94 p.

7. Standard KT-178. Qualification requirements. Requirements for software on-board equipment and aviation equipment certification systems. Moscow, Mezhgosudarstvennyj aviacionnyj komitet, Aviacionnyj registr Publ., 1996. 37 p.

8. Ventcel' E. S. Teorija verojatnostej [Probability theory]. Moscow, Izdatel'skij centr "Akademija" Publ., 2003. 576 p.

9. Gurov D. V., Gurov V V., Ivanov M. A. Ispol'zovanie modelej nadezhnostiprogrammnogo obespecheniya dlya ocenki zashchishchennostiprogrammnogo kompleksa [Use of software reliability models to assess the security of the software package]. Bezopasnost' informacionnyh tehnologij [Information Security], 2012, no. 1, pp. 88-91.

10. Chernikov B. V, Poklonov B. V. Ocenka kachestva programmnogo obespechenija [Software Quality Assessment]. Moscow, «FORUM» INFRA-M Publ., 2012. 400 p.

11. Petrovskij A.B. Prostranstva mnozhestv i mul'timnozhestv [Spaces of sets and multisets]. Moscow, Editorial URSS Publ., 2003. 248 p.

Article history

Received 6 March 2018 Accepted 5 April 2018