![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Лабораторная работа №30. Разработка пользовательского интерфейсаСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Цель работы: Формирование навыков разработки графических пользовательских интерфейсов с использованием средств MS Visual Studio 2010. Обеспечение: 1). Персональный компьютер; 2). Среда Microsoft Office; 3). Среда MS Visual Studio 2010 Задание
o тема лабораторной работы; o цель лабораторной работы; o ответы на контрольные вопросы; o задание на лабораторную работу; o окна с разработанным пользовательским интерфейсом; o таблицу компонентов, свойств, значений, используемых в приложении; o сценарии диалогов и графы диалогов; o листинг приложения; o вывод о проделанной работе. Методические указания Контрольные вопросы
Методы отладки и тестирования программы Теоретические сведения В предыдущей главе, обсуждая жизненный цикл программы, мы отметили, что этап отладки и тестирования программного продукта — это обязательная и существенная часть процесса разработки. Подсчитано, что отладка занимает от трети до половины всего времени, отведенного на разработку. Даже после этого в готовом программном продукте зачастую остаются ошибки, выявляемые уже в процессе его эксплуатации. Поэтому отладке и тестированию надо уделить особое внимание. Ошибки, сделанные в программе, можно разделить на два типа: синтаксические и семантические. Синтаксические ошибки возникают при нарушении правил записи программы на выбранном языке программирования. Современные компиляторы хорошо выявляют такие ошибки и выводят на экран толковые сообщения о типе ошибки и месте ее обнаружения. Эти сообщения позволяют быстро найти место ошибки и исправить ее. Дело несколько осложняется тремя обстоятельствами.
Во-первых, компилятор указывает не ту строку исходного текста программы, в которой произошла ошибка, а ту, в которой она проявилась. Эта строка может оказаться гораздо ниже, чем та, на которой сделана ошибка. Например, если вы забудете закончить описание класса на языке С++ точкой с запятой, как в следующем примере, то компилятор будет считать, что описание продолжается, и сообщит об ошибке только тогда, когда в этом "продолжении" возникнет какое-нибудь противоречие. Оно может проявиться спустя несколько десятков строк исходного текста, и вы будете ломать голову, недоумевая, какая же в этом месте может быть ошибка. Нужен некоторый опыт, чтобы сообразить, что ошибка находится гораздо выше. class А{ int п; public: A(int n){ this.n = n; } } class B{ }; Во-вторых, ошибка может произойти по разным причинам, компилятор же укажет только одну. Иногда компилятор честно сообщает, что не может определить причину ошибки, написав просто: "Syntax error". В большинстве случаев он указывает наиболее часто встречающуюся, по мнению разработчиков компилятора, ошибку, в вашей программе может оказаться совсем другая, поэтому принимайте сообщения компилятора не как истину, а только как один из возможных вариантов. В-третьих, некоторые ошибки компилятор не в состоянии обнаружить. К ним относится деление на ноль или переполнение в арифметических выражениях, отрицательное или слишком большое значение индекса массива, и другие ошибки, возникающие в процессе вычислений. Такие ошибки проявляются уже на этапе выполнения (run time) программы и сообщает о них не компилятор, а исполняющая система. Их следует учитывать уже при проектировании, включая в программу обработку исключительных ситуаций. Синтаксические ошибки обнаруживаются и устраняются довольно легко после нескольких запусков программы. Без исправления этих ошибок программа просто не будет работать. Гораздо труднее исправить семантические ошибки — ошибки в алгоритме работы программы.
Часто встречающаяся семантическая ошибка — неправильная расстановка скобок в выражении. Компилятор может проверить парность скобок, но если число открывающих скобок совпадает с числом закрывающих скобок, то компилятор не может сказать, в нужных ли местах они стоят. Здесь надо быть особенно внимательным и отдавать себе отчет в том, что вы хотите вычислить. Например, переменная х может получить значение, вычисленное следующим оператором: double х = 2 * (а - Ь) / (а + Ь) + к * 5 * (а + Ь) / (а * Ь); Но значение х вполне можно вычислить и таким оператором: double х = 2 * (а - b) / (а + Ь) + к * (5 * а + Ь) / (а * Ь); Компилятору обе записи "кажутся" правильными. Выбор того или иного оператора зависит от задачи, в которой вычисляется переменная х. Еще одна распространенная ошибка, не обнаружимая компилятором, возникает из-за неправильной расстановки или отсутствия фигурных скобок. В следующем примере, очевидно, переменная s, в которой накапливается сумма, должна изменяться при каждой итерации цикла, но компилятор не может "понять", что, фактически, она меняется только один раз: после выполнения цикла. int m, S = 0; for (int k = 0; k < a.sizeO - 1; k++) m = a[k + 1] - a[k]; s += 2 * m * m - 3 * m + 2; Чтобы избежать таких ошибок, специалисты рекомендуют записывать тело любого составного оператора в фигурных скобках. Семантические ошибки выявить гораздо труднее, чем синтаксические. Поскольку компилятор не может их заметить, он не выдает никаких сообщений. Программа может долго работать, не попадая в условия, в которых проявляются семантические ошибки. Бывает, что ошибочные результаты появляются только после нескольких месяцев эксплуатации программы. Поэтому для выявления таких ошибок зачастую приходится прикладывать специальные усилия, а в проекте необходимо предусматривать специальную фазу отладки и тестирования. Процесс отладки проходит несколько этапов. Ошибку сначала надо обнаружить. Потом найти место ее появления, как говорят, локализовать ошибку. После этого ошибку надо устранить. Рассмотрим подробнее каждую стадию отладки. Обнаружение ошибки Как уже говорилось выше, большинство синтаксических ошибок обнаруживается компилятором или выявляется сразу же после первых запусков программы. Их нетрудно обнаружить и исправить. Как правило, трудности вызывает обнаружение семантических ошибок. О них обычно и идет речь, когда говорят об отладке. После того как очевидные ошибки устранены, и программа при запуске не сообщает об ошибках, могут возникнуть следующие ситуации: 1. Программа не дает никаких результатов. Это происходит чаще всего в результате зацикливания или ожидания какого-то события, которое по разным причинам не может наступить. 2. Программа дает неверные результаты. Самый распространенный вариант, возникающий из-за ошибок в алгоритме или из-за ошибок в кодировании алгоритма. 3. Программа дает правдоподобные результаты. Это самый опасный случай, поскольку получаемые значения можно принять за верные результаты и передать в эксплуатацию ошибочную программу. 4. Программа работает правильно. Почти фантастика. Рассмотрим подробнее каждую ситуацию.
|
||||||
Последнее изменение этой страницы: 2016-12-11; просмотров: 615; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.5.176 (0.011 с.) |