УПРАВЛЕНИЕ, ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА И ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ
УДК 004.413.5
К ВОПРОСУ ОБ ОТКАЗАХ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
А.Н. Ивутин, Е.В. Ларкин
Построена модель отказов программного обеспечения. Показано повышение его надежности с увеличением времени эксплуатации.
Ключевые слова: отказы, программное обеспечение, надежность, время эксплуатации
Программная интерпретация любого алгоритма А подразумевает формирование из некоторого множества обрабатываемых символов
В = {й^.., йп ,..., йм } (1)
результата Я, полностью определяемого алгоритмом О и исходными данными В [1, 2, 3]:
Я = Я(в, В). (2)
где
О = (А, Z); (3)
А - множество (алфавит) операторов; Z - отношение, определяющее взаимосвязи между операторами (структуру) алгоритма;
А = {а1(а),..., а](а),..., а3(а)} ; (4)
Z = {г1(г),..., 2 ](г),..., г3(1)} = {(а/(а),а](а)) : а/(а) е А, ау(а) е {А,®}}. (5)
Каждый из символов множества (1) выбирается из соответствующего алфавита
йп е {й1(п), ..., йк(п),..., йК(п)} , (6)
где йк(п) - к(п)-е значение символа йп; К(т) - общее количество символов в п-м алфавите; 1 < п < М.
Множество значений обрабатываемых данных образует М-мерное
П т
,1
V Рт ^
Ґ А Л- Л \
• (7)
дискретное гиперпространство Л с К(т) отсчетами по каждому измерению. Каждому значению символа dт соответствует вероятность рк(т) его появления в сообщении, таким образом, вероятности появления значений символов алфавита (5), определяются гистограммой
^(т) ... dk (т) ... dK (т)
р1(т) ... рк (т) ... рК (т)
Вследствие того, что появление символов со значениями из множества (5) образует полную группу несовместных событий, для вероятностей рк (т) справедливо соотношение
К (т)
X рк (т) = 1.
к (т)=1(т)
Алгоритм А является классическим, т.е. число операторов (а следовательно и мощность множества (4)) алгоритма конечно, алгоритм содержит единственный начальный оператор Ь е А и подмножество конечных операторов Е = {еце), ..., ег(е), ..., е3(е)} с А. Процесс обработки информации может начаться только в операторе Ь, а завершиться - только в операторах подмножества Е.
Независимо от структуры алгоритма 2 вычислительный процесс может быть представлен в виде орграфа
Г = Ф> %е)]>..., Т][ 1 (е)]>..., Т3[ ] (<>)]>..., Т3[3(е)]}
(8)
{, Т1[1(е)]] •••, (, Тлі(е)]] •••, (, [У(е)]]
с древовидной структурой приведенной на рис 1, в котором ветви дерева представляют собой траектории реализации алгоритма
Тпл*)1 = ({а11;1,;(е)]!> •••> аЛ;1,;(е)]!> •••’ азІЛДеЖ’ 8Лі<е)]}’
{(а1^./[і(е)]}, а20и(е®)> •••, (аіі(е)1!-1, аіШ(е)1}),
•••, (а У 01 і (е)]}> 8 і[, і (е)])!), (9)
где аі{і[і(е)]} є А - исполнимые операторы алгоритма О, выполняемые
при его завершении в і(е)-м операторе окончания по і[і(е)]-й траектории реализации; ¡5 - начальный оператор, являющийся также некоторым обобщенным оператором принятия решения, объединяющим операторы принятия решения алгоритма О; 1{і[і(е)]} < і{і[і(е)]} < У{і[і(е)]};
1[і'(е)] < Л.І(е)] < У[і'(е)]; 1(е) < і(е) < У(е) •
Отметим, что в правильно спроектированном алгоритме отсутствуют зацикливания, что на рис 1 отражается в виде отсутствия ветвей с бесконечно большим количеством вершин•
Выбор оператором Рі[і(е)]-й ветви дерева (8), Т]{ (е)], производится
на основании анализа исходных данных (1), который в общем случае сво-
дится к выполнению операции
Т = т][ ] («>]> если <р( °) зЛ1[ ] («>]> (9)
где Т - выбранная траектория алгоритма; (р(В)- некоторая обобщенная функция принятия решения; Л][](е)] - ][](е)]-е области в гиперпространстве Л.
Таким образом, принятие решения (9) о возможном продолжении
процесса может быть представлено в виде алгоритма G с G, в результате работы которого выбирается траектория, что позволяет представить (9) - в виде
Т = Т (<, В). (10)
В силу свойства детерминированности алгоритма (10) события выбора одной из траекторий решения являются несовместными и образуют полную группу, таким образом
Х][](е)] П ^/[/(е)] = 0 при /[/(е)] * ][ 1 (е)],
Х][](е)] ^ Х/[/(е)] = Х][](е)] при /[/(е)] = ][] (е)];
3 [] (е)]
и Х][] (е)] =Л . (11)
][ ] (е)]=1[ ] (е)]
Отметим, что исходные данные, обрабатываемые вычислительным
М
устройством, могут принимать а в = П К (т) неповторяющихся (раз-
т=1
личных) состояний. В [3] было показано, что общее количество неповторяющихся состояний массива результата не превышает общего количества неповторяющихся состояний массива исходных, поэтому справедливо неравенство
3 (е)
ОВ > X 3[] (е)]. (12)
1 (е)=1(е)
Несмотря на то, что алгоритмом О, как строго определенной (детерминированной) последовательностью действий, для каждого определенного набора символов В выбирается вполне определенная траектория реализации (10), для внешнего по отношению к вычислительному устройству наблюдателя выбор Т][ ] (е)], соответствующего набору обрабатываемых данных, попадающих в область X ][ ] (е)], будет производиться случайным образом с вероятностью
рц](е)] = Р(Т:т = т(<В еХ][](е)]). (13)
В [3] также было показано, что для любого результата алгоритма
ИВ > Их, (14)
где Ил - энтропия исходных данных [4, 5]; Их- энтропия результата, в дан-
ном случае энтропия реализации алгоритма;
3 (е) 3 [] (е)]
ИХ=- Е Е ] (е)]1п р][] (е)]. (15)
] (е)=1(е) ][ ] (е)]=1[ ] (е)]
Формирование ошибок на этапе программирования в общем случае приводит к тому, что вместо исходного, "идеального" алгоритма (2) формируется "реальный" алгоритм
Н = (С, 7), (16)
у которого
Н Ф О, С Ф А, 7 Ф 2 ; (17)
С = С1 ^ С2 = {а1(а),..., а](а),..., аК(а)} ^ {с1(с),..., с](с), -., с3(с)} ; (18)
7 = 71 ^ 72 = {71(..., 7),..., 7К(7)} ^ {У1(у),..., У](у> ..., У3(у)}, (19)
где С - реальный алфавит операторов, частично совпадающий с алфавитом (4); 7 - отношение, определяющее структуру, частично совпадающую со
Т' =
1 ][](е )]
структурой (5); С1, 71 - совпадающие части соответствующих множеств; С2, 72 - несовпадающие части множеств; К (а) < 3 (а); К (7) < 3 (7) (без нарушения общности можно считать, что элементы совпадающих частей соответствующих алфавитов нумеруются индексами с меньшими значениями).
Это означает, что граф (16) преобразуется в орграф с древовидной структурой, подобной структуре орграфа (8)
Г' = ф', Т1[1(е)],..., Т][](е)],..., ТК[](е)],..., ТК[К(е)]} (20)
{(, Т1[1(е)]} ..., (', Т'[](е)]}..., (', (К[К(е)])]
(Лр{][](е)]}, ..., а]{][](е)]}, ..., а3{][](е)]} ]
{(а1{][ ( (е)]},а:2{ ][ ] (е)]} } ..., (а.'{ ][ ( (е)]}-1,а'{ ][ ] (е)]} } ..., (а'{ ([ ( (е)]}-1,а'{ ][ ] ( е)]} )}
если в алгоритме не допущено ошибки, приводящей к "зацикливанию", (21)
( Лл](е)]} , ..., {а]{][](е)]} , ..., а3{][](е)]} }, ..., {а]{][](е)]} , ..., а3{][](е)]} }, ...]
{(а1{ ][ ( (е)]},а2{ ][ ] (е )]} } ..., {{р]{ ][ ] (е )]}-1,а'{ ][ ] (е)]} ^ ..., (а]{ ([ ( (е)]}-1,а]{ ][ ] ( е)]} )},
...,{(а./{ ][ ( (е )]}-1,а'{ ][ ] (е)]} } ..., (а]{ ][ ( (е)]}-1,а]{ ][ ] ( е)]} )}, ...},
если в алгоритме допущена ошибка, приводящая к "зацикливанию", где а]{][](е)]} е В - исполнимые операторы алгоритма Н, выполняемые при
его завершении в ](е)-м операторе окончания по ][/(е)]-й траектории реализации, или при "зацикливании" по ](е)-му варианту; в - начальный оператор, выполняющий также функции некоторого обобщенного оператора принятия решения, объединяющего операторы принятия решения алгоритма Н; 1{][](е)]} < ]{][](е)]} < К{][](е)]}; 1[](е)] < ]'[](е)] < К[](е)]; 1(е) < ](е) < К (е);
Г< да для алгоритма без" зацикливания";
К{][ ] (е)]} д Р " "’ (22)
[ = да для алгоритма с зацикливанием .
Процесс выбора оператором Р'Л] (е)]-й ветви дерева реализаций (20) в результате работы алгоритма Н может быть представлен в виде алгоритма Н с Н, с результатом
Т ' = Т'(Н, В). (23)
Анализ выражений (20), (21), (23) показывает, что ошибки, допущенные при реализации алгоритма, могут быть классифицированы следующим образом.
1. Изменен алгоритм Н выбора траектории решения, реализованный в операторе в.
2. Изменен состав вершин ветвей Т'{](е)} , выбираемых из алфавита
(18).
3. Изменен порядок следования вершин, выбираемых из отношения
Вышеупомянутое "зацикливание" представляет собой результат как минимум одной ошибки одного из упомянутых типов.
Произведем изменение индексации ветвей графа (20). Пусть индексы с 1-го по К-й присваиваются ветвям, при выборе и реализации которых не допущено ошибок, с (К + 1)-й по М-й ветвям, при выборе и реализации которых допущена хотя бы одна ошибка (назовем эти ветви "сбойными"), K (e)
M = ^ K[j (e)]. Тогда вероятность отказа программного обеспечения
j (e)=1(e)
при работе определяется по весьма простой зависимости
M
Pf = Ё Pi, (24)
i = K+1
где рi - вероятность попадания в "сбойные" ветви графа (20), определяемые как вероятности попадания обрабатываемых данных в соответствующие области гиперпространства Л.
В соответствии с приведенными рассуждениями выявление и исправление ошибок при тестировании и эксплуатации программного обеспечения означает увеличение индекса К при неизменном индексе М, что объясняет повышение отказоустойчивости программных средств с увеличением времени их эксплуатации.
Список литературы
1. Ершов А.П. Введение в теоретическое программирование: Беседы о методе. - М.: Наука, 1977. 288 с.
2. Котов В.Е., Сабельфельд В.К. Теория схем программ. М.: Наука, 1991. 246 с.
3. Ларкин Е.В. Энтропия сообщений, формируемых при алгоритмической обработке / Известия ТулГУ. Вычислительная техника. Автоматика. Управление. Т. 4. Вып. 1. Вычислительная техника. Тула: ТулГУ, 2002. С. 5 - 11.
Ивутин Алексей Николаевич, канд. техн. наук, доц., alexey.ivutin@gmail.com, Россия, Тула, Тульский государственный университет,
Ларкин Евгений Васильевич, д-р техн. наук, проф., зав. кафедрой, elar-kin@mail.ru, Россия, Тула, Тульский государственный университет
SOME WORDS ABOUT SOFTWARE FAILURES
A.N. Ivutin, E.V. Larkin
The model of software refusals is constructed. The increase of its reliability with increase operation time is shown.
Key words: failures, software, reliability, running time
Ivutin Alexey Nicolaevich, candidate of technical science, docent, alex-ey.ivutin@gmail.com, Russia, Tula, Tula State University,
Larkin Evgeniy Vasilevich, doctor of technical science, professor, manager of department, elarkin@mail.ru, Russia, Tula, Tula State University
УДК 004.052.2
ПАРАМЕТРИЧЕСКИЕ ОТКАЗЫ В КИБЕРНЕТИЧЕСКИХ
СИСТЕМАХ
А.Н. Ивутин, Е.В. Ларкин
Построена модель параметрических отказов для кибернетических систем. Предложена методика моделирования отказов данного типа.
Ключевые слова: отказы, надежность, время эксплуатации
Современный этап развития железнодорожного транспорта характеризуется широким внедрением цифровых ЭВМ в процесс управления движением, как в пределах отдельных транспортных единиц, так и в пределах железнодорожных узлов и всей сети в целом. Кибернетические комплексы оказывают существенное влияние на эффективность применения технических средств в процессе перевозок, а при возникновении аварийных ситуаций определяют работоспособность и даже жизнеспособность подвижного состава и сопутствующей инфраструктуры.
Одной из особенностей кибернетических систем исследуемого класса является «соревнование» отказов между аппаратными средствами и программным обеспечением, которое приводит к отказу системы в целом. Развитие деградационных процессов в каждом из компонентов имеет свою специфику, которую необходимо учитывать при исследовании «соревнований». Будем понимать отказ в общепринятом смысле, как событие, заключающееся в нарушении работоспособного состояния объекта. Как следует из изложенного, в исследуемом комплексе возможны два типа отказов: параметрический и структурный [1, 2].
Под параметрическим отказом будет пониматься отказ, связанный с отклонением рабочего параметра одного из компонентов за пределы допуска. Под структурным отказом будет пониматься отказ, связанный с неработоспособностью компонента, и как следствие этого нарушением взаимодействия между ним и другими компонентами, взаимосвязанными с ним. К структурным отказам могут быть отнесены также отказы, связанные с прямыми (непараметрическими) нарушениями связей между компо-
209