tehnologia (1018792), страница 48

Файл №1018792 tehnologia (Г.С. Иванова - Учебник - Технология программирования) 48 страницаtehnologia (1018792) страница 482017-07-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 48)

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

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

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

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

Затем анализируя причины,исключают те, которые противоречат имеющимся данным. Если все причины исключены, тоследует выполнить дополнительное тестирование исследуемого фрагмента. В противномслучае наиболее вероятную гипотезу пытаются доказать. Если гипотеза объясняетполученные признаки ошибки, то ошибка найдена, иначе – проверяют следующую причину(рис. 10.4).Метод обратного прослеживания. Для небольших программ эффективноприменение метода обратного прослеживания. Начинают с точки вывода неправильногорезультата.

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

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

Кроме того, внесение в программы дополнительных операторов можетпривести к изменению проявления ошибки, что нежелательно, хотя и позволяет сделатьопределенный вывод о ее природе.Примечание. Ошибки, исчезающие при включении в программу или удалению из нее каких-либо«безобидных» операторов, как правило, связаны с «затиранием» памяти. В результате добавления или удаленияоператоров область затирания может сместиться в другое место и ошибка либо перестанет проявляться, либобудет проявляться по-другому.Интегрированныесредстваотладки.Большинствосовременныхсредпрограммирования (Delphi, Builder C++, Visual Studio и т. д.) включают средства отладки,которые обеспечивают максимально эффективную отладку.Они позволяют:• выполнять программу по шагам, причем как с заходом в подпрограммы, так ивыполняя их целиком;• предусматривать точки останова;• выполнять программу до оператора, указанного курсором;294• отображать содержимое любых переменных при пошаговом выполнении;• отслеживать поток сообщений и т.п.На рис.10.5 показан вид программы в момент перехода в режим пошаговоговыполнения по достижении точки останова в Delphi.

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

Для этого последовательно проверяютинтересующие значения в узловых точках. Обнаружив значения, отличающиеся отожидаемых, по шагам трассируют соответствующий фрагмент до выявления оператора,выполнение которого дает неверный результат.295Для уничтожения природы ошибки возможен анализ машинных кодов, флагов ипредставления программы и значений памяти в 16-ричном виде (рис. 10.6).Причину ошибки определяют, используя один из методов, рассмотренных в § 10.2.При этом для проверки гипотез также можно использовать интегрированные средстваотладки.Отладка с использованием независимых отладчиков. При отладке программиногда используют специальные программы – отладчики, которые позволяют выполнитьлюбой фрагмент программы в пошаговом режиме и296проверить содержимое интересующих программиста переменных. Как правило такиеотладчики позволяют отлаживать программу только в машинных командах, представленныхв 16-ричном коде.10.4.

Общая методика отладки программного обеспеченияСуммируя все сказанное выше, можно предложить следующую методику отладкипрограммного обеспечения, написанного на универсальных языках программирования длявыполнения в операционных системах MS DOS и Win32:1 этап - изучение проявления ошибки - если выдано какое-либо сообщение иливыданы неправильные или неполные результаты, то необходимо их изучить и попытатьсяпонять, какая ошибка могла так проявиться. При этом используют индуктивные идедуктивные методы отладки. В результате выдвигают версии о характере ошибки, которыенеобходимо проверить. Для этого можно применить методы и средства получениядополнительной информации об ошибке.Если ошибка не найдена или система просто «зависла», переходят ко второму этапу.2 этап - локализация ошибки - определение конкретного фрагмента, при выполнениикоторого произошло отклонение от предполагаемого вычислительного процесса.Локализация может выполняться:• путем отсечения частей программы, причем, если при отсечении некоторой частипрограммы ошибка пропадает, то это может означать как то, что ошибка связана с этойчастью, так и то, что внесенное изменение изменило проявление ошибки;• с использованием отладочных средств, позволяющих выполнить интересующих насфрагмент программы в пошаговом режиме и получить дополнительную информацию о местепроявления и характере ошибки, например, уточнить содержимое указанных переменных.При этом если были получены неправильные результаты, то в пошаговом режимепроверяют ключевые точки процесса формирования данного результата.Как подчеркивалось выше, ошибка не обязательно допущена в том месте, где онапроявилась.

Характеристики

Тип файла
PDF-файл
Размер
7,85 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Учебник - Технология программирования
Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6458
Авторов
на СтудИзбе
304
Средний доход
с одного платного файла
Обучение Подробнее