6.2. СИСТЕМЫ ИЗ ОТДЕЛЬНЫХ ПРОГРАММ

6.2. СИСТЕМЫ ИЗ ОТДЕЛЬНЫХ ПРОГРАММ

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

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

Уже в конце 70-х годов этим способом можно было быстро реализовать весьма удобный ввод данных в программу. Применительно к более поздней операционной системе MS DOS достаточно было написать текстовый файл maket.txt с текстами пояснений сути данных и символом "?" обозначить поля вводимых данных. Далее готовился командный файл с последовательностью команд:

1) удаление файла work.txt с диска;

2) копирование файла maket.txt в файл work.txt;

3) запуск готовой программы текстового редактора с параметром work.txt;

4) запуск программы пользователя обработки данных (входная информация программы — файл work.txt, выходная информация программы — файл result.txt);

5) запуск готовой программы просмотра текстовых файлов с параметром result.txt.

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

Если надо реализовать меню выбора отдельных программ, то невозможно обойтись последовательным вызовом команд командного файла. Для этого случая можно написать программу, которая визуализирует меню на экране и возвращает номер выбранного пользователем меню операционной системе. Возвратить номер выбранной темы меню можно вызовом подпрограммы Halt (номер_мен) модуля DOS Turbo Pascal, где номер_мен — значение выбранного номера темы меню.

Далее, используя команды DOS, организуйте вызов нужных программ командным файлом:

IF ERRORLEVEL 2 GOTO ITEM2

IF ERRORLEVEL 1 GOTO ITEM1

……………………..

:ITEM1

……………………..

:ITEM2

……………………..

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

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

Хотя проектирование систем из отдельных программ выполняется, по крайней мере, последние 30 лет, но не выработано никакой методики, кроме не особенно полезного совета: изобразите функциональную схему процесса, а затем разбейте процесс на программы.