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

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

CC BY
216
38
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ковалев И. В., Ступина А. А., Гаврилов Е. С.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Ковалев И. В., Ступина А. А., Гаврилов Е. С.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

INFORMATION PROCCESSING RELIABILITY OF THE REAL-TIME CONTROL SYSTEMS

The software testing problem of the real-time control systems presents a kind of very complex problem. It's difficult to construct the software reliability model subject to the resource, time and budget constraints. In this view, exploiting of transaction reliability model for the information processing in the real-time control systems looks more rational.

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

УДК 681.34

И. В. Ковалев, А. А. Ступина, Е. С. Гаврилов

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

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

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

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

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

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

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

Введем следующие обозначения:

- т - общее количество классов;

- п - общее количество транзакций;

- К. - класс, i = 1, ..., т;

- О - операционный профиль (множество входных диапазонов) г-го класса, i = 1, ., т;

- F. - вектор, отображающий вероятности сбоя г-го класса для каждого входного диапазона, г = 1, ., т;

-/и - 1-й элемент вектора F, I - размерность вектора F ;

- Т - транзакция, j = 1, ., п;

- А - множество классов, принадлежащих j-й транзакции, г = 1, ..., п;

- Н - вектор вероятностей использования диапазона значений г'-го класса в j-й транзакции;

- h.jt - к-й элемент вектора Н;

- ^. - вес (надежность) г'-го классау-й транзакции;

- Ри. - вероятность использования у-й транзакции, сумма всех Ри равна 1;

- Rj - надежность у-й транзакции;

- Rr - транзакционная надежность всей системы.

Вес (надежность) г'-го класса у-й транзакции определятся по формуле

"'« -1, V(1 - 4 >. (1)

Надежность транзакции можно вычислить как п

я=

(2)

После вычисления надежностей всех транзакций находится общая транзакционная надежность системы:

я = У ри ■ я Її 1 І І І = 1

(3)

Представим алгоритм оценки и анализа транзакционной надежности программного обеспечения (см. рису-

нок) и проиллюстрируем основные этапы расчета транзакционной надежности на примере.

Имеется 3 класса с тремя диапазонами входных значений и известными вероятностями сбоя в каждом диапазоне:

К: £ = {0,01; 0; 0,001};

К-. £ = {0; 0; 0,05};

К- {0; 0,001; 0,001}.

Имеется 2 транзакции с известными вероятностями использования диапазонов классов и вероятностями использования транзакций:

- транзакция Т:

РЦ = 0,7;

Ни = {0,3; 0,1; 0,6 };

Н12 = {0,4; 0,4 ; 0,2};

Н13 = {0,8; 0,1; 0,1}.

- транзакция Т2:

Ри2=0,3;

Н21 = {0,2 ; 0,2; 0,6};

Н22 = {0,3; 0,7; 0};

Н23 = {0; 0,9; 0,1}.

Вычислим веса W..:

ж11 = 0,3 (1-0,01) + 0,1 (1-0) + 0.6 (1-0,001) = 0,996 4; Ж12 = 0,4 (1-0) + 0,4 (1-0) + 0,2 (1-0,05) = 0,9;

Ж13 = 0,8 (1-0) + 0,1 (1-0,0001) + 0,1 (1-0,0001) = 0,999 8. Аналогично вычислим:

W2l = 0,997 4;

W22 = 0;

Ж23 = 0,999 0.

Получим:

R = Wn • W12 • W13 = 0,896 6;

R = W21 • W22 ^ W23 = 0,996 4

В итоге имеем:

Rtt= 0,7 • 0,896 6 + 0,3 • 0,996 4 = 0,926 5.

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

Пример расчета транзакционной надежности и анализ полученных результатов. В качестве примера рассмотрим проект создания модуля «Управление автотранспортом» в системе Microsoft Business Solutions-Axapta. Эта система обладает следующими функциями, которые позволяют эффективно реализовать рассмотренный в данной работе подход:

- реализация на объектно-ориентированном языке Х++, аналогичном по синтаксису языкам C++ и Java;

- открытый код, доступный для модификаций;

- встроенные средства визуального программирования;

- около 2 000 классов, реализующих бизнес-логику системы;

- встроенный профайлер кода с детализацией времени выполнения до строки исходного кода;

- встроенные средства мониторинга и трассировки ошибок;

- возможность организации распределенных вычислений.

Проведем расчет транзакционной надежности.

1. Фаза создания архитектуры. Для объектно-ориентированного подхода архитектура программного обеспечения - это совокупность иерархий классов. Каждый класс - совокупность свойств (переменных) и методов (функций) объекта. Процесс - последовательный переход от метода одного класса к методу другого класса.

На данной фазе была построена архитектура будущего программного обеспечения. По предварительной оценке для реализации бизнес-логики модуля необходимо создание 18 классов (компонентов), 5 из которых являются классами верхнего уровня, или суперклассами. Общее количество методов во всех классах - 362.

2. Фазы кодирования и тестирования компонентов. Необходимо определить начальную плотность ошибок в коде. Известна следующая априорная информация:

- коэффициент командного программирования Fpr (определяется как средний и равен 1);

- коэффициент опытности F (определятся как «Уровень 3» и равен 0,4);

- границы коэффициента С - константы, определяющей количество ошибок (лежат в диапазоне от 6 до 20);

- коэффициент структурирования F (принимается равным 1);

- коэффициент фазы тестирования Fph (используется тестирование модуля и равен 4).

Количество тысяч строк кода (КЬОС-оценка) в каждом классе следующее: К1 - 1,1; К2 - 3,2; К3 - 2,0; К4 - 0,6; К5 - 0,3; К6 - 0,9; К7 - 1,0; К8 - 1,2; К9 - 2,2; К10 - 1,4; К11

- 0,4; К12 - 0,5; К13 - 1,0; К14 - 1,2; К15 - 1,7; К16 - 0,7; К17- 0,6; К18 - 0,9. В результате получаем расчетные данные, представленные в табл. 1.

Расчет данных на фазе т

В табл. 1 применяются следующие обозначения: Rm -желаемый уровень надежности; в - общее количество ошибок; в1 - константа пропорциональности; Лг0мах - начальное количество ошибок в исходном коде; Т - время тестирования, необходимое для достижения надежности Rm; ТгН - время тестирования в человеко-часах (для пересчета использовался коэффициент 5).

В результате получаем, что для тестирования всех классов потребуется около 1 635 человеко-часов, что равно 68 рабочим дням для команды из трех программистов-тестировщиков. В реальном проекте на тестирование 18 классов было потрачено 1 700 человеко-часов [7].

3. Фаза тестирования системы. В качестве примера рассмотрим формирование двух типов в модуле «Управление автотранспортом» системы Microsoft-Axapta. В результате тестирования было выявлено 4 транзакции, которые суммарно используют 18 классов с максимальным количеством диапазонов входных значений 4 (табл. 2).

Вероятности использования транзакций следующие: Ри1 = 0,330 000; РЦ,=0,250 000;

РЦ, = 0,150 000; Ри4=0,270 000.

Опишем подмножества классов, входящих в транзакции: = {1, 2, 4, 5, 6, 8, 9, 11, 13, 14, 15, 17, 18};

В2 = {1, 2, 3, 4, 5, 6, 16, 17, 18};

£3 = {2, 3, 5, 7, 8, 10, 12, 15, 16, 17};

= {6, 7, 8, 15, 16, 17, 18}.

Векторы вероятностей использования диапазонов и векторы весов транзакций Т1...Т4 выглядят следующим образом (табл. 3.6).

Имея все необходимые данные, рассчитаем надежности каждой транзакции по формуле (2):

Rt1 = 0,999 436; Rt2 = 0,999 855; Rt3 = 0,999 662, Rt4 = 0,999 710.

В результате получаем итоговую транзакционную надежность:

Я = 0,999 649.

Таблица 1

тирования компонентов

Класс L, тыс. строк в1 N0тах Ро п Т Т г ТгН, чел.-ч

К1 1,100 000 90,909 000 88 0,990 000 18,290 000 91,440 000

К2 3,200 000 31,250 000 256 0,990 000 19,360 000 96,780 000

КЗ 2,000 000 50,000 000 160 0,990 000 18,890 000 94,430 000

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

К4 0,600 000 166,667 000 48 0,990 000 17,680 000 88,410 000

К5 0,300 000 333,333 000 24 0,990 000 16,990 000 84,940 000

К6 0,900 000 111,111 000 72 0,990 000 18,090 000 90,440 000

К7 1,000 000 100,000 000 80 0,990 000 18,190 000 90,960 000

К8 1,200 000 83,333 000 96 0,990 000 18,370 000 91,870 000

К9 2,200 000 45,455 000 176 0,990 000 18,980 000 94,900 000

К10 1,400 000 71,429 000 112 0,990 000 18,530 000 92,640 000

К11 0,400 000 250,000 000 32 0,990 000 17,280 000 86,380 000

К12 0,500 000 200,000 000 40 0,990 000 17,500 000 87,500 000

К13 1,000 000 100,000 000 80 0,990 000 18,190 000 90,960 000

К14 1,200 000 83,333 000 96 0,990 000 18,370 000 91,870 000

К15 1,700 000 58,824 000 136 0,990 000 18,720 000 93,620 000

К16 0,700 000 142,857 000 56 0,990 000 17,840 000 89,180 000

К17 0,600 000 166,667 000 48 0,990 000 17,680 000 88,410 000

К18 0,900 000 111,111 000 72 0,990 000 18,090 000 90,440 000

Таблица 2

Операционные профили классов

Классы Вероятности сбоя в диапазоне

1 2 3 4

К1 0,000 010 0 0,000 070 0

К2 0 0 0,000 010 0,000 010

К3 0 0,000 040 0,000 550

К4 0 0 0 0,000 050

К5 0 0 0,000 020 0

К6 0,000 340 0 0 0

К7 0 0 0,001 100 0

К8 0 0 0 0,000 090

К9 0 0,000 001 0 0

К10 0 0,000 440 0 0

К11 0,000 670 0 0 0

К12 0 0 0 0,000 010

К13 0,000 180 0 0 0

К14 0 0,000 580 0 0

К15 0 0 0,000 001 0

К16 0,000 010 0 0 0

К17 0 0 0,000 050 0

К18 0 0,000 010 0 0

Таблица 3

Векторы вероятностей использования диапазонов и векторы весов транзакции 71

Класс Вероятности использования диапазонов ШИ

1 2 3 4

К1 0 0,100 000 0,900 000 0 0,999 937

К2 0,500 000 0,500 000 0 0 1

К4 0 0,140 000 0,030 000 0,830 000 0,999 959

К5 0,150 000 0,250 000 0 0,6 1

К6 0,005 000 0,044 000 0,456 000 0,495 000 0,999 998

К8 0 0,550 000 0,262 000 0,188 000 0,999 983

К9 0,999 000 0,001 000 0 0 1

К11 0 0,727 000 0,005 000 0,268 000 1

К13 1 0 0 0 0,999 820

К14 0 0,441 000 0,334 000 0,225 000 0,999 744

К15 0 0,456 000 0 0,544 000 1

К17 0,745 000 0,111 000 0 0,144 000 1

К18 0 0,498 000 0,229 000 0,273 000 0,999 995

Таблица 4

Векторы вероятностей использования диапазонов и векторы весов транзакции 72

Класс Вероятности использования диапазонов

1 2 3 4

К1 0,045 000 0,665 000 0 0,290 000 1

К2 0 0 0,546 000 0,454 000 0,999 990

К3 0,564 000 0,339 000 0,097 000 0 0,999 933

К4 0,002 200 0,056 800 0,655 000 0,286 000 0,999 986

К5 0 0,500 000 0 0,500 000 1

К6 0 0,556 000 0,444 000 0 1

К16 0,800 000 0,180 000 0,020 000 0 0,999 992

К17 0,100 000 0 0,900 000 0 0,999 955

К18 0,003 000 0 0,664 000 0,333 000 1

Таблица 5

Векторы вероятностей использования диапазонов и векторы весов транзакции 73

Класс Вероятности использования диапазонов

1 2 3 4

К2 0 0,333 000 0,667 000 0 0,999 993

К3 0,995 000 0,001 000 0,004 000 0 0,999 998

К5 0,250 000 0,250 000 0,500 000 0 0,999 990

К7 0,333 000 0,333 000 0 0,334 000 1

К8 0 0,125 000 0,125 000 0,750 000 0,999 933

К10 0,334 000 0,556 000 0,001 000 0,109 000 0,999 755

К12 0,669 000 0,223 000 0,002 000 0,106 000 0,999 999

К15 0,550 000 0,330 000 0 0,120 000 1

К16 0 0 0,500 000 0,500 000 1

К17 0,222 000 0,650 000 0,128 000 0 0,999 994

Таблица 6

Векторы вероятностей использования диапазонов и векторы весов транзакции 74

Класс Вероятности использования диапазонов

1 2 3 4

К6 0 1 0 0 1

К7 0,250 000 0,250 000 0,250 000 0,250 000 0,999 725

К8 0 0,333 000 0,556 000 0,111 000 0,999 990

К15 0 0,333 000 0 0,667 000 1

К16 0,333 000 0,333 000 0,334 000 0 0,999 997

К17 0 0,999 000 0,001 000 0 1

К18 0,250 000 0,125 000 0 0,625 000 0,999 999

Таким образом, при работе с данными типами документов система будет давать сбой в 351 случае из 106 при условии, что оператор не совершает ошибок. В результате реального теста, по которому был сделан расчет, из 106 транзакций неуспешно завершились 338 транзакций.

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

Наибольший вес в вероятность сбоя вносят классы К7, К10, К14. Уменьшив вероятность сбоя на входных диапазонах в этих классах в два раза, можно достичь следующих результатов:

Rt1=0,999 564; Rt2=0,999 855; Rt3=0,999 784; Rt4=0,999 860.

В результате получаем новую транзакционную надежность:

Rtr = 0,999 750.

1Г ’

4. Фаза эксплуатации. Вычислим коэффициент готовности системы 5, для чего необходимо получить значения среднего времени простоя системы (ТК) и среднего времени появления сбоя (MTTF) (табл. 7). В качестве исходных данных используются РЦ. - вероятность использования компонента i, PF - вероятность сбоя в компоненте i, ТА . - относительное время доступа к компоненту i, ТЦ . - относительное время использования компонента i.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Коэффициент готовности системы вычисляется по формуле

5 = МТ / (М^+ТК). (4)

Условные вероятности сбоев PL.J на практике оказываются равными 0, если выходные значения одного клас-

са проверяются на входе другого класса, иначе сбой распространяется в другой класс и тогда условная вероятность не равна 0:

- ТК = 0,000 018 с;

- МТ = 2 045 с;

- 5=0,999 998.

Наибольший вес в вероятность сбоя вносили классы К7, К10, К14. В результате уменьшения вероятности сбоя в соответствующих входных диапазонах удалось найти узкие места в системе. Получены новые показатели:

- ТК = 0,000 015 с;

- МПГ=2 045,1 с;

- 5=0,999 999.

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

- на фазе кодирования и тестирования компонентов можно получить оценочное время тестирования каждого компонента ПО (в человеко-часах), необходимое для достижения заданной надежности Кт, что полезно при планировании проектных работ. Практические результаты показали, что оценочное время отклоняется от реального не более чем на 5 %;

- на фазе полного тестирования системы можно найти узкие места в системе - те компоненты, которые вносят наибольший вес в вероятности сбоя;

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

- для готовой системы обработки и хранения информации с заданными операционными профилями

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

Таблица 7

Исходные данные для вычисления ТЯ и MTTF

Класс PUi PFi TAi (мсек) ТЩмсек)

K1 0,001 000 0,000 063 0,100 000 1,400 000

K2 0,130 000 0,000 017 0,700 000 1,600 000

K3 0,105 000 0,000 069 0,400 000 2,100 000

K4 0,062 000 0,000 056 0,900 000 0,900 000

K5 0,053 000 0,000 010 0,200 000 3,700 000

K6 0,074 000 0,000 002 0,200 000 6,200 000

K7 0,004 000 0,000 275 0,500 000 1,100 000

K8 0,003 000 0,000 094 0,800 000 0,900 000

K9 0,029 000 0,000 000 0,900 000 0,300 000

K10 0,107 000 0,000 245 0,100 000 0,100 000

K11 0,151 000 0,000 000 0,100 000 0,600 000

K12 0,093 000 0,000 001 0,400 000 0,600 000

K13 0,033 000 0,000 180 0,700 000 2,700 000

K14 0,037 000 0,000 256 0,200 000 3,400000

K15 0,075 000 0,000 000 0,400 000 5,200 000

K16 0,022 000 0,000 011 0,100 000 6,400 000

K17 0,018 000 0,000 051 0,600 000 1,800 000

K18 0,003 000 0,000 006 0,800 000 6,200 000

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

1. Липаев, В. В. Надежность программных средств / В. В. Липаев. М.: СИНТЕГ, 1998.

2. Ковалев, И. В. Надежность технологий обработки данных в информационно-управляющих системах / И. В. Ковалев // Решетневские чтения: материалы VII Все-рос. науч. конф. с междунар. участием, 11-12 нояб. 2004, г. Красноярск / СибГАУ. Красноярск, 2004. С. 147-148.

3. Lyu, M. R. Handbook of Software Reliability Engineering / M. R. Lyu // IEEE Computer Society Press and McGraw-Hill Book Company. 1996.

4. Grams, T. The Poverty of Reliabiliy Growth Models / T. Grams // FastAbstract ISSRE. 1999.

5. Goseva-Popova, K. How Different Architecture Based Software Reliability Models are Reealated / K. Goseva-Popova, K. S. Trivedi, A. P. Mathur // FastAbstract ISSRE. 2000.

6. Hamlet, D. Foundational Theory of Software Component Reliability / D. Hamlet, D. Mason, D. Wiot // FastAbstract ISSRE. 2000.

7. Юнусов, Р. В. Оценка надежности программного обеспечения клиент-сервер на примере комплексной системы управления предприятием «Галактика» / Р В. Юнусов // Вестник НИИ СУВПТ / НИИ СУВПТ. Вып. 7. Красноярск, 2001. С. 107-112.

I. V. Kovalev, A. A. Stupina, E. S. Gavrilov

INFORMATION PROCCESSING RELIABILITY OF THE REAL-TIME CONTROL SYSTEMS

The software testing problem of the real-time control systems presents a kind of very complex problem. It s difficult to construct the software reliability model subject to the resource, time and budget constraints. In this view, exploiting of transaction reliability model for the information processing in the real-time control systems looks more rational.

i Надоели баннеры? Вы всегда можете отключить рекламу.