Философия сбоев программного обеспечения

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

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

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

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

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

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