Как следует из /10/, схема работы системы отражает процесс выполнения программы, а также взаимодействие с пользователем и данными. Из этой схемы пользователю должно быть понятно, в какой последовательности выполняются функции разрабатываемого программного обеспечения, на каких носителях информации представляются входные, промежуточные и выходные данные для каждой функции и как пользователь будет получать информацию о ходе выполнения функций. Причем подробная детализация действий (функций) в этой схеме не требуется.
Схема работы системы для рассматриваемой нами задачи совместной обработки двух файлов приведена на рисунке 2.2.
Согласно рис 2.2, текстовое описание схемы работы системы может быть следующим.
Первой в системе выполняется функция “проверка на корректность файла F2”.Если этой функцией обнаруживается неуникальность номеров предметов или наименований предметов, предусматривается аварийное завершение программы с выдачей пользователю сообщения о необходимости внесения исправлений в справочный файл F2. Такого рода ошибки в справочном файле будем считать фатальными, так как в дальнейшем они могут привести к неоднозначному толкованию входных данных. Такие ошибки требуют вмешательства пользователя и не могут быть исправлены программно, поскольку неизвестно, какой из двух одинаковых кодов предметов является неверным. Другие ошибки, например, наличие нечислового номера предмета или наличие двух одинаковых записей, не могут вызывать неоднозначной интерпретации входных данных, поэтому для них предусмотрим выдачу сообщения об ошибке и исключим такие записи из дальнейшего рассмотрения.
При отсутствии фатальных ошибок после проверки на корректность файла F2 выполняются сначала функция “формирование строк выходной таблицы”, а затем “подведение итогов обработки данных одной академической группы”. Поскольку возможные ошибки в исходных данных файла F1 не могут приводить к неоднозначной интерпретации данных, о таких ошибках выдаются сообщения и записи исключаются из обработки, но выполнение программы не прерывается.
Приведенную схему работы системы следует понимать так: в процессе обработки данные из файлов на магнитных дисках преобразуются в таблицы (массивы записей) в оперативной памяти (таблицы t1 и t2), при наличии ошибок в данных из файлов выдаются сообщения об ошибках, результат обработки представляется на экране дисплея (таблица F3). Если разработанная Вами программа осуществляет иные преобразования информации, Ваша схема работы системы должна выглядеть несколько иначе, чем приведенная на рис. 2.2.
Рис. 2.2. Схема работы системы
Типичная ошибка студентов при разработке такой схемы заключается в том, что студенты приводят последовательно символы данных, что нужно понимать так, как будто преобразования данных из одного вида в другой осуществляются без участия процессора (действия в процессоре отображаются во всех видах схем символами процесса). Это является грубой ошибкой, входные данные должны соединяться входными линиями с символами процесса, а выходные – выходными линиями с теми же символами процесса.
Обозначение “предопределенный процесс” на схеме работы системы (в нашем варианте такими процессами являются все функции: проверка на корректность F2, формирование строк выходной таблицы, подведение итогов обработки данных) предполагает детализацию этих преобразований в виде схем программ. При разработке этих схем обратите особое внимание на ограничение в использовании символов: в схемах программ не используются символы данных, кроме единственного символа “данные без определения носителя”, который в схемах программ понимается как “читать данные” или “писать данные”. Обращаю Ваше внимание на то, что при проверке корректности кодов или наименований типовой конструкцией в программе является цикл в цикле, посредством которой можно получить доступ к двум разным записям в таблице и сравнить их. Фрагмент схемы программы для такой конструкции приводится на рисунке 2.3.
Фрагмент схемы программы приведен для случая, когда количество записей в таблице данных в оперативной памяти известно. Как правило, это количество подсчитывается программно при перенесении записей с магнитного диска в оперативную память. В нашем варианте подсчитанное количество записей хранится в переменной N. Если в оперативной памяти записи сохраняются в виде списковой структуры, то в символах конца цикла необходимо записать “пока не конец списка”, поскольку в таких структурах существует признак окончания структуры.
Установка переменной Flag = FALSE является отражением факта некорректности в данных, далее в программе эта переменная будет использоваться в решении продолжать или прекращать обработку данных.
I=1, I=I+1
J=1, J=J+1
да
нет
Номер предмета в нет
I-той записи равен
номеру предмета в
J-той записи?
да
J=N
I=N
Рис. 2.3 Фрагмент схемы программы
Обратите внимание, как в схемах используются комментарии и проводятся входящие и исходящие линии для символов. В ГОСТ 19.701-90 /10/ одно из ограничений касается линий соединения символов: линии в схемах должны подходить к символу либо слева либо сверху, а исходить либо справа, либо снизу и, кроме того, линии должны быть направлены к центру символа.