Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
26
Добавлен:
28.01.2014
Размер:
361.98 Кб
Скачать

2 Методика выполнения курсовой работы

2.1 Цель работы

Целью курсовой работы, методика выполнения которой изложена ниже, является получение начальных навыков проектирования и разработки программ с применением структурных методов анализа, а также усвоение методов тестирования разработанных программ.

2.2 Постановка задачи обработки информации

Применение описанных методов специфицирования и тестирования рассмотрим на примере.

Имеется две структуры, примеры заполнения которых приведены соответственно в таблицах 2.1 и 2.2.

Таблица 2.1 – Структура 1

ФИО студента

Номер группы

Номер предмета

Оценка

Иванов И.И.

Т28-Т210

2

3

Сидоров С.А.

Т28-Т210

5

2

Смирнов А.А.

Т28-Т210

2

5

Петрова М.С.

Т28-Т210

5

3

Иванов И.И.

Т28-Т210

5

3

Петров П.В.

Т28-Т210

1

5

Иванов И.И.

Т28-Т210

1

4

Таблица2.2 – Структура 2

Номер предмета

Наименование предмета

1

Математика

2

Физика

3

Химия

4

Иностранный язык

5

Алгоритмические языки

На основании информации из этих структур необходимо получить отчет, вид которого представлен в таблице 2.3.

Таблица 2.3 - Выходная таблица

Номер группы

Наименование предмета

Оценка

Количество оценок в группе

Т28-Т210

Математика

4

1

Физика

3

1

5

1

Алгоритмические языки

2

1

3

2

Т28-Т211

Математика

5

1

2.3 Ограничения на входные и выходные данные

Согласно учебному плану, студенты сдают в сессию не более 5-6 экзаменов, кроме того, академические группы насчитывают максимум 25-30 студентов. Положим, что при постановке эти ограничения были конкретизированы следующим образом:

а) количество различных предметов у одной академической группы не превышает 5;

б) число студентов в группе не превышает 25 человек;

в) еще одним ограничением является диапазон оценок. Очевидно, оценка может принимать значения 2, 3, 4, 5;

г) кроме того, номеру предмета может быть поставлено в соответствие некоторое наименование, если номер предмета из файла F1 совпадает с одним из номеров предметов файла F2;

д) корректная справочная информация в файле F2 должна удовлетворять следующему условию: номера предметов и соответствующие им наименования должны быть уникальными, то есть разным номерам предметов не могут соответствовать одинаковые наименования и один и тот же номер не может быть присвоен двум или более наименованиям предметов.

Перечисленные ограничения должны быть учтены при разработке алгоритма решения задачи и внешних спецификаций программы. Кроме того, при дальнейшем изложении методики разработки программы предполагается, что записи в файле F1 упорядочены по номеру группы. При выполнении работы студенты могут либо сразу создавать текстовым редактором отсортированный файл, либо могут осуществить его программную сортировку, что, естественно, будет только приветствоваться.

2.4 Структурирование целей разрабатываемой программы

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

Корректность информации структуры2 следует проверять до совместной обработки структуры 1 и 2. Более того, в случае её некорректности есть смысл решение задачи обработки прекратить до устранения всех ошибок в файле F2. Следовательно, эту функцию выделим из задачи обработки, как относительно самостоятельную, и назовем её “проверка на корректность файла F2”.

При совместной обработке структур должны проверяться условия ‘в’ и ‘г’. Результатом совместной обработки и проверки условий ‘в’ и ‘г’ должно быть формирование записи в выходной таблице либо сообщение, предупреждающее об ошибке в информации структуры 1.

Следует отметить, что условия ‘а’ и ‘б’ могут быть проверены лишь после того, как обработаны все записи структуры относящиеся к одной академической группе. В случае, если ограничения выполняются, никаких действий не требуется. Если же ограничения не выполняются, то рекомендуется выдать в выходной таблице предупреждающие сообщения о нарушении ограничений. Эти действия подводят итог обработки данных, относящихся к одной академической группе.

Назовем соответственно эти функции “формирование строк выходной таблицы” и “подведение итогов обработки данных одной академической группы” и приведем структуру целей разрабатываемой программы ( рисунок 3.1).

Совместная обработка 2-х структур

Подведение итогов обработки данных 1-ой группы

Проверка на корректность структуры2

Формирование строк выходной таблицы

Рисунок 2.1 -Структура целей программы

2.5 Внешние спецификации функций разрабатываемой программы

Внешние спецификации функций разрабатываемой программы строятся в соответствии с описанной в п. 1.1.2 методикой построения таблиц решений.

Функция ‘проверка на корректность структуры2’ должна выявлять возможную неуникальность номеров или наименований предметов и в случае обнаружения такой ситуации заканчивать обработку. Это словесное описание выполняемой функции формализуется в виде ТР, приведенной в таблице 2.4.

Напомним, что в ТР буква “Д” в программе соответствует ситуации, когда логическая переменная принимает значение TRUE, соответственно Н - логическая переменная принимает значениеFALSE. Цифрами отмечаются те действия, которые должны быть выполнены при истинности или ложности проверяемых условий, причем значение указывает порядок выполнения в программе соответствующих операторов. Черточкой “-“ отмечены те условия, которые в соответствующей комбинации не проверяются.

Таблица 2.4 - ТР для функции “проверка на корректность файла F2”

Условия

1

2

3

4

5

Имеют ли 2 разных предмета одинаковые номера?

Н

Д

Н

-

-

Присвоены ли 2 разных номера одному предмету?

Н

Н

Д

-

-

Просмотрены все записи файла F2?

Н

Н

Н

Д

Д

Обнаружена некорректность F2?

-

-

-

Д

Н

Действия

Выдать сообщение 1 ‘2-м предметам’ <имя1, имя2> ‘присвоен один номер’ <N>

1

Выдать сообщение 2 ‘предмету’ <имя> ‘присвоены 2 разных номера’ <N1,N2>

1

Установить признак некорректности

2

2

Занести запись из файла в таблицу TAB

1

Продолжить обработку

2

3

3

1

Выдать сообщение 3 ‘внесите исправления в F2’

1

Прекратить обработку

2

В выдаваемых программой сообщениях в ограничителях ‘<>’ указаны те элементы сообщения, которые должны быть заменены соответствующим наименованием предмета (имя, имя1, имя2) или номером предмета (N,N1,N2) из структуры2.

Содержанием функции ‘формирование строк выходной таблицы’ является проверка ограничений 3, 4 пункта 2.3 и формирование списка предметов для функции ‘подведение итогов обработки данных одной академической группы’. Соответствующая ТР приведена в таблице 2.5.

Таблица 2.5 - ТР для функции “формирование строк выходной таблицы”

Условия

1

2

3

4

5

6

7

Оценка в интервале [2,5]?

Д

Д

Н

Н

Д

Д

-

Существует () вTABномер предмета, совпадающий с номером предмета из файлаF1?

Д

Д

-

-

Н

Н

-

в списке предметов номер предмета, совпадающий с номером предмета изF1?

Н

Д

-

-

-

-

-

Просмотрены все записи файла F1, относящиеся к одной академической группе?

Н

Н

Н

Д

Н

Д

-

Просмотрены все записи файла F1?

Н

Н

Н

Н

Н

Н

Д

Действия

Выдать сообщение 4 ‘оценка не в диапазоне [2,5]’

1

1

Выдать сообщение 5 ‘не найдено наименование, соответствующее номеру предмета’ <N>

1

1

Записать номер предмета в список

1

Добавить 1 к общему количеству оценок по текущему предмету

2

1

Выполнить функцию ‘подведение итогов обработки данных одной академической группы’

2

2

1

Очистить список

3

3

Продолжить обработку

3

2

2

4

2

4

Закончить обработку

2

Отметим, что столбцы 4 и 6 таблицы 2.5 отражают такую ситуацию, когда ошибка обнаруживается в первой записи, относящейся к академической группе, а столбцы 3 и 5 - когда ошибочная запись не является первой записью среди данных одной академической группы. Кроме того, записи, в которых обнаруживается ошибка (неправильно указана оценка или номер предмета), в дальнейшем не обрабатываются, поэтому не исключена ситуация, когда в одной академической группе не будет обнаружено ни одной правильной записи.

Сформированный список обрабатывается функцией ‘подведение итогов обработки данных одной академической группы’. Причем очевидно, что если в списке больше 5 предметов, то нарушается ограничение ‘а’ из пункта 2.3, а если общее количество оценок больше 25, то нарушается ограничение ‘б’ из пункта 2.3. ТР для этой функции приводится в таблице 2.6.

Таблица 2.6 - ТР функции ‘подведение итогов обработки данных одной академической группы’

Условия

1

2

3

4

5

Количество предметов в списке больше 1?

Д

Н

Д

Д

Д-

Количество предметов в списке меньше 6?

Д

-

Д

Н

Н

Общее число оценок по предмету <=25?

Д

-

Н

Д

Н

Действия

Выдать сообщение 6 ‘в группе’ <номер группы> ‘ни одна запись не расшифрована’

1

Выдать сообщение 7 ‘в группе’ <номер группы> ‘больше 5 предметов’

1

1

Выдать сообщение 8 ‘в группе’ <номер группы> ‘по предмету’ <имя> ‘больше 25 оценок’

1

2

Закончить функцию

1

2.6 Рекомендации по кодированию программы

При достаточно большой практике работы с общесистемным и прикладным программным обеспечением можно заметить, что одни программные продукты более ‘дружественны’ пользователю, другие - менее. Так, сообщения транслятора об ошибке в программе, сформулированные на английском языке, очень часто приводят студентов в замешательство, особенно тех, кто изучал другой иностранный язык. Это пример того, как не нужно писать свои программы. Практический вывод, который студент может сделать и самостоятельно, таков:

- сообщения, формируемые программой, должны быть лаконичны, но содержать всю необходимую для принятия решения информацию.

Так, если при проверке структуры 2 на корректность при неуникальности номеров или наименований предметов программист предусмотрит выдачу сообщения ‘В структуре2 обнаружена ошибка’, то при большом объеме информации в файле найти конкретную ошибку будет не так просто, ведь из сообщения непонятно, надо ли искать одинаковые номера или одинаковые наименования предметов. Поэтому рекомендуем обратить внимание на приведенные в данном методическом пособии таблицы решений 2.4- 2.6, в которых демонстрируются примеры подробных сообщений об обнаруженных ошибках.

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

- программа должна принимать от пользователя любые данные, однако, если введенная информация не является допустимой, программа должна информировать об этом пользователя.

Кодирование программы обработки, соответствующей заданию на курсовую работу, может быть выполнено на языке программирования Си.

2.7 Тестирование программы

Согласно изложенной в 2.2.3 методики тестирования спецификаций необходимо разработать как минимум один тест на каждый столбец таблиц решений 2.4- 2.6, т.е. всего 17 тестов. Полное тестирование приводить вряд ли имеет смысл из-за его громоздкости, поэтому ограничимся двумя тестами, на которых продемонстрируем примеры изложения в отчете целей и результатов тестирования.

2.7.1 Тестирование функции ‘проверка на корректность структуры 2

Цель теста: проверить функционирование программы при неуникальных номерах предметов.

Содержание теста: структура 2 включает записи, приведенные в таблице 2.7.

Таблица2.7 - Содержание файла F2.

Номер предмета

Наименование предмета

1

Математика

2

Физика

2

Химия

4

Иностранный язык

5

Алгоритмические языки

Ожидаемый результат: сообщение ‘2-м предметам физика, химия присвоен один номер 2’.

Фактический результат: совпадает с ожидаемым.

Результат тестирования: неуспешный.

2.7.2 Тестирование функции ‘формирование строк выходной таблицы’

Цель теста: проверить функционирование программы при несовпадении номеров предметов в структурах 1 и 2.

Содержание теста отражено в таблицах 2.8, 2.9.

Таблица2.8 - Содержание структуры 2.

Номер предмета

Наименование предмета

1

Математика

2

Физика

3

Химия

4

Иностранный язык

5

Алгоритмические языки

Таблица 2.9 - Содержание структуры1.

ФИО студента

Номер группы

Номер предмета

Оценка

Иванов И.И.

Т28-Т210

2

3

Сидоров С.А.

Т28-Т210

5

2

Смирнов А.А.

Т28-Т210

2

5

Петрова М.С.

Т28-Т210

6

3

Иванов И.И.

Т28-Т210

5

3

Петров П.В.

Т28-Т210

1

5

Иванов И.И.

Т28-Т210

1

4

Ожидаемый результат представляет собой выходной документ на экране дисплея, содержание которого приведено между горизонтальными линиями ниже.

__________________________________________________________________

Номер группы

Наименование предмета

Оценка

Количество оценок в группе

Т28-Т210

Математика

4

1

Физика

3

1

5

1

Алгоритмические языки

2

1

3

1

Т28-Т211

Математика

5

1

Не найдено наименование, соответствующее номеру предмета 6

Фактический результат: совпадает с ожидаемым.

Результат тестирования: неуспешный.