
fd02aed
.pdf
•(3) – происходит восстановление первой программы после принятия решения, работает вторая программа;
•(4) – произошел отказ второй программы, расходуется время на принятие решения по второй программе, расходуется допустимое время, первая программа восстанавливается;
•(5) – произошел отказ второй программы, расходуется время на принятие решения по второй программе, допустимое время полностью израсходовано, первая программа восстанавливается;
0 0
2 |
1 |
|
3 |
5 4
6 |
1 |
2 |
3 |
|
4 |
5 |
6 |
Рис. 9.5. Граф состояний работы программного обеспечения для двух программ
•(6) – обе программы отказали, восстанавливается первая программа после принятия решения (в силу принятого приоритета обслуживания).
Аналогичные состояния имеют место при замене первой программы на вторую, а второй – на первую:
•( 0 ) – работает вторая программа;
•( 1 ) – произошел отказ второй программы, расходуется время на принятие по второй программе, расходуется допустимое время;
•( 2 ) – произошел отказ второй программы, расходуется время на принятие решения по второй программе, допустимое время полностью израсходовано;
•( 3 ) – происходит восстановление второй программы после принятия решения, работает первая программа;
•( 4 ) – произошел отказ первой программы, расходуется время на принятие решения по первой программе, расходуется допустимое время, вторая программа восстанавливается;
•( 5 ) – произошел отказ первой программы, расходуется время на принятие решения по первой программе, допустимое время полностью израсходовано, вторая программа восстанавливается;
451

• ( 6 ) – обе программы отказали, восстанавливается вторая программа после принятия решения.
Состояния (2), (5), (6), а также состояния (2), (5), (6) являются отказовыми.
Программное резервирование позволяет выявить как случайные сбои, так и случайные отказы программ. Такой метод резервирования, как правило, существенно повышает надежность ПО, особенно в тех случаях, когда в основной и резервной программах использованы разные методы и алгоритмы решения одной и той же задачи или реализации прикладной функции. Вместе с тем программное резервирование связано с удвоенным объемом программирования и двукратным увеличением объема оперативной памяти и машинного времени ЭВМ на прогон резервной программы.
Для повышения надежности ПО чаще всего применяют комбинации временного и программного резервирования. При подобном резервировании в случае выявления отказа или сбоя основной программы осуществляется прогон резервной программы, реализующей иной метод и алгоритм решения задачи.
9.7. Надежностное проектирование программного обеспечения
Самым лучшим способом получить надежностное программное обеспечение является сведение к минимуму числа ошибок и их последствий в ходе разработки комплекса программ. Существует целый ряд методов разработки программ и управления этим процессом, которые позволяют создавать надежные программы. К таким методам обычно относится структурное программирование и некоторые связанные с ним приемы.
Структурное программирование. Имеется несколько опреде-
лений структурного программирования. Чаще всего оно определяется:
1)программированием без использования операторов GO TO;
2)программированием с применением нисходящего метода разработки программ;
3)программированием с использованием принципа модульного конструирования программ.
Указанные три приема повышают надежность, удобочитаемость и удобство обслуживания программного обеспечения.
452
Программирование без использования операторов GO TO. Сам по себе оператор безусловного перехода не приводит к ошибкам. Однако передача управления с помощью этого оператора может вызывать усложнение логической схемы программы и сделать ее трудночитаемой. Исключение операторов GO TO позволяет получить более понятную и удобочитаемую программу. Кроме того, программу, не содержащую операторов безусловного перехода, легче проверить.
В качестве примера ниже представлена программа (1), составленная с использованием операторов безусловного перехода:
A
IF B GO TO 10 D
GO TO 30 10 E
GO TO 30 30 G
Эта же программа, но составленная без операторов перехода (2), имеет следующий вид:
A
IF B THEN E ELSE D
G
Программа (1) выполняется в общем-то беспорядочно, скачками, в то время как программа (2) выполняется последовательно. Программу (1) трудно прочесть и понять в отличие от программы (2), которая является предельно ясной и характеризуется меньшей вероятностью ошибок.
Нисходящее программирование. По существу, имеется два спо-
соба составления программ: снизу вверх и сверху вниз. Классическим способом составления больших программ является движение снизу вверх. При таком подходе руководитель группы программистов рассматривает проект в целом, формулирует цели системы, а затем определяет элементы, необходимые для системы программного обеспечения. Задаются средства сопряжения, и отдельные части программы распределяются между программистами. Каждый
453
программист отвечает за проверку своей подсистемы или модуля до момента объединения последних в единую систему. Интеграция модулей в систему выполняется последовательно по уровням.
Однако более надежное программное обеспечение позволяет получить нисходящее программирование. В этом случае руководитель группы программистов не только осуществляет контроль за работой, но и участвует в составлении программы. Вначале составляется основная часть программы с учетом подсистем следующего уровня. Затем эти подсистемы разрабатываются аналогичным образом.
Модульное конструирование программ. Обычно при составле-
нии программы ее разбивают на отдельные модули, так что каждый из них может использоваться во многих других. Однако при этом увеличивается вероятность возникновения всякого рода недоразумений и ошибок. Этот источник ошибок можно свести к минимуму, если вход в каждый модуль будет осуществляться только в его начало (сверху), а выход – только в его конце (снизу).
Контрольные вопросы к главе 9
1.Перечислите критерии надежности информационных систем.
2.Дайте определение функции готовности.
3.Что понимается под качеством ПО?
4.Что такое отказ программы?
5.Привести характеристики надежности ПО.
6.Описать модель Шумана.
7.Описать модель Нельсона.
8.Виды резервирования ПО.
9.Охарактеризовать структурное программирование.
454
Список литературы
1. Александровская Л. Н. Современные методы обеспечения безотказности сложных технических систем / Л. Н. Александров-
ская. – М.: Логос, 2001. – 524 с.
2. Андреев А. Н. Надежность радиоэлектронных средств /
А. Н. Андреев. – М.: Логос, 2001. – 315 с.
3.Балакирев В. С. Надежность технических и программных средств автоматизации: учебное пособие / В. С. Балакирев., В. Я. Ба-- деников. – Ангарск: АТИ, 1994. – 64 с.
4.Биргер И. А. Техническая диагностика / И. А. Биргер. − М.: Машиностроение, 1978. – 240 с.
5.Бочкарев С. В. Диагностика и надежность автоматизированных систем: учебное пособие / С. В. Бочкарев, А. И. Цаплин. – Пермь: Изд-во ПГТУ, 2006. – 262 с.
6.Гнеденко Б. В. Математические методы в теории надежности / Б. В. Гнеденко, Ю. К. Беляев, А. Д. Соловьев. – М.: Наука, 1965. – 524 с.
7.ГОСТ 20911–89. Техническая диагностика. Термины и определения. – Введ. 1991–01–01. − М.: Изд-во стандартов, 1990. – 13 с.
8.ГОСТ 27518–87. Диагностирование изделий. Общие требо-
вания. – Введ. 1989–01–01. − М.: Изд-во стандартов, 1987. – 13 с.
9.ГОСТ 27002–89. Надежность в технике. Основные понятия. Термины и определения. – Введ. 1991–07–01. − М.: Изд-во стандар-
тов, 1989. – 37 с.
10.Давыдов П. С. Техническая диагностика радиоэлектронных устройств и систем / П. С. Давыдов. − М.: Радио и связь, 1988. – 256 с.
11.Деев В. С. Основы проверок и построения систем контроля сложных объектов. Ч. 2. Техническая диагностика сложных объек-
тов / В. С. Деев. – М.: МО СССР, 1984. – 100 с.
12.Диллон Б. Инженерные методы обеспечения надежности систем / Б. Диллон, Ч. Сингх. – М.: Мир, 1984. – 318 с.
13.Дружинин Г. В. Надежность автоматизированных систем / Г. В. Дружинин.– М.: Энергия, 1977. – 536 с.
14.Дружинин Г. В. Надежность автоматизированных производственных систем / Г. В. Дружинин. – М.: Энергоатомиздат, 1986. – 480 с.
15.Животкевич И. Н. Надежность технических систем: учебное пособие / И. Н. Животкевич, А. П. Смирнов. – М.: Олита, 2003. – 473 с.
455
16.Зорин В. В. Надежность систем электроснабжения / В. В. Зорин и др. – Киев: Вища школа, 1984. – 192 с.
17.Калявин В. П. Надежность и диагностика электроустановок / В. П. Калявин, Л. М. Рыбаков. – Йошкар-Ола: МарГУ, 2000. – 348 с.
18.Капур К. Надежность и проектирование систем / К. Капур,
Л. Ламберсон. – М.: Мир, 1980. – 604 с.
19.Кузьмин Ф. И. Задачи обеспечения надежности технических систем /Ф. И. Кузьмин. – М.: Радио и связь, 1982. – 1176 с.
20.Козлов Б. А. Справочник по расчету надежности аппаратуры радиоэлектроники / Б. А. Козлов, И. А. Ушаков. – М.: Советское радио, 1975. – 475 с.
21.Липаев В. В. Надежность программных средств. Информатизация России на пороге ХХI века / В. В. Липаев. – М.: СИНТЕГ, 1998. – 232 с.
22.Липаев В. В. Выбор и оценивание характеристик качества программных средств. Методы и стандарты. Информационные технологии / В. В. Липаев. – М.: СИНТЕГ, 2001. – 228 с.
23.Майоров А. В. Планирование и проведение ускоренных ис-
пытаний на надежность устройств электронной автоматики / А. В. Майоров, Н. П. Потюков. – М.: Радио и связь, 1982. – 144 с.
24.Назин В. И. Техническая диагностика сложных объектов /
В. И. Назин. – М.: МО РФ, 1995. – 191 с.
25.Острейковский В. А. Теория надежности: учебник для вузов / В. А. Острейковский. – М.: Высшая школа, 2003. – 463 с.
26.Половко А. М. Основы теории надежности / А. М. Половко, С. В. Гуров. – СПб.: БХВ-Петербург, 2006. – 704 с.
27.Половко А. М. Основы теории надежности: практикум / А. М. Половко, С. В. Гуров. – СПб.: БХВ-Петербург, 2006. – 560 с.
28.Синопальников В. А. Надежность и диагностика технологических систем: учебник / В. А. Синопальников, С. Н. Григорьев. – М.: Высшая школа, 2005. – 343 с.
29.Сотсков Б. С. Основы теории и расчета надежности элементов и устройств автоматики и вычислительной техники / Б. С. Сотсков. – М.: Высшая школа, 1970. – 270 с.
30.Тейер Т. Надежность программного обеспечения / Т. Тейер, М. Липов, Э. Нельсон. – М.: Мир, 1981. – 323 с.
456
31. Труханов В. М. Надежность в технике / В. М. Труханов. – М.: Машиностроение, 1999. – 598 с.
32. Тюрин С. Ф. Системы контроля технического состояния и диагностирования ракетных комплексов. Ч.1. Техническая диагностика / С. Ф. Тюрин. – Пермь: ПВВКИУ, 1995. – 185 с.
33.Ярлыков Н. Е. Повышение эффективности контроля надежности / Н. Е. Ярлыков. – М.: Логос, 2003. – 152 с.
34.Ястребенецкий М. А. Надежность автоматизированных систем управления технологическими процессами: учебное пособие для вузов / М. А. Ястребенецкий, Г. М. Иванова. – М.: Энерго-
атомиздат, 1989. – 264 с.
457

Приложение 1
Таблица П1
Квантили распределения Стьюдента tα(N–1)
Число |
|
|
|
|
Вероятность Р |
|
|
|
|
||
степеней |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
свободы |
0,6 |
0,7 |
0,8 |
0,9 |
0,95 |
0,975 |
|
0,990 |
0,995 |
0,999 |
0,9995 |
f |
|
|
|
|
|
|
|
|
|
|
|
1 |
0,325 |
0,727 |
1,376 |
3,078 |
6,314 |
12,71 |
|
31,82 |
63,66 |
318,3 |
636,6 |
2 |
,289 |
,617 |
,061 |
1,886 |
2,920 |
4,303 |
|
6,965 |
9,925 |
22,330 |
31,600 |
3 |
,277 |
,584 |
,978 |
1,638 |
2,353 |
3,182 |
|
4,541 |
5,841 |
10,220 |
12,940 |
4 |
271 |
,560 |
,941 |
1,533 |
2,132 |
2,776 |
|
3,747 |
4,604 |
7,173 |
8,610 |
5 |
,267 |
,559 |
,920 |
1,476 |
2,015 |
2,571 |
|
3,365 |
4,032 |
5,893 |
6,859 |
6 |
,265 |
,553 |
,906 |
1,440 |
1,943 |
2,447 |
|
3,143 |
3,707 |
5,808 |
5,959 |
7 |
,263 |
,519 |
,896 |
1,415 |
1,895 |
2,365 |
|
2,998 |
3,490 |
4,785 |
5,405 |
8 |
,262 |
,546 |
,889 |
1,397 |
1,860 |
2,306 |
|
2,896 |
3,335 |
4,501 |
5,041 |
9 |
,261 |
,543 |
,883 |
1,383 |
1,833 |
2,262 |
|
2,821 |
3,250 |
4,297 |
4,781 |
10 |
,260 |
,542 |
,879 |
1,372 |
1,812 |
2,228 |
|
2,761 |
3,160 |
4,144 |
4,587 |
11 |
260 |
,540 |
,876 |
1,363 |
1,796 |
2,201 |
|
2,718 |
3,106 |
4,025 |
4,437 |
12 |
,259 |
,539 |
,873 |
1,356 |
1,782 |
2,170 |
|
2,681 |
3,055 |
3,390 |
4,318 |
13 |
259 |
,538 |
,870 |
1,350 |
1,771 |
2,160 |
|
2,650 |
3,012 |
3,852 |
4,221 |
14 |
,258 |
,537 |
,868 |
1,345 |
1,761 |
2,145 |
|
2,621 |
2,977 |
3,787 |
4,140 |
15 |
,258 |
,536 |
,866 |
1,341 |
1,753 |
2,131 |
|
2,602 |
2,947 |
3,733 |
4,073 |
16 |
,258 |
,535 |
,865 |
1,337 |
1,746 |
1,120 |
|
2,583 |
2,921 |
3,686 |
4,015 |
17 |
,257 |
,534 |
,863 |
1,333 |
1,740 |
2,110 |
|
2,567 |
2,898 |
3,646 |
3,985 |
18 |
,257 |
,534 |
,862 |
1,330 |
1,734 |
2,101 |
|
2,552 |
2,878 |
3,611 |
3,965 |
19 |
,257 |
,533 |
,861 |
1,328 |
1,729 |
2,003 |
|
2,539 |
2,861 |
3,579 |
3,883 |
20 |
,257 |
,533 |
,860 |
1,325 |
1,725 |
2,086 |
|
2,528 |
2,845 |
3,552 |
3,850 |
21 |
,257 |
,532 |
,859 |
1,323 |
1,721 |
2,080 |
|
2,518 |
2,831 |
3,527 |
3,819 |
22 |
,256 |
,532 |
,858 |
1,321 |
1,717 |
2,074 |
|
2,508 |
2,819 |
3,505 |
3,792 |
23 |
,256 |
,532 |
,858 |
1,319 |
1,714 |
2,069 |
|
2,500 |
2,807 |
3,485 |
3,767 |
24 |
,256 |
,531 |
,857 |
1,318 |
1,711 |
2,064 |
|
2,492 |
2,797 |
3,467 |
3,745 |
25 |
,256 |
,531 |
,856 |
1,316 |
1,708 |
2,060 |
|
2,485 |
2,787 |
3,450 |
3,725 |
26 |
,256 |
,531 |
,856 |
1,315 |
1,706 |
2,056 |
|
2,479 |
2,779 |
3,435 |
3,707 |
27 |
,256 |
,531 |
,855 |
1,314 |
1,703 |
2,052 |
|
2,473 |
2,771 |
3,421 |
3,690 |
28 |
,256 |
,530 |
,855 |
1,313 |
1,701 |
2,018 |
|
2,467 |
2,763 |
3,408 |
3,674 |
29 |
,256 |
,530 |
,854 |
1,311 |
1,699 |
2,045 |
|
2,462 |
2,756 |
3,396 |
3,659 |
30 |
,256 |
,530 |
,854 |
1,310 |
1,697 |
2,042 |
|
2,457 |
2,750 |
3,385 |
3,646 |
40 |
,255 |
,529 |
,851 |
1,303 |
1,684 |
2,021 |
|
2,423 |
2,704 |
3,307 |
3,551 |
50 |
,255 |
,528 |
,849 |
1,208 |
1,676 |
2,002 |
|
2,403 |
2,678 |
3,262 |
3,495 |
60 |
,254 |
,527 |
,848 |
1,296 |
1,671 |
2,000 |
|
2,390 |
2,660 |
3,232 |
3,460 |
80 |
,254 |
,527 |
,846 |
1,292 |
1,664 |
1,990 |
|
2,374 |
2,639 |
3,195 |
3,415 |
100 |
,254 |
,526 |
,845 |
1,290 |
1,660 |
1,984 |
|
2,365 |
2,626 |
3,174 |
3,389 |
200 |
,254 |
,525 |
,843 |
1,286 |
1,653 |
1,972 |
|
2,345 |
2,601 |
3,131 |
3,339 |
500 |
,253 |
,525 |
,842 |
1,283 |
1,648 |
1,965 |
|
2,334 |
2,586 |
3,106 |
3,310 |
∞ |
,253 |
,524 |
,842 |
1,282 |
1,645 |
1,960 |
|
2,326 |
2,576 |
3,090 |
3,291 |
|
|
|
|
|
|
|
|
|
|
|
|
α1 |
0,2 |
0,4 |
0,6 |
0,8 |
0,9 |
0,95 |
|
0,98 |
0,99 |
0,998 |
0,999 |
β1,% |
40 |
30 |
20 |
10 |
5 |
2,5 |
|
1 |
0,5 |
0,1 |
0,05 |
β2,% |
80 |
60 |
40 |
20 |
10 |
5 |
|
2 |
1 |
0,2 |
0,1 |
458

459

460