Внешние спецификации функций разрабатываемой программы
Как было упомянуто в п. 1.1.2, существует множество способов специфицирования программного обеспечения. Курсовой работой предполагается освоение спецификаций с помощью таблиц решений и схем работы системы и программ. Правила построения таблиц решений описаны в п. 1.1.2 настоящей методики, названные выше схемы строятся согласно ГОСТ 19.701-90 и описаны в /10/.
Приступая к разработке спецификаций следует помнить следующие положения проектирования программы:
- программа должна выполнять требуемую функцию обработки над всеми входными данными и, если входные данные не позволяют продолжить обработку без однозначной трактовки результатов, в программах следует предусматривать аварийный выход или исключать из дальнейшей обработки некорректные данные;
- программа не должна прекращать работу сразу же после первой выявленной ошибки в исходных данных, необходимо проверить всю информацию, относящуюся к одной структуре данных;
- сообщения программы об ошибках должны подчиняться принципу единообразия и, кроме того, быть настолько информативными, чтобы входные ошибочные данные можно было легко отыскать среди большого объема данных.
2.5.1. Таблицы решений для функций программы.Функция “проверка на корректность файла F2” должна выявлять возможную неуникальность номеров или наименований предметов и в случае обнаружения такой ситуации заканчивать обработку. Это словесное описание выполняемой функции формализуется в виде ТР, приведенной в таблице 2.4.
Напомним, что в ТР буква “Д” соответствует в программе такой ситуации, когда логическая переменная принимает значение TRUE, соответственно “Н” - логическая переменная принимает значение FALSE. Черточкой “-“ отмечены те условия, которые в соответствующей комбинации не проверяются.
Таблица 2.4
Таблица решений для функции “проверка на корректность файла F2”
Условия | ||||||
Имеют ли 2 разных предмета одинаковые номера? | Н | Д | Н | Н | - | - |
Присвоены ли 2 разных номера одному предмету? | Н | Н | Д | Н | - | - |
Номер предмета содержит только цифры? | Д | Д | Д | Н | - | |
Просмотрены все записи файла F2? | Н | Н | Н | Н | Д | Д |
Обнаружена некорректность F2? | - | - | - | - | Д | Н |
Действия | ||||||
Выдать сообщение 1 ‘2-м предметам <имя1, имя2> присвоен один номер <N>’ | ||||||
Выдать сообщение 2 ‘предмету <имя> присвоены 2 разных номера <N1,N2>’ | ||||||
Выдать сообщение 3 ‘номер <N> предмета <имя> нечисловой’ | ||||||
Установить признак некорректности | ||||||
Занести запись из файла в таблицу TAB | ||||||
Продолжить обработку F2 | ||||||
Выдать сообщение 3 ‘внесите исправления в F2’ | ||||||
Прекратить обработку | ||||||
Перейти к следующей функции |
Цифрами отмечаются те действия, которые должны быть выполнены при истинности или ложности проверяемых условий, причем значение указывает порядок выполнения в программе соответствующих операторов.
Примечание: не рекомендуются такие формулировки условий в ТР, которые содержат отрицание или частицу “не”, т.к. ответы на такие вопросы “да” и “нет” допускают неоднозначное толкование. Например, формулировка первого условия в ТР 2.4 в виде “нет двух разных номеров у одного предмета?” при отрицательном ответе воспринимается как “нет нет двух разных номеров у одного предмета”.
В выдаваемых программой сообщениях в ограничителях “<>” указаны те элементы сообщения, которые должны быть заменены соответствующим наименованием предмета (имя, имя1, имя2) или номером предмета (N, N1, N2) из файла F2.
Обратите внимание: столбцы таблицы отражают возможные ситуации при анализе одной записи из файла. Пока не достигнут конец файла, признак некорректности не проверяется. Это обстоятельство продиктовано необходимостью проверки всей информации из файла, что приведет к выявлению и печати сообщений обо всех ошибках в справочном файле F2. Если проверять признак некорректности до достижения конца файла, сообщение об ошибке будет выдано при первой обнаруженной ошибке. После первой ошибки в данных программа прекратит работу, что при наличии нескольких ошибок приведет к необходимости многократного запуска программы, причем при каждом запуске будет обнаруживаться одна ошибка и выдаваться предложение пользователю исправить очередную ошибку в справочной файле F2.
Содержанием функции “формирование строк выходной таблицы” является проверка ограничений на значения оценок (значения в интервале от 2 до 5) и на совпадение значений номеров предметов в файлах F1 и F2 (ограничения “в” и “г”, описанные в п. 2.3). На эту же функцию возлагается формирование списка предметов, которые сдают студенты одной академической группы. Соответствующая ТР приведена в таблице 2.5.
Отметим, что столбцы 4 и 6 таблицы 2.5 отражают такую ситуацию, когда ошибка обнаруживается в первой записи, относящейся к академической группе, а столбцы 3 и 5 - когда ошибочная запись не является первой записью среди данных одной академической группы. Кроме того, записи, в которых обнаруживается ошибка (неправильно указана оценка или номер предмета), в дальнейшем не обрабатываются, поэтому не исключена ситуация, когда в одной академической группе не будет обнаружено ни одной правильной записи.
Таблица 2.5
Таблица решений для функции “формирование строк выходной таблицы”
Условия | |||||||
Оценка в интервале [2,5]? | Д | Д | Н | Н | Д | Д | - |
Существует ( ) в TAB номер предмета, совпадающий с номером предмета из файла F1? | Д | Д | - | - | Н | Н | - |
в списке предметов номер предмета, совпадающий с номером предмета из F1? | Н | Д | - | - | - | - | - |
Просмотрены все записи файла F1, относящиеся к одной академической группе? | Н | Н | Н | Д | Н | Д | - |
Просмотрены все записи файла F1? | Н | Н | Н | Н | Н | Н | Д |
Действия | |||||||
Выдать сообщение 4 ‘оценка не в диапазоне [2,5]’ | |||||||
Выдать сообщение 5 ‘не найдено наименование, соответствующее номеру предмета’ <N> | |||||||
Записать номер предмета в список | |||||||
Добавить 1 к общему количеству оценок по текущему предмету | |||||||
Выполнить функцию ‘подведение итогов обработки данных одной академической группы’ | |||||||
Очистить список | |||||||
Продолжить обработку | |||||||
Закончить обработку |
Функция “формирование строк выходной таблицы” формирует список предметов одной академической группы и общее количество отличных, хороших, удовлетворительных и неудовлетворительных оценок по каждому предмету. Сформированный список обрабатывается функцией “подведение итогов обработки данных одной академической группы”. Причем очевидно, что если в списке больше 5 предметов, то нарушается ограничение “а” из пункта 2.3, а если общее количество оценок больше 25, то нарушается ограничение “б” из пункта 2.3. ТР для этой функции приводится в таблице 2.6.
Таблица 2.6
Таблица решений для функции “ подведение итогов обработки данных одной академической группы ”