Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 1030.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
173.06 Кб
Скачать

Разработка компьютерной моделирующей программы

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

Программирование - это отдельная дисциплина информатики. Отметим основные понятия и принципы этой науки, полезные для технологии моделирования.

Алгоритм- это правило, предписывающее последовательность действий над входной информацией и приводящее к результату. Правило должно обладать массовостью, определенностью и понятностью.

Массовость- справедливость алгоритма для большого множества исходных данных (самое важное свойство для моделирования).

Определенность- это возможность чисто механического исполнения алгоритма, например, роботом или компьютером.

Понятность- представление алгоритма в виде текста, понятного для исполнения.

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

В дальнейшем в качестве представления алгоритмов, моделей и программ будем использовать нотацию системы Турбо-Паскаль версии 5.5.

Моделирующая программа, как правило, содержит три основных блока.

Блок исходных данных задает параметры модели:

а) константы модели, такие, как гравитационная постоянная, постоянная Стефана-Больцмана и др. (статические параметры);

б) геометрические размеры, время;

в) физические характеристики (динамические параметры).

По сути этот блок определяет стратегию моделирования.

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

Результаты работы программы могут быть представлены в табличном и графическом видах, при необходимости в демонстрационном режиме.

Элементы теории тестирования

Тестирование - это процесс исполнения программ с целью выявления (обнаружения) ошибок.

Тестирование - процесс деструктивный, поэтому считается, что тест удачный, если обнаружена ошибка.

Существуют различные способы тестирования программ.

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

Тестирование программы как белого ящика заключается в стратегии управления логикой программы, позволяет использовать ее внутреннюю структуру. Критерием выступает исчерпывающее тестирование всех маршрутов и управляющих структур программы.

Разумная и реальная стратегия тестирования - сочетание черного и белого ящиков.

Принципы тестирования:

  • описание предполагаемых значений выходных данных или результатов должно быть необходимой частью теста;

  • тесты для неправильных и непредусмотренных входных данных следует разрабатывать так же тщательно, как для правильных и предусмотренных;

  • необходимо проверять не только, делает ли программа то, для чего она предназначена, но и не делает ли она то, что не должна делать;

  • нельзя планировать тестирование в предположении, что ошибки не будут обнаружены;

  • вероятность наличия необнаруженных ошибок в части программы пропорциональна числу ошибок, уже обнаруженных в этой части;

  • тестирование - процесс творческий.

Таким образом, тестирование - это процесс выполнения программы с целью обнаружения ошибок. Хорошим считается тест, который имеет большую вероятность обнаружения еще не выявленной ошибки. Удачным считается тест, который обнаруживает еще не выявленную ошибку.

При разработке программ очень полезным бывает метод "ручного тестирования" без компьютера на основе инспекции и сквозного просмотра (тестирование "всухую").

Инспекция и сквозной просмотр - это набор процедур и приемов обнаружения ошибок при чтении текста.

Основные типы ошибок при программировании:

  • обращения к переменным, значения которым не присвоены или не инициализированы;

  • выход индексов за границы массивов;

  • несоответствие типов или атрибутов переменных величин:

  • явные или неявные проблемы адресации памяти;

  • ошибочные передачи управления;

  • логические ошибки.

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

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

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

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