В.5. общие рекомендации по разработке учебных программ

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

Во-первых, предполагается, что при разработке программ используется технологии императивного процедурного программирования c использованием технологии структурного программирования.Здесь важно понимать,что после того, как программа написана, мы должны убедиться в ее правильности. Следует заметить, что наличие ошибок в только что разработанной программе – это вполне нормальное и закономерное явление. Практически невозможно составить реальную, достаточно сложную программу без ошибок. Кроме того, нельзя делать вывод, что программа правильна, лишь на том основании, что она выполняется, и выдает результаты, поскольку эти результаты еще не обязательно правильные. В программе может оставаться большое количество логических ошибок. Ответственные участки программы рекомендуется проверять отдельно при помощи тестов, ориентированных на проверку конкретного участка программы.

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

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

При проверке программы программист по тексту программы мысленно воспроизводит тот вычислительный процесс, который определяет программа, после чего сверяет его с требуемым процессом. На время проверки нужно «забыть», что должна делать программа, и «узнавать» об этом по ходу её проверки. Только после окончания проверки программы можно «вспомнить» о том, что она должна делать и сравнить реальные действия программы с требуемыми.

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

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

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

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

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

Но даже если не используются средства программы-отладчика, при отладке программ важно помнить, что:

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

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

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

Тестовые данные должны обеспечить проверку всех возможных условий возникновения ошибок. При проведении тестирования руководствуются следующим:

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

Пример В.4-2.Разработать систему тестов для задачи нахождения корней квадратного уравнения В.5. общие рекомендации по разработке учебных программ

При нахождении корней возможны следующие случаи:

Номер теста Проверяемый случай Коэффициенты Результаты
a b с
d 0 -2 x1 = 1, x2 = — 2.
d=0 Корни равны: x1 = — 1, x2 = — 1.
d 0 Действительных корней нет
a=0, b=0, c=0 Все коэффициенты равны нулю. х — любое число.
a=0, b=0, c0 Неправильное уравнение.
a=0, b0 Линейное уравнение. Один корень:x=- 0,5.
a0,b0,с=0 x1= 0, x2= — 0,5.

Процесс тестирования можно разделить на три этапа:

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

2. Проверкав экстремальных условиях. Тестовые данные включают граничные значения области изменения входных переменных, которые должны восприниматься программой как правильные данные. Типичными примерами таких значений являются очень маленькие или очень большие числа и отсутствие данных. Еще один тип экстремальных условий – это граничные объемы данных, когда массивы состоят из слишком малого или слишком большого числа элементов.

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

При тестировании важно получить ответ на следующие вопросы:

  • что произойдет, если программе, не рассчитанной на обработку отрицательных и нулевых значений переменных, в результате какой-либо ошибки придется иметь дело как раз с такими данными?
  • как будет вести себя программа, работающая с массивами, если количество их элементов повысит величину, указанную в объявлении массива?
  • что произойдет, если числа будут слишком малыми или слишком большими?

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

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

В.6. Общие рекомендации и требования
к выполнению лабораторных работ

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

2)Приступая к выполнению лабораторной работе каждой темы, необходимо обратить внимание на список вопросов, подлежащих изучению, если какие-либо из вопросов остались неясными, следует вернуться к изучению теоретической части.

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

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

5)Все пункты выполнения задания фиксируются в отчете. Поэтому перед оформлением отчета рекомендуется изучить раздел «Содержание отчета». Отчет должен быть оформлен аккуратно, а схемы алгоритмов и программ должны быть выполнены с использованием компьютерной программы Microsoft Visio.

6)При подготовке к защите лабораторной работы желательно решить несколько задач по текущей теме.

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

8)Лабораторная работа считается сданной, если студент представил преподавателю отчет, продемонстрировал выполнение проекта на компьютере, а также защитил ее.

9)Защита лабораторных работ предполагает выполнение студентом дополнительного задания или ответа на ряд поставленных вопросов по данной теме. Результаты защиты лабораторной работы преподаватель также фиксирует в журнале.

В.7. Общие рекомендации и требования к
выполнению контрольных заданий

Контрольные задания предназначены для осуществления контроля знаний студентов по каждой из тем учебного пособия и используются при принятии зачета по каждой лабораторной работе. В зависимости от этапа контроля и изучаемой темы преподаватель имеет право задать вид контроля или выбрать несколько его видов.

Предполагается, что в примерах пособия и при проведении лабораторного практикума используется среда программирования Microsoft Visual Studio.

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

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

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

Какой должна быть рабочая программа учебного предмета и учебного курса


Похожие статьи.

Понравилась статья? Поделиться с друзьями: