Cтраница 2
Проверка программы выполняется следующим образом. На основании функционального теста составляются таблицы имитации для всех обрабатывающих модулей. Проектировать таблицы удобно в виде матрицы, в первом столбце которой записываются последовательные значения поля SOSMAS, а в остальных столбцах - значения элементов таблиц имитации для каждого из модулей. В каждой строке такой матрицы будут заполнены только два элемента - в столбце SOSMAS и для одного из модулей. Если окажется, что функциональный тест не позволяет проверить всех путей управляющего модуля, его надо расширить. [16]
Пакеты простой структуры - библиотеки стандартных подпрограмм, обращение к которым производится из программ, составляемых программистами. Некоторые из ППП этого типа построены таким образом, что параметры для обрабатывающих модулей передаются из управляющего модуля, который составляется программистом. В этом случае последовательность выполнения модулей и их параметры жестко зашиты в данном управляющем модуле. Но существуют также ППП, обрабатывающие модули которых организуют ввод параметров с перфокарт. [17]
На предприятиях массового производства предполагается использовать ПР, если объект производства меняют через 2 - 3 года или осваивают ТП, принципиально нереализуемый при участии человека. В общем случае ГАП включает в себя следующие элементы: систему автоматизированного проектирования ( САПР), состоящую из автоматизированных рабочих мест ( АРМ) для исследователей, конструкторов и технологов; АРМ организационно-экономического планирования и диспетчерского управления; автоматические склады заготовок, инструмента и готовой продукции; автоматические обрабатывающие модули, состоящие их технологического оборудования с ПР и микро - ЭВМ; автоматические транспортные системы для заготовок, инструментов, технологических отходов и готовой продукции; центральную ЭВМ. [18]
![]() |
Пример расчета методом конечных разностей в программном комплексе ГАММА. [19] |
Программный комплекс ГАММА является примером программных комплексов второй группы. Обрабатывающие модули, составляющие комплекс, позволяют решать разнообразные задачи аэрогидродинамики. [20]
Единообразие организации обрабатывающих модулей позволяет создать их типовой имитатор. Напомним, как работает обрабатывающий модуль. Перед обращением к обрабатывающему модулю вызывающая его программа формирует значения параметров состояния выходных массивов этого модуля, которые определяют задание модулю по обработке им входной информации. За получение необходимой ему входной информации отвечает сам модуль. После того как задание выполнено, формируются значения параметров состояния выходных массивов, соответствующие фактически полученным результатам. Перечень допустимых значений каждого параметра состояний также фиксирован. В качестве вызывающих программ могут выступать либо управляющие модули, либо обрабатывающие. [21]
Функциональную часть пакета, или его тело, составляет совокупность обрабатывающих модулей, непосредственно реализующих алгоритмы преобразования исходных данных задачи в форму результатов. [22]
Пакеты первой группы - пакеты с произвольной последовательностью обращения к модулям - являются дальнейшим развитием пакетов с автономными программами. Функции управления пакетом сосредотачиваются в специальных модулях, образующих управляющую программу. Используется входной язык пакета, обеспечивающий задание требуемой последовательности обращений к обрабатывающим модулям. [23]
Пакетная прикладная задача предназначена для ввода информации в БД. Входные данные вводятся с любого носителя в фиксированном формате. Процессор пакетных прикладных задач организует считывание входных данных, их интерпретацию и вызов обрабатывающих модулей, которые осуществляют контроль, редактирование и загрузку входной информации. Данные, не прошедшие контроль, задерживаются в специальной области словаря данных, откуда могут быть впоследствии извлечены для корректировки и повторного ввода. Процесс ввода подробно документируется в стандартных протоколах. [24]
В качестве примера составления проекта программы испоть-зуем задачу PRIMER, исходное описание которой подробно рассматривалось в конце гл. Пусть в нашем распоряжении имеется точько одно устройство печати, операционная система не выполняет буферизацию выходных потоков и массив ошибок ожидается небольшим, что позволяет накапливать его в буферной памяти соответствующего обрабатывающего модуля вплоть до завершения печати отчета. На рис. 4.3 показана укрупненная структура программы PRIMER. Модуль обработки одного массива здесь реализуется схемой преобразования одного не строго упорядоченного входного массива с контролем его упорядоченности и без выходного буфера. [25]
Пакеты простой структуры - библиотеки стандартных подпрограмм, обращение к которым производится из программ, составляемых программистами. Некоторые из ППП этого типа построены таким образом, что параметры для обрабатывающих модулей передаются из управляющего модуля, который составляется программистом. В этом случае последовательность выполнения модулей и их параметры жестко зашиты в данном управляющем модуле. Но существуют также ППП, обрабатывающие модули которых организуют ввод параметров с перфокарт. [26]
Поля для размещения элементов входных и выходных массивов должны иметь имена, отличающиеся от имен файлов. Чтобы сохранить это соответствие, полям входных, выходных и промежуточных массивов присвоили те же имена, что и массивам, но добавили в конце имени символ X. Все эти поля используются обычно двумя обрабатывающими модулями и поэтому описываются в главном управляющем модуле. Описываются эти поля как структуры, на втором уровне которых описываются реквизиты. [27]
Все остальные ( обрабатывающие) модули заменяются имитаторами. Благодаря принятым соглашениям о единообразном оформлении модулей появилась возможность разработки несложного унифицированного имитатора, легко настраиваемого на замену любой процедуры семантической обработки. На основании функционального теста, расширенного для проверки количественных характеристик данных, содержащихся в исходном описании, и логики работы управляющих модулей составляются таблицы тестирования для синхронизации работы имитаторов. После проверки правильности управляющих модулей выполняется последовательное подключение обрабатывающих модулей вместо соответствующих имитаторов. При этом осуществляется окончательная проверка правильности настройки обрабатываемых модулей и написания вычислительных операций. Роль среды для проверяемых модулей играют проверенные модули верхнего уровня ( управляющие) и смежные обрабатывающие модули, имитаторы непроверенных модулей и полный тест данных. [28]
Поля для размещения буферных областей и отрезки сравнения занимают промежуточное положение между обрабатываемыми данными и внутренними переменными программы. С одной стороны, это вспомогательные поля, используемые в процессе работы программы. С другой стороны, в них хранятся копии обрабатываемых данных и поэтому их описание должно быть согласовано с описанием обрабатываемых данных. Так как эти поля локализованы в рамках какого-либо одного обрабатывающего модуля, то и их описание размещается в этих модулях. Это дает возможность дать этим полям полностью или частично фиксированные имена. Так, имена отрезков сравнений фиксированы в каждой типовой схеме. [29]
Сюда относятся переменные, выполняющие роль переключателей, счетчиков, признаков. При этом имена всех таких переменных будем начинать с символа L, что обеспечит уменьшение опасности дублирования имен переменных и обрабатываемых данных, а при длине переменных 15 бит присвоение выбранного типа по умолчанию. С точки зрения конструирования имен эти переменные могут быть разделены на следующие группы: переменные, локализованные в управляющих модулях; переменные локализованные в обрабатывающих модулях и не зависящие от работы с конкретными входными или выходными массивами; переменные, локализованные в обрабатывающих модулях и связанные с конкретными массивами. Первая группа переменных должна иметь имена, состоящие из трех символов: L ( признак переменной), знак подчеркивания ( признак принадлежности управляющему модулю), отличительный символ переменной. Знак подчеркивания не используется в других именах, что исключает ошибочное дублирование имен при написании управляющих модулей. [30]