Per_Kursnew (694777), страница 4
Текст из файла (страница 4)
Обработка ошибок
Модуль вывода
Интерфейс
Рис 6.1 Модульная структура программы.
Пользователь ведёт диалог с программой через интерфейс. От интерфейса управление передаётся в Основную программу, где анализируются команды пользователя и выполняется передача управления соответствующим модулям. Если пользователь выбрал пункт меню и пункт подменю , то управление от Основной программы передаётся в Модуль ввода и дальше пользователь ведет диалог с этим модулем. Как только нажата клавиша , то управление берёт Модуль обработки ошибок. Данный модуль проверяет выполнение ограничений и выявляет ошибки при вводе. Если ошибок нет, то управление передаётся в Основную программу и дальше в Модуль вывода. А иначе пользователю предоставляется шанс ещё раз ввести данные.
6.2. Описание пользовательского интерфейса.
6.2.1. Меню системы.
Интерфейс системы выполнен в графическом режиме с соблюдением всех установленных ГОСТОВ. Экран разбит на три части: верхняя часть - горизонтальное меню с выпадающими окнами; нижняя часть - строка состояния; средняя часть - окно диалога.
Горизонтальное меню состоит из трёх пунктов:
-
Работа.
В этом пункте предусмотрено выпадающее меню для облегчения поиска соответствующего пункта. В подменю находятся следующие пункты:
-
Ввод.
-
Вывод
-
Выход.
-
О программе.
-
Помощь.
Передвижение по меню осуществляется с помощью клавиш управления курсором. Каждый пункт меню активизируется при нажатии клавиши . Обработку пунктов меню осуществляет Основная программа. В неё передаётся управление и соответствующие координаты пунктов на выполнение.
В пункте меню , в подпункте осуществляется ввод данных, необходимых для работы программы. При этом в Модуле ввода предусмотрено редактирование вводимого результата. В подпункте происходит выполнение алгоритма и вывод образующей матрицы на экран в удобном для визуализации виде.
В подпункте происходит предупреждение пользователя о выходе из программы с соответствующими запросами.
В пункте дана краткая аннотация программы.
В пункте представлена помощь по обработке пунктов меню и по соответствующим клавишам.
6.2.2. Обработка ошибочных ситуаций.
В программе предусмотрена защита от ввода нестандартных данных, а также защита от нажатия различных клавиш. Для обработки этих ситуаций предусмотрен Модуль обработки ошибок. Пользователь может вводить только 0 или 1.
Если пользователь ввел по ошибке неправильные данные, то у него есть возможность исправиться на стадии ввода. Для этих целей в программе предусмотрен повторный ввод с предыдущими данными.
6.3. Спецификация на программные модули.
Процедура initgrf.
Входные параметры:Нет.
Выходные параметры:Нет.
Выполняемые функции:Инициализация графики.
Особенностей:Нет.
Функция Sum(F,P : Byte) : Byte;
Входные параметры: F,P : Byte
Выходные параметры: Sum
Выполняемые функции: Суммирование по модулю 2
Особенностей:Нет.
Процедура Dopoln(Var F : Mass1);
Входные параметры: F : Mass1
Выходные параметры: F : Mass1
Выполняемые функции: Умножение на старшую степень
образующего многочлена .
Особенностей: НЕТ .
Процедура Delenye(F : Mass1;P : Mass2);
Входные параметры: F : Mass1;P : Mass2
Выходные параметры: нет.
Выполняемые функции: Деление многочлен на многочлен
Особенностей:Имеет свои особенности.
Процедура Ed_Matrix(Var A : Two_Matrix);
Входные парамеры: Var A : Two_Matrix
Выходные параметры: Var A : Two_Matrix
Выполняемые функции: Составление единичной матрицы.
Особенности: нет.
Процедура Obr_Matrix(Var A : Two_Matrix);
Входные параметры A : Two_Matrix
Выходные параметры: A : Two_Matrix
Выполняемые функции: Получение образующей матрицы
Особенностей: нет.
Процедура Visual(Var sa:mass);
Входные параметры: Var sa:mass
Выходные параметры: Var sa:mass
Выполняемые функции: Ввод информационных символов.
Особенностей: нет
Процедура OutPutObr_Matrix(x,y : Integer;Obr_Matr :
Two_Matrix );
Входные параметры: x,y : Integer;Obr_Matr :
Two_Matrix );
Выходные параметры:Нет.
Выполняемые функции: Вывод образующей матрицы.
Особенностей:Является универсальной.
Процедура OutPut(x,y : Integer;F,A : Mass1);
Входные параметры: x,y : Integer;F,A : Mass1.
Выходные параметры:Нет.
Выполняемые функции: Вывод полученной кодовой
комбинации.
Особенностей: нет.
Функция _Exit(Fon,Color : Integer;Col_Simv : Byte) :
integer;
Входные параметры Fon,Color : Integer;Col_Simv : Byte
Выходные параметры: _Exit : integer.
Выполняемые функции: выход из программы
Особенностей: нет
Основная программа
Входные параметры:нет.
Выходные параметры:Нет.
Выполняемые функции:Обьединяет в себя все процедуры и
управляет работой.
Особенностей:Нет.
ВЫВОДЫ. В данной главе были описаны принципы разработки программы и интерфейса. Дана модульная структура программы и межмодульные связи. Описан принцип работы программы и дана спецификация на программные модули. Если это всё объединить, то нетрудно будет разобраться в отдельных деталях программы. Дальше будет рассмотрено одно из основных мероприятий при программировании - тестирование.
7. Тестирование.
7.1. Выбор методики тестирования.
Без тестирования программ невозможно создать правильно работающую программу, так как всегда существуют какие-то граничные условия, за пределами которых программа даёт ошибки. При этом не следует путать отладку программ и тестирование.
Отладка программ - используется при неправильной работе программы.
Тестирование - ищет ошибки.
Существует много методов тестирования:
-
Статическое тестирование является наиболее формализованным и автоматизируемым методом проверки программ. В качестве эталонов применяются правила структурного построения программных модулей и обработки данных. Проверка степени этих правил проводится без использования объектного кода программы путем формального анализа текста программы на языке программирования. Операторы и операнды текста программ при этом анализируется в символьном виде, поэтому такой метод называют символьным тестированием.
-
Детерминированное тестирование является наиболее трудоёмким и детализирующим. При детерминированном тестировании контролиру-
естся каждая комбинация исходных эталонных данных и соответствующая ей комбинация результатов функционирования программы. Это позволяет выявлять отклонение результатов от эталона и реализующих данных, при которых это отклонение произошло.
-
Стохастическое тестирование применяется в тех случаях, когда невозможно в сложных задачах перебрать все комбинации исходных данных и проконтролировать результаты функционирования программы на каждом из них. При этом исходные тестовые данные задаются множеством случайных величин с соответствующими распределениями и для сравнения полученных результатов используются также распределения случайных величин. Стохастическое тестирование применяется в основном для обнаружения ошибок.
-
Тестирование в реальном масштабе времени. В процессе такого тестирования проверяется исполнение программ и обработка исходных данных с учетом времени их поступления , длительности и приоритетности обработки , динамика использования памяти и т.д.
-
При восходящем тестировании прежде всего проверяются модули нижних иерархических уровней, к которым постепенно подключаются вызывающие их модули. При этом обеспечивается работоспособность вызываемых компонент и функции группы программ проверяются в их естественном исполнении. Основные трудности состоят в необходимости полного обновления тестовых наборов при подключении каждой новой программы более высокого уровня.
-
При нисходящем тестировании проверки начинаются с программ управления и организации вычислительного процесса. Первоначально тестируется управляющее ядро комплекса программ и программы решения функциональных задач, размещенных на высших иерархических уровнях. К ним постепенно подключаются для тестирования программы последующих более низких иерархических уровней. Преимуществом такого метода является возможность сохранения и развития наборов тестовых данных по мере подключения программ нижних уровней.
На практике обычно используются три стратегии тестирования:
-
Тестирование программ как "Чёрного ящика ". Имеет цель выяснения обстоятельств, в которых поведение программ не соответствует спецификации. Тестовые данные составляются и используются без учета знаний о внутренней структуре программы.
-
Тестирование программ как "Белого ящика ". Тестовые наборы данных проектируются на основе внутренней логики программы. Цель тестирования - проверить каждую ветвь, каждый путь и каждый оператор. Спецификация программы при этом не используется.
-
Реальная стратегия обычно сочетает оба метода. При помощи метода "чёрного ящика" делается:
-
Проверка в нормальных условиях.
-
Анализ граничных значений.
-
Проверка в исключительных ситуациях.
-
Предположение об ошибке.
При помощи метода "Белого ящика" делается:
-
Покрытие операторов.
-
Покрытие решений.
-
Покрытие условий.
7.2. Результаты тестирования
При тестировании программы был использован восходящий метод тестирования. С помощью этого метода сначала были протестированы отдельные модули программы, а затем и вся программа. Результаты тестирования показаны на рисунке Приложения.
Тестирование системы включало в себя:
- тестирование ввода различных набора данных;
- получение комбинаций для кода с любым образующим многочленом;
Тестирование ввода различных наборов кодовых комбинаций не показало ни одной исключающей ситуации.
ВЫВОДЫ. В данной главе был выбран метод тестирования системы. В результате тестирования были обнаружены ошибки, которые впоследствии были устранены. В результате тестирования было получено, что программа является работоспособной. Программа правильно находит образующую матрицу и строит код Файра..
8. Ограничения на разработку.
Для выполнения программы необходимо соблюдать некоторые требования, а именно:
-
Программа может работать на персональных компьютерах с процессором не ниже 80486 .
-
Для реализации интерфейса необходимо иметь цветной монитор с адаптером не ниже VGA.
-
RAM не ниже 8MB.
-
Windows 95/98/NT
8.1. Инструкция пользователю.
В программе разработан интерфейс, подходящий под стандарты. Интерфейс реализован в графическом режиме. Меню горизонтальное, с выпадающими окнами. Главное окно программы изображено на рис.. Приложения 2.
Главное меню программы содержит следующие пункты:
-
О программе - дана краткая аннотация выполненной программы.
-
Работа - содержит подменю с пунктами:
-
Ввод - позволяет пользователю ввод соответствующих данных. Здесь предусмотрена защита от некорректного ввода. В этом пункте можно ввести любую информационную комбинацию.
-
Вывод - выполняется алгоритм построения образующей матрицы, с последующем выводом ее на экран.
-
Выход - обеспечивает выход из программы. Используется защита от случайного выхода.
Пункты меню активизируются нажатием клавиши .
При появления каждого окна в строке статуса появляется сообщение о возможных действиях.
Передвижение по меню осуществляется клавишами перемещения курсора на клавиатуре. Также используется "горячая клавиша" Esc. При нажатии на неё происходит автоматический выход из программы.
Заключение
В данной работе был рассмотрен один из множества методов кодирования. Достоинство данного метода в том, что он может находить исправлять пачки ошибок. Также все циклические коды легко поддаются схемной реализации.