Кодирование и тестирование сверху вниз
Для того чтобы ознакомиться с практической методикой кодирования и тестирования сверху вниз, рассмотрим структурную диаграмму некоторого программного комплекса (рис.4.3).
Рис. 4.3. Структурная диаграмма программного комплекса
Структурная диаграмма является трехуровневой и состоит из шести программных модулей. Программный модуль первого уровня М1 (управляющий программных модулей) вызывает три программных модуля второго уровня М2, М3, М4. Программный модуль второго уровня М4 вызывает два программных модуля третьего уровня М5 и М6.
Проектирование и кодирование программного комплекса начинается с управляющего программного модуля М1. Для его тестирования и отладки необходимо иметь программные модули второго уровня, но, так как они еще не спроектированы и не закодированы, вместо них используются имитаторы этих программных модулей - заглушки ЗагМ2,ЗагМ3 и ЗагМ4. Назначение заглушек только в том, чтобы программный модуль верхнего уровня был выполнен, поэтому они могут быть простыми.
После того как главный программный модуль М1 будет оттестирован, вместо ЗагМ2 подключается программный модуль М2. Вместо программных модулей М3 И М4 установлены заглушки ЗагМ3 и ЗагМ4. Тестируется модуль М2.
Вместо ЗагМ3 подключается модуль М3, который тестируется.
Перед заменой заглушки ЗагМ4 на модуль М4 подключаются заглушки ЗагМ5 и ЗагМ6 и так далее до тестирования и отладки последнего программного модуля М6, после чего процесс проектирования, кодирования и комплексного тестирования программного комплекса завершается. При тестировании и отладке каждого программного модуля одновременно ведется тестирование и отладка программного комплекса в целом.
Структурное кодирование
Структурное кодирование (программирование) - это метод кодирования (программирования), предусматривающий создание понятных, простых и удобочитаемых программных модулей и программных комплексов на требуемом языке программирования. Для кодирования программных модулей используются унифицированные (базовые) структуры, такие как: следование, развилка полная, развилка неполная, выбор, цикл-пока, цикл-до и цикл с параметром.
Программные комплексы и программные модули, закодированные в соответствии с перечисленными правилами структурного программирования, называетсяструктурированными.
После разбиения программного комплекса на программные модули и подготовки спецификации на каждый программный модуль начинается работа по проектированию алгоритмов, реализующих спецификацию каждого программного модуля. Наиболее часто для описания алгоритмов используется словесная форма и графическая в виде схем алгоритмов. Словесная форма наиболее понятна и доступна, но не имеет определенных правил записи и поэтому неоднозначна. Графическая форма наглядна, информативна и однозначна, так как правила выполнения и условные обозначения определяются государственным стандартом ГОСТ 19.701-90 “Схемы алгоритмов, программ, данных и систем”. Каждый программный модуль изображается в графической форме на левой стороне листа, а на правой записывается программа на языке программирования.
Современные системы программирования, как правило, ориентированы на технологию нисходящего структурного программирования.
Сквозной контроль - это проверка программного комплекса, выполняемая на основе изучения его группой специалистов. На протяжении всего времени существования программного комплекса может осуществляться несколько проверок, охватывающих все этапы его разработки.
Помните - “цена” ошибок возрастает при их обнаружении на более поздних этапах разработки программного обеспечения. Обычно считается, что “цена” ошибки возрастает на порядок при задержке обнаружения на этап.
Отладка программы
Система программирования Турбо Паскаль имеет в своем составе достаточно развитую систему отладки. Поэтому ознакомимся с ней.
Для прогона программы необходимо дать команду Ctrl-F9. Если в программе обнаружена ошибка, то программа прекращает работу и восстанавливает окно редактора. Одновременно курсор переходит на ту строку программы, при компиляции или исполнении которой обнаружена ошибка. При этом в верхней строке редактора появляется диагностическое сообщение о причине ошибки. Это позволяет ускорить отладку программы, т.е. устранить в ней синтаксические ошибки и добиться правильной ее работы.
Если ошибка возникла на этапе работы программы, простое указание того места, где она обнаружена, может не дать нужной информации, так как ошибка может быть следствием неправильной подготовки данных. Например, если ошибка возникла при извлечении квадратного корня из отрицательного числа, будет указан оператор, в котором осуществлялась сама операция извлечения корня, хотя ясно, что первопричину ошибки следует искать где-то раньше, там, где переменной было присвоено отрицательное значение. В таких ситуациях следует прибегнуть к пошаговому исполнению команд, связанных с клавишами F4, F7 и F8:
F4 - используется при отладке: начать или продолжить исполнение программы и остановиться перед исполнением той ее строки, на которой стоит курсор;
F7 - выполнить следующую строку программы; если в строке есть обращение к процедуре (функции), войти в эту процедуру и остановиться перед исполнением первого ее оператора;
F8 - выполнить следующую строку программы; если в строке есть обращение к процедуре (функции), исполнить ее и не прослеживать ее работу.
На первых порах, до приобретения практического опыта в отладке программ, можно пользоваться только клавишей F7, после нажатия на которую среда осуществляет компиляцию, компоновку (связь с библиотекой стандартных процедур и функций) и загрузку программы, а затем остановит прогон перед исполнением первого оператора. Строка программы, содержащая этот оператор, будет выделена на экране цветом. Каждое новое нажатие на клавишу F7 будет вызывать выполнение всех операций, запрограммированных в текущей строке, и смещение указателя к следующей строке программы. В местах программы, вызывающих сомнение, можно просмотреть значения нужных вам переменных или выражений.
Для этого установите курсор в то место текущей строки, где написано имя интересующей вас переменной, и нажмите Ctrl-F4. На экране откроется диалоговое окно, состоящее из трех полей. В верхнем поле будет стоять имя переменной. После этого нажмите Enter, чтобы получить в среднем поле текущее значение этой переменной. Если перед командой Ctrl-F4 курсор стоял на пустом участке строки или указал на другую переменную, верхнее поле также окажется пустым или будет содержать имя этой другой переменной. В этом случае следует ввести с помощью клавиатуры интересующее вас имя в верхнем поле и нажать клавишу Enter. Таким образом можно вводить не только имена прослеживаемых переменных, но и выражения с их участием - среда вычислит и покажет значение этого выражения.
При решении небольших примеров в процессе отладки целесообразно использовать такую возможность среды Турбо Паскаль, как одновременный вывод на экран дисплея окна редактора с программой (окно-1) и окна ввода данных и вывода решений (обычно вызывается командой Alt-F5).
Для одновременного наблюдения двух окон выполните следующие операции:
1. Нажмите клавишу F10 для перехода в режим выбора из главного меню.
2. Подведите указатель к опции Debug (отладка), нажмите клавишу Enter -на экране раскроется (выпадет) меню второго уровня.
3. Подведите указатель к пункту Output (вывод программы) и снова нажмите Enter. На экране вновь появится окно программы, но оно уже не будет исчезать при нажатии на любую клавишу - экран будет связан с этим окном постоянно.
4. Вновь нажмите клавишу F10, выберите Window, нажмите клавишу Enter.
5. В раскрывшемся меню подведите указатель к опции Tile (черепица) и нажмите клавишу Enter еще раз. Если все выполнено правильно, на экране будут одновременно присутствовать два меню.