Что подразумевается под программой?
Во-первых, программа, так же, как и аппаратура, не существует изолированно, всегда имеется некоторая «окружающая среда», которая влияет на ее функционирование. Роль окружающей среды для программ исполняют другие программы – например, драйверы, сетевые программы, программы пользовательского интерфейса, различные прикладные библиотеки и т.д. При изменении окружающей
среды (например, замене драйвера) надежность программы может ухудшиться, и вопрос о том, где источник ошибки, в программе или в среде, может оказаться нетривиальным.
Во-вторых, надежность зависит от режима эксплуатации. Любая (достаточно сложная) программа допускает очень большое число комбинаций входных данных, из которого на практике используется ограниченное подмножество, причем для разных пользователей (или групп пользователей) эти подмножества различны. При одних входных данных программа отказывает чаще, чем при других, и этот факт формулируется как изменение режима эксплуатации. Режим эксплуатации характеризуется частотой обращения к программе (вызов и/или ввод данных), временем работы программы, квалификацией пользователей, статистическим распределением вероятности (частот) разных областей исходных данных, организационной схемой и реализацией процедур получения исходных данных, использования выхода программы, проверки исходных и выходных данных программы, анализа результатов работы.
Наконец, обязательный атрибут современной программы – документация. В руководствах описывается, в частности, в какой программной среде должна функционировать программа, и какие комбинации входных данных недопустимы.
Таким образом, говоря о надежности, имеют в виду следующий кортеж: «исходный текст программы, окружение, режим эксплуатации, руководства». Надежность характеризует не саму программу, а этот кортеж.
Исправления кортежа. Среда реализации, режим эксплуатации, инструкции могут меняться без изменения программы.
а) Изменения программы считаются переходом к новому кортежу, поскольку аннулируют весь прошлый опыт эксплуатации – возникает кортеж новой программы.
б) Изменение среды сопровождается коррекцией в инструкции в той части, где существенны специальные свойства среды реализации.
в) Изменение режима эксплуатации должно фиксироваться в протоколе эксплуатации. Есть два подхода к накопленной статистике: отдельно по каждому режиму или общая выборка.
г) Основной тип правки кортежа: внесение изменений и добавлений в инструкцию для устранения ошибок и сбоев, обходов трудностей, изменений в составе задач.
д) Пока не внесена правка в исходный текст программы (не считая оболочки, обеспечивающей связь со средой), статистика сбоев считается непрерывной для кортежа. Протокол эксплуатации считается непрерывным с регистрацией всех поправок кортежа.
е) Любое изменение в программе требует начать новый протокол для нового полученного кортежа.
ж) Протокол не входит в кортеж, а входит в «статистику эксплуатации». Кроме того, статистика включает любые расчетные характеристики, основанные на протоколе и технических данных среды эксплуатации. У разных пользователей возможны существенно различные протоколы для одинаковых кортежей. Соответственно, они могут получить разные характеристики надежности этого кортежа. Тем не менее, рекомендуется ориентироваться только на свой протокол, поскольку возможны незарегистрированные документально отличия в аппаратных средствах (например, степень износа различных устройств), в ОС и в режиме эксплуатации.
Обработка сбоев и ошибок в программе:
а) При обнаружении действия программы, не соответствующего ее назначению, регистрируется ошибка.
б) Предпочтительной является поправка кортежа путем изменения инструкции. Возможны варианты: изменения в инструкции оператора, изменения в инструкции подготовки данных (для пользователя), наложение ограничений на допустимые исходные данные, т.е. запрещение на использование программы в определенных ситуациях.
в) Если необходимая правка инструкции нежелательна, то можно попробовать менять операционную систему или трансляторы с соответствующим изменением инструкции.
г) Если реализация (б) недопустима (слишком жесткие требования к инструкции), а реализация (в) слишком дорога, то надо менять кортеж, т.е. заменять или корректировать саму программу.
д) Режим эксплуатации считается не подлежащим изменению – это технологическое требование инфраструктуры, в которой функционирует программа.