Программное обеспечение САПР

Программное обеспечение (ПО) совместно с информацион­ным являются звеньями, связывающими все виды обеспечения САПР в единую систему проектирования.

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

Программное обеспечение САПР состоит из двух состав­ных частей — общего и специального ПО. Общее ПО предна­значено для планирования и организации процесса выполне­ния прикладных программ и определяется существующей но­менклатурой операционных систем и комплексов программ технического обслуживания. Специальное ПО представляет собой пакеты прикладных программ, реализующих алгоритмы выполнения проектных операций и процедур. Эти прикладные программы необходимы группе пользователей, занимающихся автоматизированным проектированием в конкретной про­блемной области.

Функции и состав общего программного обеспечения. Под опе­рационной системой (ОС) ЭВМ понимают комплект системных программ, управляющих всеми ресурсами системы: оператив­ной памятью, временем работы процессора, каналами обмена данными и периферийными устройствами, программными мо­дулями и др. Рассмотрим функции и состав ОС ЭВМ. ОС ЭВМ предназначена для автоматизации обработки данных в вычис­лительных системах, построенных на основе моделей ЭВМ. ЭВМ увеличивает пропускную способность вычислительной системы; уменьшает время реакции системы и повышает на­дежность ее функционирования. Это достигается благодаря не­прерывной обработке потоков заданий, их размещению в сис­темных очередях, предварительному планированию и иниции­рованию выполнения очередных заданий.

Основными компонентами ОС ЭВМ являются управляющие и обрабатывающие программы.

Управляющие программы ОС ЭВМ. Управляют вычислитель­ным процессом, реализуют функции управления задачами, зада­ниями и данными следят за выполнением обрабатывающих про­грамм и прикладных программ, составленных пользователем.

Программа управления, задачами (супервизор) управляет всем ходом вычислительного процесса в ЭВМ и предназначена для наблюдения и управления всеми задачами в системе. Супер­визор выделяет задачам необходимые ресурсы для их решения в одно- или мультипрограммном режиме.

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

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

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

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

Управление прохождением одного или нескольких заданий через вычислительную систему осуществляют программы управ­ления заданиями. Планируя структуру задания, программист мо­жет использовать любые программы, которые включены в библи­отеку ОС. Перед обработкой задание объединяется с другими, образуя один входной пакет заданий. Планировщик состоит из планировщика заданий и главного планировщика.

Планировщик заданий подготавливает задания для выполне­ния и планирует их выполнение последовательно или с учетом приоритетов. Главный планировщик устанавливает связь опера­тора с ОС, выводит сообщения на консоль оператора и вводит с консоли его команд.

Язык управления заданиями содержит девять типов операто­ров: задания (JOB), исполнительный (EXEC), описания данных (DD), командный, разделительный, пустой, процедуры (PROC), конца процедуры (PEND), комментариев. Эти операторы имеют соответствующие параметры, которые позволяют планировщику заданий регулировать выполнение заданий и пунктов заданий, отыскивать и размещать данные, распределять ресурсы ввода/ вывода, а главному планировщику — осуществлять связь с опера­тором вычислительной системы.

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

Операционная система ЭВМ допускает четыре типа организа­ции данных: последовательную, индексно-последовательную, прямую и библиотечную.

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

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

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

Наборы данных с библиотечной организацией состоят из последовательно организованных разделов, каждый из которых имеет свое имя.

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

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

Обрабатывающие программы. Служат для подготовки при­кладных программ к исполнению на ЭВМ. Подготовка к испол­нению включает в себя трансляцию исходной программы, ее ре­дактирование и загрузку. К обрабатывающим программам отно­сятся трансляторы с основных алгоритмических языков (ФОРТРАН, ПЛ/1, ПАСКАЛЬ, АЛГОЛ и др.), редактор связей, программы отладки и вспомогательные программы (утилиты).

Трансляторы предназначены для перевода текста исходных программ (модулей) на машинный язык, построения объектного модуля в форме, удобной для его последующей обработки, выво­да на печать листингов исходных программ, а также диагности­ческого сообщения о лексических, синтаксических и семанти­ческих ошибках.

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

Эту работу называют редактированием, а соответствующую про­грамму — редактором связей или просто редактором. Недостаю­щие стандартные программы редактор связей берет из библиотеки стандартных подпрограмм. Редактор создает из объектного модуля и стандартных подпрограмм загрузочный модуль, который может рассматриваться в качестве выполняемой машинной программы. Загрузка загрузочного модуля в оперативную память для непос­редственного исполнения осуществляется программой выборки.

После получения загрузочного модуля происходит выполне­ние программы пользователя. В процессе выполнения програм­мы ОС контролирует ее выполнение, а результаты контроля вы­водит на алфавитно-цифровое печатающее устройство. Взаимо­связь функционирования обрабатывающих программ в ОС ЭВМ представлена на рис. 8.33.

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

Операционная система имеет модульную структуру, которая позволяет приспосабливать систему к конкретным конфигураци­ям используемых технических средств. Процесс создания конк­ретной структуры ОС, учитывающей особенности конфигурации ЭВМ и задач потребителя, называют генерацией системы.

Функции и состав специального программного обеспечения. В со­став программного обеспечения САПР входят пакеты приклад­ных программ (ППП), ориентированные на решение определен­ных задач проектирования и реализуемые как надстройка над ОС. Основу ППП составляет множество программных модулей, каждый из которых является программой реализации определен­ной проектной процедуры либо программой реализации некото­рого алгоритма (или фрагмента алгоритма) проектирования.

Специальное ПО САПР может иметь собственную ОС или же использовать одну из базовых ОС ЭВМ. Программное обеспече­ние с собственной ОС имеет сложную структуру. В состав такого ПО входят универсальный или специализированный монитор САПР, организующий вычислительный процесс в соответствии с принятым алгоритмом проектирования; транслятор или интер­претатор с входного языка; набор программных модулей, состав­ляющих тело ППП; набор обслуживающих программ и т. п. Ти­повая структура ПО САПР представлена на рис. 8.34.

Обращение к специальному ПО реализуется в форме запроса, который содержит требования к выполнению проектных проце­дур и исходные данные для проектирования. Последовательность подключения программных модулей для выполнения проектных процедур определяется программой-монитором САПР. Взаимо­связь отдельных программных модулей обеспечивает возмож­ность организации сложных маршрутов проектирования.

Непосредственную реализацию проектных процедур произ­водят с помощью программных модулей. Каждый программный модуль в свою очередь может разделяться на более мелкие моду­ли. В подобной структуре должны быть четко определены функ­ции каждого программного модуля. Программы специального ПО группируются в ППП, каждый из которых проблемно ориен­тирован на обслуживание задач отдельных подсистем САПР. По­этому в состав ППП входят как программные модули, ориенти­рованные на реализацию узкоспециализированных проектных процедур и, как правило, создаваемые разработчиками конкрет­ных САПР, так и модули общего назначения (оптимизации, ма­тематических моделей используемых элементов и т. п.). Моду­ли общего назначения иногда называют библиотечными модулями.

В соответствии с алгоритмом проектирования для каждого нового объекта и маршрута его проектирования автоматически составляются рабочие программы. В зависимости от требований ТЗ и конкретных условий па каждом этапе разработки могут ис­пользоваться различные маршруты проектирования и соответс­твенно различные рабочие программы.

Связь программных модулей осуществляется с помощью бу­ферных файлов. В САПР используется два типа буферных фай­лов — рабочие и результатов проектирования. В рабочих файлах запоминается информация о структуре проектируемого объекта, типе и параметрах составляющих его элементов, в файле резуль­татов накапливаются результаты автоматизированного проекти­рования, которые после обработки документируются и выводят­ся на устройства отображения информации.

Модульная структура ПО САПР позволяет легко наращивать функциональные возможности системы путем расширения набо­ра программных модулей и их модификаций, а также позволяет пользователю легко развивать систему.

Многообразие языков программирования, сложность проек­тных процедур и разнообразие вариантов маршрутов проектиро­вания требуют концентрации усилий разработчиков специального ПО САПР. Цикл разработки программного обеспечения включа­ет в себя: анализ требований, предъявляемых к САПР; определение точного описания функций и проектных процедур (специ­фикаций), реализуемых с помощью ПО; разработку алгоритмов реализации функций, проектных процедур; программных моду­лей с использованием алгоритмических языков высокого уровня и методов структурного программирования; тестирование про­грамм; эксплуатацию и сопровождение.

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

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

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

Проверку корректности ПО и его отладку производит на эта­пе тестирования. Тестирование подразделяют на три стадии: ав­тономное, комплексное и системное. При автономном тестиро­вании каждый программный модуль проверяют с помощью дан­ных, подготавливаемых программистом. Модуль, прошедший автономное тестирование, подвергают комплексному тестирова­нию, при котором проверяют отдельные группы программных модулей. В результате комплексного тестирования возможно об­наружение ошибок, пропущенных при автономном тестирова­нии. При системном тестировании испытывают ППП с помощь независимых тестов.

Практика разработки ПО показывает, что наибольшее число ошибок связано с разработкой информационного интерфейса. Большие трудности возникают при разработке интерфейса между программными модулями, написанными разными программис­тами. Поскольку число таких интерфейсов при N исполнителях составляет N(N—1)/2 и возрастает пропорционально квадрату числа исполнителей, проблема становится весьма сложной при разработке ПО группой из нескольких человек, так как взаимодействие программистов друг с другом снижает производитель­ность их труда и требует дополнительных затрат на тестирование. Решение вопросов унификации и стандартизации должно быть основополагающим при разработке специального ПО САПР.

Мониторы и языковые процессоры. К наиболее сложным програм­мам САПР относятся мониторы ППП и языковые процессоры.

Монитор — это управляющая программа диалогового взаимо­действия пользователя с комплексом технических средств САПР. В функции монитора входит: управление работой программного канала обмена с периферийными устройствами; создание раз­личных режимов работы комплекса технических средств и управ­ление ими; загрузка абсолютных программ (загрузочных моду­лей, настроенных на конкретные адреса) и управление ходом их выполнения; выбор программных модулей в соответствии с мар­шрутом проектирования; настройка связей выбранных програм­мных модулей; распределение памяти и т. д.

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

Компилятор осуществляет лексический и синтаксический анализ для трансляции программы с языка высокого уровня, вы­полняет основную работу по составлению объектной програм­мы — генерирует объектные модули и команды обращения к библиотечным модулям, а также формирует управляющие пред­ложения для редактора связей относительно состава используе­мых объектных модулей для формирования загрузочного модуля.