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

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 19:06, 5 декабря 2016.

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

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

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

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

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

Если эту величину определять как вероятность возникновения отказоустойчивой ситуации вследствие первичных ошибок в операторах, составляющих j-ю дугу, то можно интерпретировать как вероятность отсутствия отказоустойчивой ситуации при исполнении программы по i-му маршруту. Суммируя по всем маршрутам программного модуля, можно, в принципе, оценить вероятность возникновения отказоустойчивой ситуации при исполнении этого модуля. Кроме того, если учесть частоту и длительность исполнения каждого модуля в ПС, возможно рассчитать наработку на отказоустойчивую ситуацию. Объем таких вычислений велик и может быть реализован только специальной программой, автоматически анализирующей каждый оператор, определяющей его вероятностные характеристики и рекуррентно рассчитывающей характеристики модулей, групп программ и всего комплекса. Таким образом, создается впечатление, что имеется потенциальная возможность априорного итерационного расчета характеристик надежности ПС по показателям надежности их компонент.

Рассмотренный метод априорного расчета надежности сложного ПС является конструктивным, так как достоверность таких вычислений низка, особенно при практически интересных, достаточно высоких наработках на отказ (сотни и тысячи часов). В реальных ПС, когда достигнута некоторая, допустимая для применения, надежность их функционирования, отказоустойчивые ситуации возникают из-за редкого проявления отдельных не обнаруженных ошибок. Малое число таких ошибок приводит к большому разбросу их возможного положения и проявления в программе, которое зависит, в частности, от полноты и стратегии тестирования, от состава и характеристик исходных и накопленных данных, от особенностей структурного построения и методов проектирования программ и от ряда других трудно учитываемых факторов.

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

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

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

Литература

  1. Боэм Б.У. Инженерное проектирование программного обеспечения: Пер. с англ. /Под ред. А.А. Красилова. - М.:Радио и связь, 1985.
  2. Безопасность информации. Сб. материалов международной конференции. М.: Изд.РИА. 1997.
  3. Гантер Р. Методы управления проектированием программного обеспечения: Пер. с англ. /Под ред. Е.К. Масловского М.:Мир,1981.
  4. Герасименко В.А. Защита информации в автоматизированных системах обработки данных. Книга 1 и 2. М.: Энергоат-омиздат. 1994.
  5. Гласе Р. Руководство по надежному программированию: Пер. с англ. М.: Финансы и статистика, 1982.
  6. Гласе Р., Нуазо Р. Сопровождение программного обеспечения: Пер. с англ. /Под ред. Ю.А. Чернышева. - М.: Мир, 1983.
  7. Евстигнеев В.А. Применение теории графов в программировании. М.:Наука, 1985.
  8. Испытательные центры за рубежом.-М.: Изд. стандартов, 1989.
  9. Калянов Г.Н. CASE структурный системный анализ (автоматизация и применение). М.: Изд.ЛОРИ. 1996.
  10. Ю.Карповский Е.Я., Сагач В.В., ЧернецкийА.А. Надежность алгоритмов управления. К.: Техника, 1983.
  11. Костогрызов А.И., Липаев В.В. Сертификация качества функционирования автоматизированных информационных систем. М.: Изд. Вооружение. Политика. Конверсия. 1996.
  12. Котляров В.П. CASE-технология и возможности современных CASE-средств в поддержке этапов проектирования программного продукта // Системная информатика. Новосибирск. ВО "Наука". Сибирская издательская фирма. Вып 4.1995.
  13. Леман М.М. Программы, жизненные циклы и законы эволюции программного обеспечения //ТИИЭР. Техника программного обеспечения: Пер. с англ. - М.:Мир, 1980. -Т.68. - N 9. - С.26-45.
  14. Липаев В.В. Надежность программного обеспечения АСУ. -М.: Энергоиздат, 1981.
  15. Липаев В.В., Потапов А.И. Оценка затрат на разработку программных средств. - М.: Финансы и статистика, 1988.
  16. Липаев В.В. Отладка сложных программ. - М.:Энергоатом-издат, 1993.
  17. Липаев В.В. Программно-технологическая безопасность информационных систем. М.: Изд.МИФИ.1997.
  18. Липаев В.В., Филинов Е.Н. Мобильность программ и данных в открытых информационных системах. М.: РФФИ. 1997.
  19. Липаев В.В. Документирование и управление конфигурацией программных средств. М.: СИНТЕГ. 1998.
  20. Лонгботтом Р. Надежность вычислительных систем: Пер. с англ. /Под ред. П.П. Пархоменко. М.: Энергоатомиздат, 1985.
  21. Майерс Г. Надежность программного обеспечения: Пер. с англ. /Под ред. В.Ш. Кауфмана.М.:Мир, 1980.
  22. Майерс Г. Искусство тестирования программ: Пер. с англ.-М.:Финансы и статистика, 1982.
  23. Мобильность программного обеспечения: Пер. с англ. /Под ред. Д.Б. Подшивалова. - М.:Мир, 1980.
  24. Пальчун Б.П.,Юсупов P.M. Оценка надежности программного обеспечения. СПб.: Наука, 1994.
  25. Применение имитационного моделирования для динамической отладки и испытания комплексов программ управления / П.Г.Гаганов, А.Н.Зубковский, А.М.Крылов, А.Б.Козлов. //Управляющие системы и машины. 1984.N3.С.56-61.
  26. Савицкий В.И. Автоматизированные системы управления воздушным движением. Справочник. - М.: Транспорт, 1986.
  27. Сертификация продукции. Международные стандарты и руководства ИСО/МЭК в области сертификации и управления качеством. -М.:Изд-во стандартов, 1990.
  28. Тейер Т., Липов М., Нельсон Э. Надежность программного обеспечения. Пер. с англ. М.:Мир, 1981.
  29. Характеристики качества программного обеспечения /Б.Боэм, Дж.Браун, Х.Каспар и др./ Пер. с англ. Е.К. Масловского. -М.:Мир, 1981.
  30. Шаракшанэ А.С, Шахин В.П., Халецкий А.К. Испытания программ сложных автоматизированных систем. - М.:Высшая школа, 1982.
  31. Штрик А.А., Осовецкий Л.Г., Мессих И.Г. Структурное проектирование надежных программ встроенных ЭВМ. -Л.:Машиностроение, 1989.
  32. Шураков В.В. Надежность программного обеспечения систем обработки данных. М.:Статистика, 1981.
  33. Щербо В.К., Козлов В.А. Функциональные стандарты в открытых системах. Часть 1. Концепция открытых систем. М.: Изд. МЦНТИ. 1997.
  34. Юсупов P.M., Пальчун Б.П. Безопасность компьюторной инфосферы систем критических приложений. // Вооружение. Политика. Конверсия. 1993. N 2. С.52-56. N 3. С.23-31.
  35. Beizer В. Software testing techniques. N.Y.: Van Nostrand Reinhold. 1990.
  36. Buckle J.K. Software configuration management. - London: Macmillan Press, 1982.
  37. Charett R. Software engineering risk analysis and management.N.Y.: McGraw - Hill, 1989.
  38. DoD Software Reuse Initiative Vision and Strategy. DoD USA.July 15, 1992.
  39. Dunham J.R. Verification and validation in next decade //IEEE Software. - 1989. - May. - P.47-53.
  40. Fisher A.S. CASE: using the newest tools in software development. - N.Y.: John Wiley & Sons, 1988.
  41. Gilb T. Principles of software engineering management.Wokingham, England: Addison-Wesley, 1988.
  42. House D.E., Newman W.F. Testing large software products //ACM Sigsoft. Software engineering notes. 1989. v. 14. N2. p.71-78.
  43. Howden W.E. Functional program testing and analysis. N.Y.: McGraw-Hill, 1987.
  44. Kit E. Software Testing in the Real World - Improving the Process. Addison-Wesley. 1996.
  45. Levendel Y. Reliability analysis of large software systems: defect data modeling// IEEE transaction on SE. 1990. v.l6. N2. p 141-152.
  46. Littlewood B. ed. Software Reliability - Achievement and Assessment. London. Blackwell Scientific Publications. 1987.
  47. Martin J., McClure C. Software maintenance, the problems and its solutions. - N.Y.: Prentice-Hall, 1983.
  48. Musa J.D., lannino A., Okumoto K. Software ReHability: Measurement, Prediction, Application.N.Y. McGraw Hill, 1990.
  49. Ng P.A., Yeh R.T. ed. Modern software engineering. Foundations and current perspectives. - N.Y.: Van Nostrand Reinhold, 1990.
  50. Parnas D.L. Software aspects of strategic defence systems //Communications of the ACM. - 1985. - V.28, - N 12. - p. 1326-1335.
  51. Quarterman J.S., Wilhelm S. Unix, Posix and open systems: The open standards puzzle. N.Y., Addison - Wesley. 1993.
  52. Shooman M.L. Software Engineering: Reliability, Developmen and Management. N.Y. McGraw-Hill. 1983.
  53. Sommerville I. Software engineering. Addison - Wesley. Lancaster University. 1992.
  54. Vincent J., Waters A., Sinclair J. Software quality assurance. Vol. П. A programme guide. - Englewood Cliffs, New Yersey: Prentice-Hall, 1988.

См. также