Основные компоненты ПО САПР.Варианты организации ПО САПР разнообразны и зависят от многих факторов, главными из которых являются:
1) предметная область, аспекты и уровни создаваемых с помощью ПО описаний проектируемых объектов;
2) степень автоматизации отдельных проектных операций и процедур;
3) архитектура и состав технических средств, режим функционирования;
4) ресурсы, отпущенные на разработку ПО.
В качестве основного рассмотрим вариант организации ПО одноуровневой САПР, поясняемый рис. 1.10. Программное обеспечение САПР делится на составные части, которые относятся к проектирующим и обслуживающим подсистемам САПР и в дальнейшем именуются подсистемами ПО.
К обслуживающим подсистемам ПО относятся: диалоговая ЦП, управления базами данных СУБД, инструментальная ИП, а также монитор, обеспечивающий взаимодействие всех остальных подсистем и управление их выполнением.
Рис. 1.10. Архитектура специального программного обеспечения САПР:
Диалоговая подсистема ПО организует интерактивное взаимодействие пользователя САПР с управляющей и проектирующими подсистемами ПО, подготовку и редактирование исходных данных, просмотр результатов работы проектирующих подсистем, функционирующих впикетном режиме.
Подсистема управления базами данных СУБД реализует единообразный доступ к общей базе данных (БД) САПР и к индивидуальным БД пользователей. Назначение БД следующее: 1) хранение сведений нормативно-справочного характера (о нормалях, ГОСТах, унифицированных изделиях, типовых проектных решениях, ранее выполненных разработках и т. д.); 2) хранение результатов выполненных этапов текущего проекта; 3) обеспечение информационной согласованности различных подсистем САПР.
■ Примечание. Эти аспекты использования рассматриваются в гл. 2 и 3.
Инструментальная подсистема программирования, основу которой составляет генератор прикладных программ, синтезирующий новые программы из унифицированных модулей и подпрограмм, разработанных пользователем, необходима для достижении открытости ПО САПР. Генератор прикладных программ включает в себя также средства автоматической разработки трансляторов для входных языков проектирующих подсистем САПР.
■ Примечание. Использование генераторов прикладных программ как одного из мощных средств разработки ПО рассматривается в § 1.3.
Проектирующие подсистемы ПО могут быть объектно-зависимыми (проблемно-ориентированными) пли объектно-независимыми (методоориентированными, инвариантными). Объектно-независимые подсистемы ПО ориентированы на решение задач проектирования при наличии их предварительно выполненной математической постановки (например, подсистемы параметрической
оптимизации, решения систем уравнений в частных производных и систем обыкновенных дифференциальных уравнений и др.). Использование объектно-независимых подсистем ПО менее эффективно, поскольку в них не учитывается специфика задач конкретной предметной области и требуется достаточно высокая математическая подготовка пользователя. Такие подсистемы предназначены для решения задач, для которых в составе САПР отсутствуют соответствующие проблемно-ориентированные подсистемы. Кроме того, они составляют основу для генерации проблемно-ориентированных подсистем ПО.
Проектирующими подсистемами ПО могут быть простые программы, ориентированные на узкий класс объектов и использующие простые аналитические модели. Но чаще проектирующие подсистемы ПО представляют собой универсальные пакеты прикладных программ сложной структуры, обладающие своими мониторами, локальными базами данных и средствами их управления, поэтому ниже наряду с термином «проектирующая подсистема ПО» будем использовать и другой термин — «проектирующий пакет ПО». Некоторые из таких пакетов могут реализовывать не только отдельные проектные операции и процедуры, но и законченные их маршруты, а также допускать множественный доступ (т. е. работу одновременно с несколькими пользователями), в последнем случае они должны иметь свои локальные средства поддержки диалогового взаимодействия.
■ П р и м е ч а н и е. В гл. 5 рассматриваются принципы построения проектирующих подсистем на примере программного комплекса автоматизации схемотехнического проектирования.
Подсистема интерактивной машинной графики ПИМГ (рис. 1.10) занимает промежуточное положение между проектирующими и обслуживающими подсистемами ПО. С одной стороны, средства машинной графики обслуживают ряд проектирующих подсистем (обычно это пакеты функционального проектирования), где они используются в основном для наглядного представления исходной и выходной информации (в виде схем, временных диаграмм, гистограмм и т. д.). С другой стороны, во многие подсистемы конструкторского проектирования ПО интерактивной машинной графики входит как основная часть. Поэтому в САПР возможно наличие нескольких пакетов машинной графики (базового в качестве обслуживающего и одного или более в составе проектирующих подсистем конструирования).
Рис. 1.11. Схема размещения специального программного обеспечения САПР в оперативной памяти
Характерная черта рассмотренной архитектуры ПО САПР — строгая разграниченность проектирующих и обслуживающих подсистем. Такой подход к построению 110 обеспечивает, во-первых, 1-го легкую расширяемость и модифицируемость и, во-вторых, переносимость на иные технические средства, поскольку все машинно-зависимые программные компоненты локализованы в обслуживающих подсистемах. Недостатком сосредоточения обслуживающих функций в отдельных подсистемах является сложность в организации к ним множественного доступа.
Программное обеспечение САПР ориентировано на раздельное редактирование всех его подсистем и их динамическую загрузку в ОП но мере надобности. На рис. 1.11 показано распределение доступной зоны ОП при функционировании ПО такой структуры. Монитор и диалоговая подсистема ПО резидентны, т. е. постоянно находятся в ОП. В смежную с ними область динамически загружаются обслуживающие и проектирующие подсистемы ПО, при этом обслуживающие подсистемы занимают участки памяти с меньшими адресами. Оставшаяся не занятой область памяти может быть использована для размещения данных. Динамическая структура ПО по сравнению с оверлейной структурой, требующей совместного редактирования всех подсистем ПО, характеризуется легкостью расширения и модификации, а также значительной экономией ОП. Однако для динамической структуры необходимы дополнительные затраты на организацию взаимодействия проектирующих и обслуживающих подсистем.
Монитор САПР.Управление ходом вычислительного процесса и координация взаимодействия подсистем САПР осуществляются монитором. Те же задачи, но в рамках отдельных пакетов, решаются мониторами этих пакетов. I! функции мониторов входят:
1) прием и интерпретация обращенных к ним команд пользователя;
2) загрузка и активизация компонентов ПО, организация маршрутов их выполнения;
2) установление взаимодействия между подсистемами;
3) динамическое распределение памяти;
4) обработка прерываний от дисплея пользователя;
5) сервисные функции (регистрация пользователей, сбор статистики, ведение службы времени, обработка сбоев и т. д.).
Язык управления монитором САПР достаточно прост, в его основе лежат команды вызова необходимых проектирующих подсистем ПО и задания им управляющих параметров, а также команды, описывающие способ информационного обмена между подсистемами — через оперативную или внешнюю память, посредством подсистемы управления базой данных. Средства этого языка должны позволять создавать макрокоманды, определяющие маршруты выполнения проектирующих подсистем ПО. Языки управления проектирующих пакетов значительно сложнее, поскольку должны отражать все возможные постановки задач проектирования в конкретных предметных областях, решение которых допускают пакеты. Обычно эти языки имеют процедурный характер (см. § 5.3).
В общем случае загруженные проектирующие подсистемы ПО могут функционировать либо как обычные подпрограммы, подчиненные управляющей подсистеме ПО, либо как «параллельно» выполняемые подзадачи, способные соревноваться между собой и монитором за управление. Функционирование нескольких пакетов одновременно в качестве подзадач оправдано только в случаях, когда каждый из них в отдельности не способен загрузить процессор ЭВМ и «распараллеливание» не сказывается на эффективности и удобстве работы каждого из пользователей. Очевидно, что при этом каждая из проектирующих подсистем ПО должна иметь свою локальную подсистему диалогового взаимодействия. Создание подзадач — один из способов обеспечения множественного доступа пользователей к САПР, однако его реализация значительно усложняет управляющую подсистему: во-первых, возникает задача динамического распределения ресурсов ЭВМ; во-вторых, появляется потребность в механизме, разрешающем каким-либо образом конфликты в работе подзадач. Такие конфликты могут возникнуть, например, при одновременном обращении нескольких проектирующих пакетов к подсистеме управления базой данных. Конфликты могут быть устранены использованием очередей запросов к СУБД, в которых запросы на обслуживание подсистем ПО базой данных располагаются в порядке поступления и приоритетности.
Для обеспечения доступа к одной проектирующей подсистеме ПО нескольким пользователям может быть попользован более экономичный в смысле затрат ОП способ, основанный на реализации основных программных компонентов пакета реентерабельными.
■ Примечание. Этот способ еще более сложен, чем предыдущий, но его применение в подсистемах, ориентированных на интенсивный диалог с пользователем, дает значительный эффект (если, конечно, речь идет об ЭВМ с небольшим объемом ОП).
Взаимодействие подсистем.Взаимодействие управляющей подсистемы ПО и мониторов проектирующих пакетов осуществляется через стандартный интерфейс, представляющий собой формальные правила передачи фактических параметров. В проектирующие подсистемы ПО передаются:
параметры, задающие режим функционирования;
адреса точек входа в обслуживающие подсистемы ПО;
адреса динамически распределенных областей памяти, предназначенных для информационного обмена между различными подсистемами ПО.
Каждый проектирующий пакет, входящий в состав САПР, имеет паспорт, хранящийся в базе данных САПР. Паспорт содержит следующие сведения о проектирующем пакете: 1) размер занимаемой области ОП; 2) имена требуемых обслуживающих подсистем ПО; 3) имена режимных параметров и их значения по умолчанию; 4) имя языка программирования, в стандарте которого пакет использует представление структур данных; 5) местонахождение в пакете обработчика прерываний от дисплея пользователя (если он предусмотрен); 6) указатели на возможные способы обмена информацией с другими проектирующими подсистемами ПО (через ОП, базу данных или файловую систему ЭВМ) и т. д.
Монитор САПР, получив команду на активизацию какой-либо проектирующей подсистемы ПО, считывает из базы данных ее паспорт, проверяет корректность команды и возможность загрузки подсистемы. Далее он помещает в ОП необходимые обслуживающие подсистемы ПО (если их там еще нет), вслед за ними — требуемую проектирующую подсистему, а затем в строгом соответствии с данными из паспорта строится обращение к этой подсистеме. После окончания работы подсистемы она удаляется из ОП.
Некоторые проектирующие подсистемы ПО для решения задач высокой размерности требуют больших затрат машинного времени и ОП, например задачи анализа сложных динамических объектов, их параметрическая оптимизация, синтез тестов для цифровых устройств, трассировка печатных плат и т.д. Использование интерактивного режима на этапе «счета» таких задач нецелесообразно, но он необходим на подготовительных стадиях и при интерпретации результатов. Для таких случаев в составе ПО САПР необходимо иметь обслуживающую подсистему образования фоновых заданий. Если САПР функционирует на вычислительной установке, имеющей связь с другими ЭВМ, то такая подсистема должна обеспечивать возможность передачи фоновых заданий на одну из этих ЭВМ. После завершения фонового задания его результаты могут быть просмотрены и обработаны пользователем средствами проектирующей подсистемы ПО, породившей это задание.
Важной функцией управляющей подсистемы САПР и мониторов проектирующих пакетов является динамическое распределение ОП, необходимое всегда, когда пакет предназначен для работы с данными переменного объема.
Монитор САПР выделяет ОП для обеспечения информационного обмена между подсистемами; мониторы пакетов делают это по запросам модулей пакета, если средства языка, применявшегося для их программирования, недостаточны для эффективного использования ОП.
Средства динамического распределения памяти — обязательные компоненты всех современных операционных систем (ОС) и имеются во многих языках программирования (за исключением языков ФОРТРАН и КОБОЛ).
Для эффективной работы коллектива пользователей необходим множественный доступ к САПР. Выше были рассмотрены два способа организации одновременной работы нескольких пользователей, однако для обоих способов характерно то, что активизация заданий пользователей происходит в хаотическом порядке и на неопределенное время.
■ Примечание. Хаотический порядок активизации заданий сказывается на скорости реакции проектирующих пакетов на команды пользователей и, следовательно, на удобстве работы.
Эту проблему решает режим разделения времени, но его реализация средствами прикладного ПО САПР представляет собой сложную задачу. Более целесообразна реализация режима разделения времени с помощью общего программного обеспечения — соответствующих ОС ЭВМ.
Рассмотренный вариант архитектуры ПО САПР сравнительно прост, он пригоден для создания САПР средних размеров. Крупные промышленные САПР, функционирующие на сетях ЭВМ, имеют сложные, распределенные по ЭВМ мониторы, специальные обслуживающие подсистемы информационного обмена, управления технологическим оборудованием, планирования и управления ходом проекта. Такие САПР интегрированы с автоматизированными системами научных исследований, технологической подготовки производства, испытаний и с гибкими автоматизированными производствами. Их ПО отражает специфику конкретных предметных областей, -принятые в них маршруты проектирования и структуру имеющихся на предприятии технических средств.