Обмен данными в программах с блочной структурой

АПР предполагает выполнение последовательности программ с соответствующими интерфейсами. В результате работы каждой программы появляются новые данные, которые должны быть добавлены к базе данных. Большая часть этих данных используется далее другими программами программной цепочки без анализа или модификации их человеком. Широко распространено мнение, что хорошим решением является объединение таких последовательностей в замкнутый блок, который посте получения начальных данных выдает лишь окончательный результат (блочно-структурированный подход при разработке систем). Однако далее станет ясно, что такой подход не всегда приемлем или полезен. Сначала отметим, что для передачи данных из одной программы (или процесса, или блока) Р1 другой программе Р2 интерфейс должен быть описан в блоке, содержащем эти программы. Аналогично все другие интерфейсы также должны быть описаны в блоке, содержащем программы. Применяя обозначения, принятые в языке Паскаль, можно записать: Однако такое решение неудовлетворительно по следующим причинам: 1. Если известно, что для завершения процесса АПР потребуются месяцы или даже годы, то, очевидно, мы не можем ждать, пока схема данных, которые должны быть переданы от программы PN к программе PLAST, будет определена до начала выполнения программ PI и Р2. В начале работы неизвестно даже, как будет выглядеть программа PLAST. 2. Нет достаточных оснований для предоставления процессу АПР сведений о схеме всех передаваемых данных, если он должен запрашивать или модифицировать только часть этих данных. Наоборот, детали схем передаваемых данных должны быть скрыты от процесса более высокого уровня во избежание случайного изменения данных. 3. В приведенном выше примере с описанием данных связано выделение ресурсов для их представления, например объем памяти. Таким образом, в этом примере ресурсы, выделенные для передаваемых данных, были бы предоставлены на все время, даже если бы необходимость в них возникала только в некоторых точках программы, генерирующей эти данные, и некоторых точках программы, принимающей эти данные. Такое использование ресурсов нерационально.

Releated Post

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.