* Аксиома: В любой программе есть ошибки.
* Закон пропорциональности: Чем более программа необходима, тем больше в ней ошибок. Следствие: Ошибок не содержит лишь совершенно ненужная программа.
* Фундаментальный закон теории ошибок: На ошибках учатся. Следствие 1: Программист, написавший программу, становится учёным. 2: Чем больше программист делает ошибок, тем быстрее он делается учёным. 3: Крупный учёный-программист никогда не пишет правильные программы. Замечание: На то он и учёный. Указание начинающему программисту: Если вы с первого раза сумели написать программу, в которой транслятор не обнаружил ни одной ошибки, сообщите об этом системному программисту. Он исправит ошибки в трансляторе.
* Закон необходимости ошибок: Программист может обнаружить ошибку только в чужой программе. Следствие: Ошибке не всё равно, кто её обнаружит. Совет начинающему программисту: Никогда не исправляйте найденные ошибки, это повлечёт за собой появление неизвестного числа ненайденных. Лучше опишите их в сопроводительной документации как особенность программы.
* Язык ошибок:
Ошибки могут следовать друг за другом.
От перестановки двух эквивалентных ошибок результат не меняется (коммутативность эквивалентных ошибок).
Две последовательные ошибки можно объединить в одну, более сильную.
Одинаковые ошибки необязательно делать каждый раз, достаточно сделать одну, а затем обращаться к ней по мере необходимости из любого места программы.
Ошибки могут образовывать циклы. Наиболее устойчивый из них - бесконечный.
Ошибки могут вызывать друг друга и сами себя (рекурсивность ошибок).
Ошибки допускают многократное вложение друг в друга. Две одинаковые вложенные ошибки называются чётной ошибкой и ошибкой не являются. Свойство чётности ошибок: Если написанная программа сработала правильно, то это значит, что во время её работы выполнилось чётное число ошибок или программист не понял задание. Формулировка вышеприведённого свойства, предназначенная для политиков: Ошибка, повторенная дважды, перестаёт быть ошибкой.
* Взаимодействие ошибок с базовой операционной системой:
Во время исполнения ошибки имеют наивысший приоритет. Прервать исполнение ошибки может только другая, более активная ошибка.
Запросы операционной системы к ошибкам ошибками могут игнорироваться.
Запросы ошибок к операционной системе игнорироваться не могут.
При работе с файлами ошибки могут пользоваться файловой системой ОС и её ошибками.
На ЭВМ с параллельной архитектурой может выполняться несколько ошибок одновременно.
* Системные программы:
Системные программы облегчают процесс написания прикладных программ и их ошибок.
Определение: Тестирование - это процесс нахождения ошибок в тесте. Хороший тест должен содержать ошибки, компенсирующие их нехватку в тестируемой программе.
Программа-транслятор, предназначенная для перевода программ с языка высокого уровня на машинный язык, при переводе порождает ошибки. Ошибки, которые содержались в исходном тексте, переводятся безошибочно.
* Заключительный совет: До начала работы над проектом следует тщательно продумать все необходимые ошибки и связи между ними. Это значительно упростит работу над ошибками в самом проекте.
Теория ошибок
Страница: 1
Сообщений 1 страница 1 из 1
Поделиться12012-04-03 23:14:55
Страница: 1