Лекция 13

Тема: Надежность программного обеспечения информационных систем

План

  1. Основные понятия и определения надежности программного обеспечения.
  2. Показатели надежности программного обеспечения.
  3. Причины отказов программного обеспечения, признаки появления ошибок.
  4. Способы обеспечения и повышения надежности программ.

Ключевые слова

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

Основные понятия надежности ПО

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

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

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

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

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

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

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

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

Механизм возникновения отказа аппаратуры и отказа ПО существенно отличаются друг от друга. Отказ аппаратуры обусловлен разрушением каких-либо элементов аппаратуры. Отказ ПО обусловлен несоответствием ПО поставленным задачам.

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

Корректность программы – ее соответствие спецификации.

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

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

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

Причины отказов программного обеспечения

Основными причинами непосредственно вызывающими нарушение нормального функционирования программы, являются [1, 2, 3, 10, 11]:

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

Можно выделить следующие основные ошибки в программе:

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

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

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

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

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

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

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

Признаки появления ошибок

Наиболее типичными симптомами появления ошибок в программе являются:

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

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

Они определены на следующие основные категории:

  1. Усовершенствование технологии программирования;
  2. Выбор алгоритмов, не чувствительных к различного рода нарушениям вычислительного процесса (использование алгоритмической избыточности);
  3. Резервирование программ – дуальное или N-версионное программирование, другие методы введения структурной избыточности;
  4. Контроль и тестирование программ с последующей коррекцией.

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

Результаты вычислений искажаются погрешностями:

  • исходных данных, трансформированными в ходе вычислений:
  • округления;
  • методическими;
  • обусловленными отказами, сбоями и ошибками в программе.

Контрольные вопросы и задания

  1. Что понимается под надежностью программного обеспечения (ПО)?
  2. Что такое корректность ПО?
  3. От чего зависит восстанавливаемость ПО компьютера и КС?
  4. Определите основные причины отказов ПО.
  5. Какие существуют пути повышения надежности ПО компьютеров и КС?
  6. Почему при мультипрограммной обработке информации используют принцип виртуальных машин?
  7. Какой из способов обеспечения надежности программ считается более эффективным?
  8. Что значит «усовершенствование технологии программирования»?
  9. Дайте определение понятию «дуальное и N-версионное» программирование.
  10. Как оценить вероятность безотказной работы программ?
  11. Что означает термин «алгоритмическая избыточность»?

 

Литература:

  1. Иыуду К.А. Надежность, контроль и диагностика вычислительных машин и систем. М: Высшая школа, 1989-216с
  2. Расулова С.С. Надежность вычислительных машин и систем. Учебное пособие, ТашГТУ, 1995-60с
  3. Расулова С.С Надежность ЭВС. Конспект лекций. ТашГТУ, 2001-90с
  4. Самопалов К.Г. и др. Цифровые ЭВМ. Практикум. Киев. Высшая школа. 1990-125с.
  5. Бройдо В.Л. Вычислительные системы, сети и телекоммуникации. 2 изд. Учебник. СПб.: «Питер», 2005. глава 20, -703 с.
  6. Степанов А.Н. Архитектура вычислительных систем и компьютерных сетей. Учебное пособие. – СПб.: Питер, 2007. -509 с.


Меню выбора лекций

Предыдущая лекция                   Следующая лекция