Составители:
Рубрика:
34
языка; это означает, что большинство ошибок встречается в любом языке
программирования. Любой специалист может дополнить этот список во-
просами, позволяющими выявить ошибки, специфичные для того языка
программирования, который он использует, и обнаруженные им в ре-
зультате выполнения процесса инспектирования.
2.4.1. Ошибки обращения к данным
Сводный список вопросов таков:
1. Используются
ли переменные с неустановленными значениями?
Наличие переменных с неустановленными значениями – наиболее
часто встречающаяся программная ошибка, она возникает при различных
обстоятельствах. Для каждого обращения к единице данных (например, к
переменной, элементу массива, полю в структуре, атрибуту в классе) по-
пытайтесь неформально «доказать», что ей присвоено значение в прове-
ряемой точке.
2. Лежат
ли индексы вне заданных границ?
Не выходит ли значение каждого из индексов за границы, опреде-
ленные для соответствующего измерения при всех обращениях к масси-
ву, вектору, списку и т. п.?
3. Есть ли нецелые индексы?
Принимает ли каждый индекс целые значения при всех обращениях
к массиву, вектору, списку? Нецелые индексы
не обязательно являются
ошибкой для всех языков программирования, но представляют практиче-
скую опасность.
4. Есть ли «подвешенные» обращения?
Создан ли объект (выделена ли память) для всех обращений с помо-
щью указателей или переменных-ссылок на объект (или память)? Нали-
чие, переменных-ссылок представляет собой ошибку типа «подвешенно-
го обращения». Она возникает
в ситуациях, когда время жизни указателя
больше, чем время жизни объекта/памяти, к которому/ой производится
обращение. Например, к такому результату приводит ситуация, когда
указатель задает локальную переменную в теле метода, значение указа-
теля присваивается выходному параметру или глобальной переменной,
метод завершается (освобождая адресуемую память), а программа затем
пытается использовать
значение указателя. Как и при поиске ошибок
первых трех типов, попытайтесь неформально доказать, что для каждого
обращения, использующего переменную-указатель, адресуемая па-
мять/объект существует.
Этот тип ошибок характерен для языка Си или С++, где широко ис-
пользуются ссылки и указатели. Язык Java в этом отношении более раз-
вит, например, при потере
всех ссылок на объект, объект переходит в
«кучу мусора», где автоматически освобождается память из-под объекта
языка; это означает, что большинство ошибок встречается в любом языке программирования. Любой специалист может дополнить этот список во- просами, позволяющими выявить ошибки, специфичные для того языка программирования, который он использует, и обнаруженные им в ре- зультате выполнения процесса инспектирования. 2.4.1. Ошибки обращения к данным Сводный список вопросов таков: 1. Используются ли переменные с неустановленными значениями? Наличие переменных с неустановленными значениями – наиболее часто встречающаяся программная ошибка, она возникает при различных обстоятельствах. Для каждого обращения к единице данных (например, к переменной, элементу массива, полю в структуре, атрибуту в классе) по- пытайтесь неформально «доказать», что ей присвоено значение в прове- ряемой точке. 2. Лежат ли индексы вне заданных границ? Не выходит ли значение каждого из индексов за границы, опреде- ленные для соответствующего измерения при всех обращениях к масси- ву, вектору, списку и т. п.? 3. Есть ли нецелые индексы? Принимает ли каждый индекс целые значения при всех обращениях к массиву, вектору, списку? Нецелые индексы не обязательно являются ошибкой для всех языков программирования, но представляют практиче- скую опасность. 4. Есть ли «подвешенные» обращения? Создан ли объект (выделена ли память) для всех обращений с помо- щью указателей или переменных-ссылок на объект (или память)? Нали- чие, переменных-ссылок представляет собой ошибку типа «подвешенно- го обращения». Она возникает в ситуациях, когда время жизни указателя больше, чем время жизни объекта/памяти, к которому/ой производится обращение. Например, к такому результату приводит ситуация, когда указатель задает локальную переменную в теле метода, значение указа- теля присваивается выходному параметру или глобальной переменной, метод завершается (освобождая адресуемую память), а программа затем пытается использовать значение указателя. Как и при поиске ошибок первых трех типов, попытайтесь неформально доказать, что для каждого обращения, использующего переменную-указатель, адресуемая па- мять/объект существует. Этот тип ошибок характерен для языка Си или С++, где широко ис- пользуются ссылки и указатели. Язык Java в этом отношении более раз- вит, например, при потере всех ссылок на объект, объект переходит в «кучу мусора», где автоматически освобождается память из-под объекта 34
Страницы
- « первая
- ‹ предыдущая
- …
- 30
- 31
- 32
- 33
- 34
- …
- следующая ›
- последняя »