Способы определения характеристик надежности по

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

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

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

2. Показатели надежности программного обеспечения.

3. Причины отказов программного обеспечения, признаки появления ошибок.

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

Рекомендуемые файлы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2. искажения входной информации, подлежащей обработке;

3. неверные действия пользователя;

Читайте также:  Как называется способ содержания должностных лиц за счет местного населения

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

1. Скрытые ошибки программы являются главным фактором нарушения нормальных условий его функционирования;

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

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

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

· Ошибки ввода-вывода – связаны с такими действиями, как управление вводом-выводом, формирование выходных записей и определение размеров записей.

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

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

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

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

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

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

· искажения данных на первичных носителях информации;

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

· шумы и сбои в каналах связи при передачи сообщений по линиям связи и т.д.

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

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

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

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

· преждевременное окончание выполнения программы;

· недопустимое увеличение времени некоторой последовательности команд одной из программ;

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

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

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

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

Читайте также:  Промышленный способ получения пропана

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

1. усовершенствование технологии программирования;

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

3. резервирование программ – дуальное или N -версионное программирование, другие методы введения структурной избыточности;

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

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

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

· исходных данных, трансформированными в ходе вычислений:

· обусловленными отказами, сбоями и ошибками в программе.

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

1. Что понимается под надежностью программного обеспечения (ПО)?

2. Что такое корректность ПО?

3. От чего зависит восстанавливаемость ПО компьютера и КС?

4. Определите основные причины отказов ПО.

5. Какие существуют пути повышения надежности ПО компьютеров и КС?

6. Почему при мультипрограммной обработке информации используют принцип виртуальных машин?

7. Какой из способов обеспечения надежности программ считается более эффективным?

8. Что значит «усовершенствование технологии программирования»?

9. Дайте определение понятию «дуальное и N -версионное» программирование.

10. Как оценить вероятность безотказной работы программ?

11. Что означает термин «алгоритмическая избыточность»?

Источник

Модели качества и надежности в программной инженерии

К атрибутам функциональности относятся:

К подхарактеристикам надежности ПО относятся:

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

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

К факторам, влияющим на надежность ПО, относятся:

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

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

Надежность — одна из ключевых проблем современных программных систем, и ее роль будет постоянно возрастать, поскольку постоянно повышаются требования к качеству компьютерных систем. Новое направление — инженерия программной надежности ( Software reliability engineering) — ориентировано на количественное изучение операционного поведения компонентов системы по отношению к пользователю, ожидающему надежную работу системы [10.7], и включает:

  • измерение надежности, т.е. проведение ее количественной оценки с помощью предсказаний, сбора данных о поведении системы в процессе эксплуатации и современных моделей надежности;
  • стратегии и метрики конструирования и выбора готовых компонентов, процесс разработки компонентной системы, а также среда функционирования, влияющая на надежность работы системы;
  • применение современных методов инспектирования, верификации, валидации и тестирования при разработке систем, а также при эксплуатации.
Читайте также:  Cc brow краска для бровей способ применения

Верификация применяется для определения соответствия готового ПО установленным спецификациям, а валидация — для установления соответствия системы требованиям пользователя, которые были предъявлены заказчиком.

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

  • готовность к использованию (availability);
  • готовностью к непрерывному функционированию ( reliability );
  • безопасность для окружающей среды, т.е. способность системы не вызывать катастрофических последствий в случае отказа ( safety );
  • секретность и сохранность информации (сonfidential);
  • способность к сохранению системы и устойчивости к самопроизвольному ее изменению (integrity);
  • способность к эксплуатации ПО, простота выполнения операций обслуживания, а также устранения ошибок, восстановление системы после их устранения и т.п. ( maintainability );
  • готовность и сохранность информации (security) и др.

Достижение надежности системы обеспечивается предотвращением отказа (fault prevention), его устранением (removal fault), а также оценкой возможности появления новых отказов и мер борьбы с ними с применением методов теории вероятности.

Каждый программный компонент, его операции и данные обрабатываются в дискретные моменты времени, например, . Пусть за время после первого неудачно обработанного компонента системы появился отказ, — вероятность этой неудачи, тогда n\delta\> = (1 — q_)^< n>» style=»display: inline; «> и среднее время ожидания .

Положим, что момент времени убывает, а время остается фиксированным, тогда имеем t\> = (1 — \frac<\delta>)\frac <\delta>= e^<-\frac>» style=»display: inline; «>, время до отказа в данном случае — непрерывная величина , распределенная экспоненциально с параметром .

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

К подхарактеристиками удобства применения относятся:

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

К подхарактеристикам эффективности ПО относятся:

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

Cопровождаемость включает подхарактеристики:

Источник

Оцените статью
Разные способы