Надежность ПО – свойство составляющих его программ выполнять заданные функции в заданных условиях на конкретном КТС.
Две основные причины возникновения отказов ПО:
1. Разработчики ПО нарушили технические требования к программам (нарушены спецификации).
2. Сами спецификации неточные или неполные, т. е. само описание того, что должна делать каждая программа, без указания как она должна это делать – неточное или неполное.
Отличия надежности ПО от надежности КТС.
– элементы ПО не стареют от износа;
– число способов контроля ПО значительно больше, чем способов контроля аппаратуры;
– в ПО гораздо больше объектов для контроля, чем в аппаратуре;
– в ПО гораздо проще вносить изменения, чем в аппаратуру, но это трудно делать корректно и безошибочно.
Рассмотрение ПО как программного продукта приводит к понятию жизненного цикла ПО (ЖЦПО), в котором можно выделить 6 основных этапов.
1. Анализ требований к системе, для которой разрабатывается ПО.
2. Определение спецификаций.
3. Проектирование алгоритмов.
4. Собственно программирование (кодирование).
5. Тестирование (автономное и комплексное).
6. Эксплуатация и сопровождение.
На всех этапах ЖЦПО могут возникать ошибки в ПО, которые снижают его надежность.
Основные показатели надежности ПО:
1. Программная ошибка идентифицируется пользователем, если
– при программировании появляется ошибочный операнд или операция;
– возникает несоответствие выполняемых функций ПО требованиям спецификаций;
– имеет место ошибка в спецификации, требующая исправления ПО;
– возникает ошибка при вычислениях;
– нарушается взаимодействие пользователя с программным обеспечением.
Приведенный перечень является открытым, т. е. разработчики ПО по мере накопления опыта в повышении надежности программ должны его пополнять.
2. Число оставшихся (переданных) ошибок – потенциальное число ошибок в ПО, которое может быть обнаружено на последующих этапах ЖЦПО, после исправлений, внесенных на данном этапе – B.