Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Эксплуатация СВТ / ЛекЭСВТ_Ч1нов.doc
Скачиваний:
161
Добавлен:
02.06.2015
Размер:
886.78 Кб
Скачать

Надежность программного обеспечения

ПОНЯТИЕ ОТКАЗА ПРОГРАММЫ

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

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

  • либо разработчиком програм­мы допущено нарушение спецификациитехнических требований к программе;

  • либо спецификация неточная или неполная.

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

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

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

Например, легко подсчитать, что если входами для программы являются 10переменных, каждая из которых может приобретать 103 различных значений, то число возможных входных комбинаций будет 1030.Если допустить, что проверка реакции программы на каждую из входных комбинаций занимает только одну микросекунду, то в году возможно приблизительно только 31013 проверок (!)(2,5 года).Поэтому естественно, что в разработанной программе всегда мо­гут встречаться непроверенные сочетания исходных дан­ных, при поступлении которых в ходе эксплуатации про­грамма может отказать в выполнении нужных функций.

Поскольку не всегда возможно составлять точную спецификацию, предлагается классифицировать программы по степени точности специфи­кации следующим образом:

1)программы, функции которых полностью определя­ются спецификацией;

2)программы, функции которых корректируются со­поставлением вычислительных и измеренных результатов (сюда относятся моделирующие программы, т.е. про­граммы, реализующие математическую модель физичес­кого объекта);

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

Надежность программы определяется ее безотказностью и восстанавливаемостью.

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

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

  • Корректность программыэто ее соответствие спецификации. Поскольку спецификация не всегда и не пол­ностью соответствует фактическим требованиям к про­грамме, возможны случаи, когда некорректная программа работает надежно или, наоборот, корректная программа—ненадежно.

  • Восстанавливаемость программы определяется затратами времени и труда на устранение ошибок в программе и их последствий.

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

  • в корректировке и восстановлении текста программы;

  • в исправлении входных данных и данных, полученных в результате неправильного функционировании программы;

  • при внесении изменений в организацию вычислительных процессов;

  • изменений алгоритма работы программы и т.д.

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

  1. от сложности структуры комплекса программ;

  2. используемого языка и технологий программирования;

  3. стиля программирования;

  4. квалификации программиста;

  5. качества сопроводительной документации на программу и т.д.

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

Пример устранения скрытой ошибки в программе. Пусть прог­рамма предназначена для вычисления функции у=(а sin x)/x+b при x /2.

Если ошибкой является, например, наличие в формуле знака минус вместо знака плюс, то такая ошибка проявляется сразу, при любых вычислениях, за исключением случая, когда b=0. Однако программа будет содержать и скрытую ошибку в виде неопределен­ности при х=0, которая при числовых вычислениях проявляется как большая погрешность вычислений при x , где некоторое малое число.

Правильная программа должна быть составлена по выражению:

sin x)/x+b при < x /2

y = a + b при x

Сравним интенсивности отказов в зависимости от времени эксплуатации аппаратных средств и программ.

Из графика видно, что-характеристика на начальном периоде эксплуатации имеет большое значение (t<t1 ) и называется периодом приработки аппаратуры, на котором в первую очередь выходят из строя элементы с заводским браком. Периодt1-t2 называется периодом нормальной работы, который характеризуется приблизительно одинаковой интенсивностью отказов элементов, а приt>t2 наступает период старения элементов и число отказов возрастает вследствие отклонения параметров элементов от номинальных.

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

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

- элементы программного обеспечения не стареют из-за износа или усталости;

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

- в программном обеспечении имеется намного больше объектов для контроля, чем в аппаратуре;

- в аппаратуре использование стандартных элементов распространено намного шире, чем в системе програм­много обеспечения;

- количество документации по программному обеспече­нию огромное по сравнению с количеством документации по аппаратуре;

- внести изменения в программы просто, но трудно де­лать это корректно.

Классификация ошибок программирования.Анализ ошибок программирования основан на их классифика­ции.

Ошибки программ могут быть разделены:

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

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

  • ошибки, скрытые в самой программе;

  • искажения входной информации:

  • при вводе с клавиатуры;

  • при вводе с первичных носителей;

  • из-за ошибок в документации (инструкции оператора);

  • неверные действия оператора, связанные с неправильной интерпретацией сообщений и неправильными действиями оператора в процессе диалога;

  • сбои в работе аппаратуры, на которой реализуется вычислительный процесс.

В настоящее время имеется представительная стати­стика об ошибках программного обеспечения и их при­чинах. Процентные частоты появления ошибок раз­личного типа по данным из литературных источников приведены в таблице 6.1. Наиболее часто встречающиеся ошибки— это ошибки техни­ческого задания к программе— могут быть, в свою оче­редь, разделены на категории, приведенные в таблице 6.2.

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

Таблица 6.1 – Типовые причины отказов в программе

Причина ошибки

Частота появления, %

Неполное или ошибочное задание

Отклонение от задания

Пренебрежение правилами программирования

Ошибочная выборка данных

Ошибочная логика или последовательность операций

Ошибочные арифметические операции

Нехватка времени для решения

Неправильная обработка прерываний

Неправильные постоянные или исходные данные

Неточная запись

28 12 10 10 12 9 4 4 3 8

Таблица 6.2 – Типы ошибок в ТЗ

Причина ошибки

Частота появления, %

Ошибки в числовых значениях

Недостаточные требования к точности

Ошибочные символы или знаки

Ошибки оформления

Неправильное описание аппаратуры

Основы разработки неполные или неточные

Двусмысленность требований

12

4

2

15

2

52

13

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

Соседние файлы в папке Эксплуатация СВТ