Реклама:

Масштабирование состоит в выборе масштабных коэффициентов для машинного представления рельных физических величин с учетом особенностей изображения чисел в конкретной ЭВМ. Для этого производится анализ диапазонов изменения исходных, промежуточных и результирующих величин и выбор масштабов их изображения в разрядной сетке ЭВМ. При выборе масштабных коэффициентов анализируются операции над величинами в соответствии с алгоритмом вычислений и проверяются условия корректности вычислений с фиксированной точкой. В результате масштабирования 141:

при' любых операциях результат не должен выходить за пределы диапазона машинного представления чисел в данной ЭВМ, в частности, должно быть исключено деление на нуль (исключение переполнения);

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

Процесс масштабирования зависит от структуры и сложности конкретных вычислительных алгоритмов. Масштабирование реализуется несколькими методами: вручную, при разработке текстов программы; полуавтоматически (по указанию) путем автоматического анализа текста программы, выделения операторов, подлежащих масштабированию и возможных значений коэффициентов с ручным вводом реализуемых масштабов; а также полностью автоматически при трансляции текстов программ. Для автоматического масштабирования в трансляторы с языков высокого уровня вводятся специальные блоки, осуществляющие анализ арифметических выражений, вычисление масштабных коэффициентов с использованием описаний переменных и констант, а также вставку операций масштабирования. Протранслироваиная программа в объектном коде, подготовленном к исполнению на ЭВМ, в своем составе имеет в явном виде операции и коэффициенты масштабирования, число которых желательно минимизировать. При любом методе не исключены ошибки, что приводит к необходимости дополнительного тестирования вычислений для проверки корректности масштабирования.

Тестирование масштабирования предназначено для проверки отсутствия переполнения и потери точности вычислений при изменении исходных данных в допустимых диапазонах. В некоторых случаях может быть необходимым тестирование при искаженных входных величинах, которые выходят за заданные пределы. В этих случаях тестируемые программы должны селектировать искаженные данные для исключения аномалий и тупиковых ситуациях при вычислениях (например, в алгоритмы вводятся обходы возможного деления на нуль).

При достоверных исходных данных необходимо выбрать сочетания значений тестовых переменных, обеспечивающие предельные вычисляемые переменные на всех промежуточных и конечных операциях. Предельные значения тестов целесообразно подготавливать путем просмотра вычислений снизу вверх, начиная от выходных результатов. На каждом шаге могут быть установлены максимальные реальные значения величин и значения переменных, при которых возможна потеря точности из-за ограниченного числа разрядов ЭВМ. При пошаговом выборе тестов некоторые сочетания переменных охватывают предельные условия масштабирования для нескольких операций вычислений. Другие сочетания переменных могут оказаться уникальными и должны найти отражение в исходных тестовых данных. В результате формируется полная совокупность тестов, охватывающих весь процесс вычислений с выбранными коэффициентами масштабирования. Тесты для проверки масштабирования в значительной степени могут покрывать тесты предельных значений переменных, что позволяет сокращать общий объем тестирования.


⇐ Предыдущая страница| |Следующая страница ⇒