2009-03-18 2 views
3

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

Эта программа должна иметь 100% работоспособность без вмешательства администратора. Другими словами, это не должно терпеть неудачу на «глупых» ошибках. то есть кто-то удаляет выходной каталог, он должен просто воссоздать его и двигаться дальше.

Что я собираюсь сделать, это закодировать всю программу, а затем пройти и искать «точки ошибки», а затем добавить код для обработки ошибки.

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

Каковы некоторые методологии для «проверки ошибок» как «критического» процесса?

ответ

3

Если процесс должен быть ОШИБОК доказательства и не имеют какого-либо вмешательства администратора, вы должны обрабатывать все возможные ошибки. Если вы оставите шанс остановить программу, то будет Слушайте (Закон Мерфи), и вы не узнаете.

Даже если вы будете обрабатывать все возможные ошибки, я думаю, вам понадобятся некоторые регистрации и даже монитор с (mail?) Предупреждениями, чтобы убедиться, что ваш процесс всегда работает нормально.

+1

Согласен, предположим, что это провалится и обеспечит правильную работу в этом случае. – Michael

2

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

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

0

О методике тщательного анализа является HAZOP study, где для каждой части процесса вы рассматриваете ключевые слова для этого процесса. Для химического вещества на технологическом заводе это могут быть «больше», «меньше», «отсутствует», «более горячее» «холодное» «утечка» давления и так далее.

Когда applying HAZOP to software, вы должны рассмотреть ключевые слова, соответствующие объектам вашего программного обеспечения.

Например, для чтения файла вы можете рассмотреть «больше» для переполнения буфера, «меньше» отсутствующих данных, «отсутствующих» не существующих, «утечки» отсутствия файловых дескрипторов и т. Д.

Смежные вопросы