Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТРПО учебное пособие.doc
Скачиваний:
24
Добавлен:
22.08.2019
Размер:
3.13 Mб
Скачать

6.3.3.6 Ошибки интерфейса

1. Равно ли число параметров, получаемых рассматриваемым модулем, числу аргументов, передаваемых каждым из вызывающих модулей? Правилен ли порядок их следования?

2. Совпадают ли атрибуты (например, тип и размер) каждого параметра с атрибутами соответствующего ему аргумента?

3. Совпадают ли единицы измерения каждого параметра с единицами измерения соответствующих аргументов? Например, нет ли случаев, когда значение параметров выражено в градусах, а аргумента — в радианах?

4. Равно ли число аргументов, передаваемых из рассматриваемого модуля другому модулю, числу параметров, ожидаемых в вызываемом модуле?

5. Соответствуют ли атрибуты каждого аргумента, передаваемого другому модулю, атрибутам соответствующего параметра в рассматриваемом модуле?

6. Совпадают ли единицы измерения каждого аргумента, передаваемого другому модулю, с единицами измерения соответствующего параметра в рассматриваемом модуле?

7. Если вызываются встроенные функции, правильно ли заданы число, атрибуты и порядок следования аргументов?

8. Если модуль имеет несколько точек входа, передается ли параметр всегда вне зависимости от точки входа? Такая ошибка присутствует во втором операторе присваивания следующей программы на PL/1:

A: PROCEDURE (W,X);

W=X+1;

RETURN;

В: ENTRY (Y,Z);

Y=X+Z;

END;

9. Не изменяет ли подпрограмма параметр, который должен использоваться только как входная величина?

10. Если имеются глобальные переменные (например, переменные в PL/1 с атрибутом EXTERNAL или в Си с атрибутом EXTERN, переменные, указанные в операторах COMMON Фортрана), имеют ли они одинаковые определения и атрибуты во всех модулях, которые к ним обращаются?

11. Передаются ли в качестве аргументов констан­ты? В некоторых реализациях Фортрана такие операто­ры, как

CALL SUBX (J,3)

являются опасными, поскольку, если подпрограмма SUBX присвоит значение второму параметру, значение константы 3 будет изменено.

6.3.3.7 Ошибки ввода-вывода

1. Являются ли правильными атрибуты файлов, описанных явно?

2. Являются ли правильными атрибуты оператора OPEN?

3. Согласуется ли спецификация формата с информацией в операторах ввода-вы­во­да? Например, согласуется ли каждый оператор FORMAT (с точки зрения числа элементарных данных и их атрибутов) с соответствующими операторами READ и WRITE в программе, написанной на Фортране? То же самое применимо к проверке соответствия между списком данных и списком форматов в операторах ввода-вы­во­да PL/1 и Си.

Рис. 6.3 — Сводный список вопросов для выявления ошибок при инспекции (часть 1)

Рис. 6.4 — Сводный список вопросов для выявления ошибок при инспекции (часть 2)

4. Равен ли размеру записи размер области памяти для ввода-вы­во­да? Это может быть важно при блочном вводе-вы­во­де (функции BLOCKREAD и BLOCKWRITE в Паскале, FREAD и FWRITE в Си).

5. Все ли файлы открыты перед их использованием?

6. Правильно ли обнаруживаются и трактуются признаки конца файла?

7. Правильно ли трактуются ошибочные состояния ввода-вы­во­да?

8. Существуют ли смысловые или грамматические ошибки в тексте, выводимом программой на печать или экран дисплея?