Использование метода диакоптики для анализа надежности программного обеспечения

УДК 681.32

К. В. Колесов

ИСПОЛЬЗОВАНИЕ МЕТОДА ДИАКОПТИКИ ДЛЯ АНАЛИЗА НАДЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Рассмотрена возможность применения метода диакоптики для исследования надежности алгоритмов программного обеспечения различных вычислительных и управляющих систем. Этот метод чрезвычайно актуален в настоящее время в связи с резким увеличением сложности структур алгоритмов и финансовых затрат на разработку программного обеспечения.

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

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

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

Кроме того, если в состав системы уравнений, описывающих первоначальную систему, входило N отдельных уравнений с N неизвестными, то при разбиении системы на п отдельных подсистем для описания связей между ними вводятся к неизвестных. Поэтому необходимо найти ^ + к) переменных в (п + 1) независимых группах, а не просто решить систему из N уравнений с N переменными. Впрочем, такое усложнение дает значительное уменьшение габаритов исходных анализируемых подсистем.

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

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

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

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

Из всех моделей наиболее приемлемы топологические модели, в которых каждая отдельная ветвь может быть индуктивностью, оператором, блок-схемой или другим элементом; и все элементы связаны между собой с помощью графа. А самой подходящий для представления и описания анализируемых величин является электротехническая терминология.

Описанный выше метод расчленения может быть использован несколькими способами:

- можно выделить один, два или более особо важных параметра в каждой из подсистем и произвести анализ всей системы с учетом именно этих параметров;

- можно найти собственные значения и собственные векторы каждой из подсистем и затем определить собственные значения и собственные векторы целой системы с меньшим объемом вычислений;

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

Идея метода расчленения может быть использована для решения практически любых задач с большим числом переменных. При этом следует заметить, что результаты расчета каждой отдельной подсистемы, как правило, не являются целью данного метода, а используются как исходные данные для следующего шага - получения системы уравнений, описывающей поведение всей системы целиком. Расчет всех п подсистем завершается расчетом (п + 1)-й системы, которая является конденсированным вариантом полной системы. Кроме того, для метода расчленения характерно то, что любая проблема, которую приходилось решать при анализе исходной сис-

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

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

В тензорном методе [6] используется понятие элементарной ячейки - настолько малой части исходной системы, уравнения состояния которой устанавливаются сразу без дополнительных шагов анализа. Модель такой элементарной ячейки не может быть расчленена на более мелкие части. Для описания этой модели используется система п уравнений с п неизвестными [6; 7].

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

Основная суть метода диакоптики состоит в следующем [7]:

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

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

С практической точки зрения метод диакоптики сводится к следующему: в случае анализа сложной системы вместо нее можно рассчитать другую систему, которая затем может быть переведена в исходную систему с помощью уже упомянутых выше преобразований, причем анализ этой системы будет намного проще, чем исследование исходной системы. Иными словами, сначала нужно рассчитать ту систему, анализ которой не представляет особой трудности. Такой системой является группа не-

связанных подсистем. Каждая подсистема в данном случае рассчитывается независимо от других, а затем все полученные (п + 1) системы преобразуются с помощью матрицы С в решение исходной системы уравнений.

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

Следует отметить, что переменные всех структур взаимосвязаны друг с другом. Для примера приведем связь переменных двух структур: А (рис. 1) и В (рис. 2). Для этого необходимо найти матрицу преобразований. Одна из рассматриваемых цепей содержит три контура, вторая - два контура. Поскольку при выборе контуров каждый из выбранных параметров должен циркулировать в замкнутом контуре, то для реализации этого процесса будут использоваться виртуальные блоки. Контуры выбираются произвольным образом.

Рис. 1. Цепь А

\

''-Ж'*’ \ ^____

ТГ I I > /

Ч

\

1 ч \ 3

"V'

/

/

/

/ 1

/

✓

Рис. 2. Цепь В

ТГ

2

5

После выбора контуров приравняем потоки, протекающие через одни и те же блоки. В итоге получится следующая система уравнений [8]:

Та - ТЬ - Тй - Т/ _ Та',

Тс _ Та'+ Тс’ + Тй' + Т/',

ТЬ + Тй _ -ТЬ',

-ТЬ _ Та’ + ТЬ’ + Тс’.

Все эти уравнения можно получить путем преобразования токов соответствующей примитивной сети элементов, следовательно для сетей А и В примитивная сеть будет одинакова. Тогда

Тй _ сеата ,

Тй _ СЕВТВ.

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

Запишем эти равенства в матричной форме:

сЕта _ сЕтв.

Теперь попробуем разделить обе матрицы на две части, одна из которых будет определять контуры, а вторая - пары узлов:

1 -1 0 -1 -1 0 0 10 0 1 0 0 0 0 0 10 10

0 10 0 0

СЕ =

А

=С СЕ2 ],

= [Све| СЕ2 ].

сА = (с; )-1 =

СА СА

1 0 0В 0 0Е 10 111 0 1 0 -10 0 -10 0 0 1110 0

СЕ _ (СЕ )-1 1 0 0 0 0

СЕ _

/-1А1 СА2 СВ ,

с;3 СА4

10 111 0 1 0 -10 0 -10 0 0 1110 0

В заключение найдем матрицу обратного перехода [9]: "1 0 0 0 0“

10 111

сЕ _ (с; )-1 =010 -10 0 -10 0 0 1110 0

СА1 СА2 СВ СВ С^43 с^А 4

"1 0 0 0 0“

10 111 сВ _ 0 1 0 -10 0 -10 0 0 1110 0

Ранее нами было получено соотношение, из которого следует, что

тА _ (СЕ)-1 те _ (СЕ)-1 сЕтв _ с;сЕтв .

В то же время известно соотношение, которое позволяет перейти от одной сети к другой:

та _ с;сетв _ с;тв .

Отсюда следует, что искомая матрица преобразования координат между двумя данными сетями определяется перемножением матриц:

/''*А _ (('''Ел-1^Е _ г^Аг^Е

СВ —(СА) СВ ~СЕСВ .

Таким образом, матрица перехода между сетями имеет вид

”10 0 0 0 10 111 0 1 0 -10 0 -10 0 0

1 1 1 0 0^

Произведя перемножение матриц с; и СЕ, получим искомую матрицу перехода:

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

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

Возможна и другая ситуация, когда необходимо получить результаты для случая объединения нескольких программных модулей между собой. Структура и характеристики каждого из модулей и способ их соединения заданы, а характеристики всего алгоритма необходимо найти. И, наконец, каждый из элементов алгоритма в свою очередь может представлять собой не конечный элемент, а отдельный алгоритм.

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

Библиографический список

1. Липаев, В. В. Надежность программного обеспечения АСУ / В. В. Липаев. М. : Энергоиздат, 1981.

2. Майерс, Г. Надежность программного обеспечения / Г. Майерс. М. : Мир, 1980.

3. Смагин, В. А. Моделирование и обеспечение надежности программных средств АСУ / В. А. Смагин, В. С. Солдатенко, В. В. Кузнецов ; Высш. инж. команд. уч-ще им. А. Ф. Можайского. СПб., 1999.

4. Липаев, В. В. Тестирование программ / В. В. Липаев. М. : Радио и связь, 1986.

5. Липаев, В. В. Качество программного обеспечения / В. В. Липаев. М. : Финансы и статистика, 1983.

6. Крон, Г. Тензорный анализ сетей / Г. Крон. М. : Сов. радио, 1978.

7. Крон, Г. Исследование сложных систем по частям. Диакоптика / Г. Крон. М. : Наука, 1972.

8. Веревкина, Е. В. Тензорная методология исследования нагрузки в информационных сетях : монография / Е. В. Веревкина, О. А. Корякина, М. Н. Петров ; под ред.

проф. М. Н. Петрова ; НИИ систем упр., волновых процессов и технологий. Красноярск, 2004.

9. Петров, М. Н. Тензорная методология в информационных сетях : монография / М. Н. Петров, Е. В. Веревкина, М. О. Захарченко ; под ред. проф. М. Н. Петрова; НИИ систем упр., волновых процессов и технологий. Красноярск, 2001.

K. V Kolesov

DIACOPTICS METHOD APPLICATION FOR SOFTWARE RELIABILITY ANALYSIS

The opportunity of the diacoptics method application for the algorithms reliability of the various software and managing systems research is considered. The value of this method is extremely actual now in connection with a sharp increase in complexity of algorithms structures and considerable financial expenses for the software development.

Key words: reliability, diacoptics, tensor analysis, software.

УДК 681.3

М. В. Карасева, П. В. Зеленков

РЕАЛИЗАЦИЯ МОДУЛЯ ПОИСКА ИНФОРМАЦИИ НА ОСНОВЕ ИСПОЛЬЗОВАНИЯ МУЛЬТИЛИНГВИСТИЧЕСКИХ ТЕЗАУРУСОВ

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

Ключевые слова: ранжирование, уровень релевантности, метапоиск.

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

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

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

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

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