Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Answer.docx
Скачиваний:
18
Добавлен:
15.04.2019
Размер:
861.2 Кб
Скачать

43. Типы программных ошибок.

  • Логические.

  • Синтаксические.

  • Ошибки выполнения.

44. Отладка: методы «грубой силы»

Методы грубой силы:

  • просмотр в узлах

  • слежение (трассировка)

  • прокрутка

Реализуются с помощью интегрированных в среду разработки отладчиков

45. Интеллектуальные методы отладки.

Интеллектуальные методы:

  • индукция

  • дедукция

Реализуются в процессе тщательного анализа текста программы, часто без использования компьютера

Метод индукции:

  • определение симптомов ошибки

  • определение условий возникновения ошибки

  • выдвижение и проверка гипотез о природе ошибки.

Метод дедукции:

  • выдвижение гипотез о природе ошибки

  • исключение ряда гипотез

  • проверка и уточнение выбранных гипотез.

46. Принципы отладки.

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

  2. Не зацикливайтесь на поиске одной ошибки (среднее время поиска ошибки не должно быть больше 1 часа).

  3. Не вносите изменений в программу, если ошибка не найдена.

  4. Чем больше ошибок обнаружено, тем больше вероятность существования ненайденных ошибок.

  5. Ищите ошибку, а не исправляйте ее последствия.

  6. Вероятность появления ошибки при внесении изменений выше, чем в старом тексте приложения.

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

  8. Проводите документирование ошибок.

47. Инспекции по.

Инспекции – это процедуры анализа текущих результатов разработки. Могут применяться на разных этапах, чаще всего - на этапах проектирования и тестирования. В качестве текущих результатов рассматриваются подготовленные артефакты: документация в виде текстов и спецификаций, диаграммы, схемы, код. Если инспектируются результаты проектирования, то необходимо привлекать специалистов, хорошо знающих UML. Инспекции, осуществляемые на этапе тестирования, называют сквозными просмотрами программ.

Сквозные просмотры:

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

Что необходимо иметь для просмотра:

  • документация, как минимум спецификация

  • текст программы

  • список типовых ошибок

Скорость сквозного просмотра ~ 100-150 строк в час.

Прогоны программы не проводятся.

Результаты просмотра:

  • список обнаруженных ошибок

  • список возможных дефектов.

Сквозные просмотры обычно проводятся более одного раза.

52. Ссылки на классы и указатели на методы

Ссылки на классы

Язык Delphi позволяет рассматривать классы объектов как своего рода объекты, которыми можно манипулировать в программе. Такая возможность рождает новое понятие — класс класса; его принято обозначать термином метакласс.

Для поддержки метаклассов введен специальный тип данных — ссылка на класс (class reference). Ссылка на класс – тип данных, значениями этого типа являются имена класса. Использование ссылок на класс позволяет сделать приложение более гибким.Он описывается с помощью словосочетания class of, например:

type

TTextReaderClass = class of TTextReader;

Переменная типа TTextReaderClass объявляется в программе обычным образом:

var

ClassRef: TTextReaderClass;

Значениями переменной ClassRef могут быть класс TTextReader и все порожденные от него классы. Допустимы следующие операторы:

ClassRef := TTextReader;

ClassRef := TDelimitedReader;

ClassRef := TFixedReader;

По аналогии с тем, как для всех классов существует общий предок TObject, у ссылок на классы существует базовый тип TClass, определенный, как:

type

TClass = class of TObject;

Переменная типа TClass может ссылаться на любой класс.

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

Физический смысл и взаимосвязь таких понятий, как переменная-объект, экземпляр объекта в памяти, переменная-класс и экземпляр класса в памяти поясняет рисунок.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]