* Переместил Sergey Ozerov (2:5020/348.3)
* From : Dimk Katyukhin, 2:467/67.18 (в пятницу 20 сентября 1996 14:08)
* Subj : Теория ошибок В. Тихонова

Теория ошибок В. Тихонова

Ошибки так же неисчерпаемы, как и атом.

Аксиома. В любой программе есть ошибки.

Закон пропорциональности. Чем больше программа необходима, тем больше в ней ошибок.
Следствие. Ошибок не содержит лишь совершенно не нужная программа.

Фундаментальный закон теории ошибок. Hа ошибках учатся.
Следствие 1. Программист, написавший программу становится ученым.
Следствие 2. Чем больше программист делает ошибок, тем быстрее он становится ученым.
Следствие 3. Крупный ученый-программист никогда не пишет правильные программы.
Замечание. Hа то он и ученый.
Указание начинающему программисту. Если вы с первого раза сумели написать программу, в которой компилятор не обнаружил ни одной ошибки, сообщите об этом системному программисту. Он исправит ошибки в компиляторе.

Закон находимости ошибок. Программист может обнаружить ошибку только в чужой программе.
Следствие. Ошибке не все равно, кто ее обнаружит.
Совет начинающему программисту. Hикогда не исправляйте найденные ошибки, ибо это повлечет за собой появление неизвестного числа ненайденных. Лучше опишите их в сопроводительной документации как особенность программы.

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

Язык ошибок

Ошибки могут следовать друг за другом.

От перестановки двух эквивалентных ошибок результат не меняется (коммутативность эквивалентных ошибок).

Две последовательные ошибки можно объединить в одну, более сильную.

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

Ошибки могут образовывать циклы. Hаиболее устойчивый из них - бесконечный.

Ошибки могут вызывать друг друга и сами себя (рекурсивность ошибок).

Ошибки допускают многократное вложение друг в друга. Две одинаковые вложенные ошибки называются четной ошибкой и ошибкой не являются.

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

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

Системные программы

Системные программы облегчают процесс написания прикладных программ и их ошибок.

Тестирование - это процесс нахождения ошибок в тесте.

Хороший тест должен содержать ошибки, компенсирующие их нехватку в тестируемой программе.

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

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

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


Good Luck!
Dimk.

 + Origin: -=( Rocket Silence Station )=- (2:467/67.18)

назад