Объединение показателей надежности

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

В данном учебном пособии мы будем поступать следующим обра­зом. Надежность ПО зависит как собственно от надежности про­граммы, так и от надежности носителя программы, например, ОЗУ или ПЗУ. На­дежность носителя учитывается при расчете аппаратной части.

В качестве примера рассмотрим типовой передающий полукомплект системы телемеханики (тракт телеизмерений – ТИ), структура которого приведена на рис. 3.8.

 
  Объединение показателей надежности - student2.ru

Рис. 3.8. Структурная схема передающего полукомплекта системы телемеханики

Для расчета воспользуемся методикой, приведенной в подразд. 2.3.2 и подразд. 2.3.5. Система состоит из датчиков (N = 10), подсистемы сбора информации (ПСИ) и подсистемы передачи информации (ППИ). Никакой избыточности с точки зрения надежности (резервирования, встроенных схем контроля) в системе нет.

Предположим, что датчики не интеллектуальные, т.е. не содержат встроенных программных средств. Пусть датчики однотипные и имеют одинаковые интенсивности отказов λд = 4,5·10–5 1/ч и интенсивности вос­становления μд = 2 1/ч.

ПСИ и ППИ реализованы с использованием промышленных кон­троллеров, т.е. наряду с аппаратной частью в них «зашито» программное обеспечение. Надежность носителей ПО (ОЗУ, ПЗУ и т.д.) учтена при оп­ределении надежностных характеристик аппаратной части. Примем, что интенсивность отказов аппаратуры ПСИ λап_пси = 10–7 1/ч, интенсивность восстановления аппаратуры ПСИ μап пси = 0,4 1/ч, λап_ппи, интенсивность от­казов аппаратуры ППИ λап_ппи = 10–7 1/ч, интенсивность восстановления аппаратуры ППИ μап ппи = 0,7 1/ч.

Для ПСИ и ППИ дополнительно выделим надежностные характери­стики программной составляющей – λпрг_пси, μпрг пси, λпрг_ппи, μпрг ппи. Опреде­лим значения надежностных характеристик программной составляющей, используя самую простую статистическую модель надежности ПО (под­разд. 3.4.4).

Пусть число операторов в ПО ПСИ – 2500. Тогда, учитывая, что на 1000 операторов приходится 10 оставшихся в программе ошибок, в ПО ПСИ осталось 25 ошибок, приводящих к отказу системы. Если интенсив­ность отказов из-за одной ошибки – 10–4 1/ч, то λпрг_пси = 2,5·10–3 1/ч.

Пусть число операторов в ПО ППИ – 3050. Тогда в ПО ППИ оста­лась 31 ошибка (округлим до ближайшего большего). Следовательно, λпрг_ппи = 3,1·10–3 1/ч.

После отказа системы вследствие ошибки в ПО следует предпринять несколько шагов. Во-первых, определить по симптомам место ошибки. Во-вторых, исправить эту ошибку. И, наконец, загрузить в контроллер ис­правленную версию ПО. Предположим, что в среднем на указанные шаги и для ПСИ, и для ППИ требуется 5 часов. Тогда интенсивность восстанов­лений μпрг пси = μпрг ппи = 0,2 1/ч. Для приблизительных расчетов надежно­сти ПО (а принятая модель надежности ПО позволяет провести только при­близительный расчет) пересчитывать интенсивность отказов блока, в кото­ром была исправлена ошибка (и, следовательно, общее количество ошибок уменьшилось на единицу), нет смысла.

Определив надежностные характеристики блоков, составим усечен­ный граф переходов передающего полукомплекта (рис. 3.9).

Состояние 0 – все элементы исправны.

Состояние 1 – неисправен один из N датчиков.

Состояние 2 – неисправна аппаратная часть ПСИ.

Состояние 3 – неисправна программная часть ПСИ.

Состояние 4 – неисправна аппаратная часть ППИ.

Состояние 5 – неисправна программная часть ППИ.

Объединение показателей надежности - student2.ru
Рис. 3.9. Усеченный граф переходов для передающего полукомплекта

Составим по графу систему уравнений:

Объединение показателей надежности - student2.ru

Решив ее относительно P(0) (поскольку только в этом состоянии система работоспособна), мы найдем значение комплексного коэффици­ента готовности, учитывающего как надежность аппаратного, так и надеж­ность программного обеспечения системы передающего полукомплекта:

Kг = P(0) = 0,738.

Выводы

В данной главе были рассмотрены вопросы, касающиеся построе­ния надежного ПО. Было показано, что определение надежности, введен­ное для аппаратного обеспечения, с некоторыми оговорками применимо и для ПО, сформулированы понятия ошибки в ПО и отказа ПО.

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

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

Тестирование разработанного ПО также представляет собой слож­ную проблему. Поход к программе как к «черному ящику» (структура про­граммы неизвестна) требует в качестве теста использовать все возможные комбинации входных данных, что нереально из-за их бесконечного коли­чества. Подход к программе как к «белому ящику» (структура программы известна) позволяет сократить количество тестовых наборов, но не дает гарантии, что будут обнаружены все ошибки. На практике рекомендуется творческое сочетание обоих методов.

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

Вопросы и задания

1. Сформулируйте понятие отказа в программном обеспечении.

2. Приведите примеры синтаксических ошибок и семантических оши­бок.

3. Кратко охарактеризуйте модель происхождения ошибок в ПО.

4. Какие принципы и методы относятся к группе «предупреждение ошибок»?

5. Какие принципы и методы относятся к группе «обеспечение устой­чивости к ошибкам»?

6. Перечислите и дайте краткую характеристику основным этапам проектирования ПО.

7. В чем состоит правило проверки «n плюс-минус один»?

8. В чем состоит разница между целями продукта и проекта?

9. Сформулируйте цели этапа внешнего проектирования.

10. Какие вы можете привести разновидности прочности модулей?

11. Приведите пример модулей, сцепленных по данным.

12. В чем заключается принцип пассивного обнаружения ошибок, на­зываемый «взаимное недоверие»?

13. Какие сведения должны содержать внешние спецификации мо­дуля?

14. В чем достоинства метода пошаговой детализации создания про­граммных модулей по сравнению с методом блок-схем?

15. Чем эффективность отличается от «микроэффективности»?

16. Будет ли 2,0·2,0 в цифровой вычислительной машине равно 4,0?

17. Сравните технологию тестирования программы как «черного ящика» с технологией тестирования программы как «белого ящика».

18. В чем заключается модель роста надежности ПО?

19. Как на практике воспользоваться методом накопления стати­стики?

20. Вычислите значение комплексного коэффициента готовности для примера из подразд. 3.4.5, предположив, что подсистема передачи ин­формации реализована аппаратно и не имеет программной составляющей.

Список литературы

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

2. Тейер Т., Ли­лов М., Нельсон Э. Надежность программного обеспе­чения. – М.: Мир, 1981. – 323 с.

3. Надежность функционирования программного обеспе­чения / С.И. Баглюк [и др.]. – СПб.: Логос, 1991. – 78 c.

4. Крылов Е.В., Острейковский В.А., Типикин Н.Г. Техника разра­ботки программ: в 2 кн. Кн. 2. Техно­логия, надежность и качество про­граммного обеспечения. – М.: Высшая школа, 2008. – 469 с.

5. Кнут Д. Искусство программирования для ЭВМ. Т. 1. Основные ал­горитмы. – М.: Мир, 1976. – 627 с.

6. Майерс Г. Искусство тестирования программ. – М.: Фи­нансы и ста­тистика, 1982. – 176 с.

7. Jelinski Z., Moranda P.B. Software Reliability Research, in W. Freiberg, Ed., Statistical Computer Performance Evalution. New York: Aca­demic Press, 1972. – Pp. 465–484. (329)

8. Shooman M. L. Probabilistic Models for Software Reliability Predic­tion, in W. Freiberger, Ed., Statistical Computer Performance Evalution. – New York: Academic Press, 1972. – Pp. 485–502. (329)

9. Littlwood B., Verrall J.L. A Bayesian Reliability Growth Model for Computer Software, Record of the 1973 IEEE Symposium on Computer Soft­ware Reliability. – New York: IEEE, 1973. – Pp. 70–77.(329)

10. Schneidewind N.F. Analyses of Error Processes in Computer Soft­ware, Proceedings of the 1975 International Conference on Reliable Software. –New York: IEEE, 1975. – Pp. 337–346. (329)

11. Shooman M.L. Operational Testing and Software Reliability Estima­tion during Program Development, Record of the 1973 IEEE Symposium on Computer Software Reliability. – New York: IEEE, 1973. – Pp. 51–57. (329)

12. Schneidewind N.F. An Approach to Software Reliability Prediction and Quality Control, Proceedings of the 1972 Fall Joint Computer Conference. Montvale. – N. J.: AFIPS Press, 1972. – Pp. 837–847. (329)

13. Mills H.D. On the Statistical Validation jf Computer Programs, FSC-72-6015, IBM Federal System Div., Gaithersburg, Vd., 1972.

14. Richards F.R. Computer Software: Testing, Reliability, Models, and Quality Assurance, NPS-55RH74071A, Naval Postgraduate School, Monterey, Ca., 1974. (329)

Наши рекомендации