Основные понятия надежности программного обеспечения

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

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

 

 

 
 

 

 


Из рис. 11.1 можно сделать вывод: Надежность ТО определяется в основном случайными отказа­ми, а в основе ненадежности ПО лежат предопределен­ные ошибки. Кроме того, отказ оборудования не зависит от обрабатываемой информации.

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

Корректное ПО – это ПО удовлетворяющее своей спецификации.

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

· ошибки программирования оставляют возмож­ность правильного использования системы (например, неправильный вывод, который обнаруживается и исправляется пользователем);

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

С другой стороны, корректное ПО может быть нена­дежным. Это случается тогда, когда спецификация ПО не является полным описанием того, что ожи­дается от данного ПО.

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

Для решения задачи получения надежного ПО на этапе проектирования необходимо:

· при написании спецификаций для системы и каждого из ее модулей быть достаточно реалистич­ными при описании желаемого поведения в условиях, когда совершенное поведение недостижимо;

· в описании интерфейса между системой и окружаю­щей средой, а также интерфейса между модулями систе­мы необходимо предусматривать проверки корректности отработки заданий;

· включать в интерфейс взаимные проверки коррект­ности отработки заданий.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: