Scientific journal
Fundamental research
ISSN 1812-7339
"Перечень" ВАК
ИФ РИНЦ = 1,674

METHODOLOGICAL ASPECTS OF DIAGNOSING THE STATE OF TECHNICAL AND PROGRAM SYSTEMS

Lomakina L.S. 1 Voron A.M. 1
1 Nizhny Novgorod State Technical University n.a. R.E. Alekseev
The article analyzes the existing methods of diagnosing technical and program systems. Diagnosis methods can be divided into deterministic and non deterministic methods by result type criterion. Dynamic programming, branch and bound methods, method based on Markov chains are deterministic. Algorithms based on these methods allow getting incorrect block exactly. These algorithms are not effective if they are applied for complex systems. Simulated annealing and evolutionary computation are non deterministic methods. These methods allow getting approximate solution in acceptable time. Based on the analysis of existing diagnostic algorithms shortcomings and particularities of their application to complex technical and program systems have been identified.
diagnostics
technical systems
program systems
defect
information criterion
evolutionary computation
1.Barshdorf D. Nejronnye seti i nechetkaya logika. Novye koncepcii dlya tekhnicheskoj diagnostiki neispravnostej [Neural networks and fuzzy logic. New concepts for technical troubleshooting]. Pribory i sistemy upravleniya, 1996, no. 2, pp. 48–53.
2.Bellman R., Dreyfus S., Applied Dynamic Programming. – Princeton University Press, 1962 – 458 p.
3.Brooks F.P. No Silver Bullet – Essence and Accidents of Software Engineering. Proceedings of the IFIP 10-th World Computing Conference, pp. 1069–1076, 1986.
4.Vedeshenkov V.A., Lebedev V.N. Multiagentnaya organizaciya sistemnogo diagnostirovaniya bolshih cifrovyh sistem so strukturoj tipa toroidalnoj reshetki [Multi-agent organization of system of diagnosing large digital systems with toroidal grid-type structure]. Avtomatika i telemekhanika, 2008, no. 2, pp. 154–170.
5.Gerasimov V.V., Kornoushenko E.K. Diagnostirovanie dinamicheskih sistem, zadannyh strukturnymi skhemami s nelinejnymi i nestacionarnymi ehlementami [Diagnosing dynamical systems, given the structural schemes with nonlinear and non-stationary elements]. Avtomatika i telemekhanika, 1990, no.4, pp. 133–143.
6.Kuznecov P.I., Pchelincev L.A., Gajdenko V.S. Kontrol i poisk neispravnostej v slozhnyh sistemah [Control and failure search into complex systems]. М.: Sov. radio, 1969. 239 p.
7.Lower E.L., Wood D.E. Branch-and-Bound methods: a survey. Oper. Res., 1966, v. 14, no.4, рp. 699–719.
8.Lomakina L.S., Voron A.M. Informacionnyj sintez kontroleprigodnyh sistem s uchetom oshibok kontrolno-izmeritel’noj apparatury [Informational synthesis of testable systems considering control measurement instrument failures]. Sistemy upravleniya i informacionnye tekhnologii, 2013, no.3, pp. 59–64.
9.Lomakina L.S., Gubernatorov V.G. Modifikaciya ehvolyucionno-geneticheskogo algoritma dlya ehffektivnogo diagnostirovaniya slozhnyh sistem [Modification of an evolutionary genetic algorithm for efficient diagnosis of complex systems]. Nauchno-tekhnicheskiy vestnik Povolzhya, 2013, no. 4, pp. 215–219.
10.Parhomenko P.P. Teoriya voprosnikov [Questionnaire theory]. Avtomatika i telemekhanika, 1970, no. 4, pp. 140–159.
11.Paolo Tonella. Evolutionary testing of classes. In ISSTA ’04: Proceed-ings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis, pр.119–128, New York, NY, USA, 2004. ACM Press.
12.Rakityanskaya A.B., Rotshtejn A.P. Diagnostika na osnove nechetkih otnoshenij [Diagnosis based on fuzzy relations]. Avtomatika i telemekhanika, 2007, no.12, pp. 113–130.
13.Ramamoorthy C.V., Mayeda W. Computer diagnosis using the blocking gate approach. – IEEE Trans. Computers, 1971, vol. C-20, no.11, pр. 1294–1299.
14.Sagunov V.I., Lomakina L.S. Kontroleprigodnost strukturno svyazannyh system [Controllability structurally related systems]. М.: Energoatomizdat, 1990. 112 p.
15.Timolen L.S. O postroenii optimalnyh programm diagnostiki sostoyaniya slozhnyh tekhnicheskih sistem [About the construction of optimal state of complex technical systems diagnostic programs]. Izv. AS USSR. Tech. cybernetics, 1966, no.4, pp. 95–101.
16.Ullrich M., Cubat L.A generalized approach to taultfinding procedures. Kybernetica, 1966, v. 2, no.1, рp. 48–53.
17.Shumskij A.E., Funkcional’noe diagnostirovanie nelinejnyh dinamicheskih sistem s zapazdyvaniem [Functional diagnosis of nonlinear dynamic systems with delay]. Avtomatika i telemekhanika, 2009, no.3, pp. 172–184.

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

На поиски и устранение ошибок в программном обеспечении тратится более 50 % стоимости разработки, а с учетом адаптации, модификации и обслуживания при эксплуатации – до 70 % стоимости программного продукта за время его жизненного цикла [3]. Задачей ближайшего будущего является движение в сторону такого распределения трудоемкости, чтобы суммарная цена обнаружения большинства дефектов стремилась к минимуму за счет обнаружения преимущественного числа ошибок программы на наиболее ранних фазах разработки программного продукта.

Методы диагностирования по типу предоставляемого результата можно разделить на два вида: детерминистические и недетерминистические.

Детерминистические алгоритмы распознавания дефектов

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

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

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

Для универсального определения нижней границы значения функции-критерия в работе [10] был предложен метод, базирующийся на теории вопросников. Втеории вопросников каждая вершина дерева ветвлений (кроме висячей) называется вопросом, совокупность вопросов, достаточная для разбиения множества состояний системы на одноэлементные, – вопросником, а стоимость реализации вопросника – ценой его обхода. Висячие вершины вопросника называются события, им приписаны веса – вероятности соответствующих состояний системы, сумма весов событий – потомков некоторого вопроса – называется его весом. Цена обхода вопросника определяется как сумма произведений веса каждого вопроса на цену этого вопроса. Предложенный алгоритм позволяет уменьшить цену обхода вопросника, причем каждому вопросу может соответствовать более 2вариантов ответа.

В работах [6] процессы диагностирования кратных дефектов рассматриваются как управляемые цепи Маркова. Состояниями цепи считаются не состояния системы, а состояния процесса поиска. Предлагаемый в [16] метод диагностирования основан на применении метода динамического программирования. Для каждого состояния поиска вычисляется средняя стоимость управления, которая переводит его в конечное состояние, и определяются тесты, минимизирующие эту величину. Вычисления производятся по рекуррентным соотношениям Беллмана [2], начиная с тех состояний, из которых конечные достигаются за один шаг.

В работе [13] решение проблемы различимости кратных дефектов проводится с помощью точек блокирования. Метод определения максимальной различимости дефектов основан на вычислении приведенной матрицы диапазонов. Данный алгоритм определяет оптимальное расположение блокирующих точек для максимальной различимости с минимальной стоимостью решения. Вработе [14] задача поиска минимального числа точек блокирования решается путем формирования матрицы управляемых разрывов и назначения дополнительных точек блокирования, необходимых и достаточных для обеспечения различимости одиночных дефектов.

В работе [4] рассмотрена мультиагентная организация системного диагностирования больших цифровых систем. Контроль и диагностирование компонентов больших цифровых систем со структурой типа тороидальной решетки проводятся в три этапа. На первом этапе параллельно проверяются компоненты подсистем, выделенных первичной раскладкой; на втором и третьем этапах также параллельно проверяются подсистемы, полученные путем сдвига первичных подсистем на один шаг решетки вправо. Вработе была разработана мультиагентная организация системного диагностирования рассматриваемых БЦС и определены функциональные свойства и взаимосвязи агентов.

В [17] рассматривается задача функционального диагностирования нелинейных динамических систем с запаздыванием. Решение задачи предполагает формирование соотношений избыточности, по результатам их проверки делается вывод о правильности функционирования системы и о виде дефекта в системе. Для систем, описываемых дифференциальными уравнениями с полиномиальной правой частью, предлагается метод формирования соотношений избыточности. Метод допускает, что некоторые постоянные коэффициенты полиномов являются неизвестными.

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

Недетерминистические алгоритмы распознавания дефектов

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

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

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

В работе [12] рассматривается восстановление причин (диагнозов) по наблюдаемым следствиям (симптомам) на основе нечетких отношений и композиционного правила вывода Заде. Предлагается подход к проектированию нечетких систем диагностики, обеспечивающий решение нечетких логических уравнений совместно с построением и настройкой нечетких отношений на основе экспертно-экспериментальной информации. Настройка заключается в подборе таких функций принадлежности нечетких причин и следствий, а также нечетких отношений, которые минимизируют отличие между модельными и экспериментальными результатами диагностики. Для решения задачи оптимизации используется генетический алгоритм. Предлагаемый подход иллюстрируется компьютерным экспериментом и реальным примером диагностики.

Применение эволюционной оптимизации для тестирования объектно-ориентированного ПО впервые рассмотрено в работе [11]. Вданной работе с помощью генетического алгоритма генерируется тестовая программа для структурного тестирования классов. Классы представляются в виде исходного кода. Используется специализированный генетический алгоритм, содержащий нестандартные операторы мутации и кроссинговера. Данные генетические операторы работают на уровне выражений и изменяют цепочку вызова методов тестируемых классов в тестовой программе. Новые тестовые программы генерируются до тех пор, пока не будет достигнуто желаемое покрытие исходного кода тестируемых классов. Стоит отметить, что в данной работе не рассматривается проблема инкапсуляции, характерная для тестирования объектно-ориентированного ПО.

Выводы

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

Таким образом, проблема разработки алгоритмов оптимального поиска неисправностей в сложных технических и программных системах является на данный момент актуальной.