Лабораторная работа №30. Разработка пользовательского интерфейса 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Лабораторная работа №30. Разработка пользовательского интерфейса



Цель работы:

Формирование навыков разработки графических пользовательских интерфейсов с использованием средств MS Visual Studio 2010.

Обеспечение: 1). Персональный компьютер; 2). Среда Microsoft Office; 3). Среда MS Visual Studio 2010

Задание

  1. В соответствии с вариантом задания и спроектированным приложением разработать пользовательский интерфейс в среде визуального проектирования MS Visual Studio 2010.
  2. Используя схемы и диаграммы (ЛР №29), выполнить проектирование сценариев диалога и построить граф диалога.
  3. Выполнить кодирование обработчиков событий в среде MS Visual Studio 2010.
  4. Оформить отчет. Содержание отчета:

o тема лабораторной работы;

o цель лабораторной работы;

o ответы на контрольные вопросы;

o задание на лабораторную работу;

o окна с разработанным пользовательским интерфейсом;

o таблицу компонентов, свойств, значений, используемых в приложении;

o сценарии диалогов и графы диалогов;

o листинг приложения;

o вывод о проделанной работе.

Методические указания

Контрольные вопросы

  1. Что такое интерфейс?
  2. Какие типы пользовательских интерфейсов существуют?
  3. Перечислите этапы разработки пользовательских интерфейсов?
  4. К какому типу интерфейсов будет относиться интерфейс, разработанный в данной лабораторной работе?
  5. Какие модели интерфейсов существуют?
  6. Какая модель интерфейса будет использована в данной работе?
  7. Что такое диалог?
  8. Какие типы диалогов существуют?
  9. Какие формы диалога Вы знаете?
  10. Какой тип диалога и какая форма диалога будет использована в данной работе?

 

 



Методы отладки и тестирования программы

Теоретические сведения

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

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

Во-первых, компилятор указывает не ту строку исходного текста програм­мы, в которой произошла ошибка, а ту, в которой она проявилась. Эта строка может оказаться гораздо ниже, чем та, на которой сделана ошибка. Например, если вы забудете закончить описание класса на языке С++ точ­кой с запятой, как в следующем примере, то компилятор будет считать, что описание продолжается, и сообщит об ошибке только тогда, когда в этом "продолжении" возникнет какое-нибудь противоречие. Оно может про­явиться спустя несколько десятков строк исходного текста, и вы будете ло­мать голову, недоумевая, какая же в этом месте может быть ошибка. Нужен некоторый опыт, чтобы сообразить, что ошибка находится гораздо выше.

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; просмотров: 568; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.128.203.143 (0.006 с.)