Надежность ПО – это вероятность безотказной работы в заданных условиям в течении определенного времени.
Ошибки в программном обеспечении возникают при разработке ПО, а также при эксплуатации, которые обусловлены ошибками в аппаратной части.
При проектировании ПО решается 2 задачи:
- Выявление и исключение ошибок на этапе разработки ПО.
- Проектирование отказоустойчивого ПО, которая выявляет ошибки программы за счет ошибок аппаратной части и восстанавливает нормальное состояние ПО.
Критерии оценки ПО:
- Функциональные. То есть соответствие ПО с поставленной задачей.
- Конструктивные характеристики, которые полностью характеризуют ПО. Сюда относят: сложность, надежность, используемые ресурсы и корректность.
Сложность бывает:
логическая – определяется числом операторов,
сложность взаимосвязи – число интерфейсов в программном модуле,
сложность вычислений – сложность математических вычислений,
сложность ввода вывода – что нужно вводить и что нужно выводить.
корректность – это правильность ПО с поставленной задачей. Некорректность – это некорректность текста программ, программных модулей и структур данных (90% ошибки ПО!!!).
Ошибки бывают: первичные, вторичные.
Первичные – синтаксические, алгоритмические, ошибки сопряжения, а также системные. Т.е. неправильное использование ресурсов.
Вторичные ошибки – искажение выходных результатов за счет не выявленных первичных ошибок. Поэтому 1/3 времени – это проектировании. 1/6 – это разработка ПО, 1/4 – это отладка модулей. 1/4 – это комплексная отладка всего ПО.