Russian Banner Network

[ назад ]

Автор: неизвестен.

Теория Ошибок.

"Ошибки так же неисчерпаемы как и атом!" Ницше.

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

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

Следствие: Ошибок не содержит лишь совершенно ненужная программа.

Фундаментальный закон теории ошибок: На ошибках учатся.

Следствие 1: Программист, написавший программу становится ученым.

Следствие 2: Чем больше программист делает ошибок, тем скорее он становится ученым.

Следствие 3: Крупный ученый - программист никогда не пишет правильные программы.

Замечание: На то он и ученый.

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

Закон находимости ошибок: 1)Программист может обнаружить ошибку только в чужой программе.

Следствие: Ошибке не все равно кто ее обнаружит.

2) Каждая ошибка найденная в программе предпоследняя.

Следствие: Количество ошибок стремится к бесконечности.

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

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


Язык ошибок.

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

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

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

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

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

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

Ошибки допускают многократное вложение друг в друга.

Две одинаковые вложенные ошибки называются четной ошибкой и ошибкой не являются.

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

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


Взаимодействие ошибок с базовой операционной системой.

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

Запросы операционной системы к ошибкам ошибками могут игнорироваться. Запросы ошибок к операционной среде игнорироваться не могут.

При работе с файлами ошибки могут пользоваться файловой базовой системой ОС и ее ошибками.

На ЭВМ с параллельной архитектурой может выполнятся несколько ошибок одновременно.


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

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

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

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

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

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

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

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

[ вверх ]
Hosted by uCoz