Программное обеспечение САПР
Программное обеспечение (ПО) совместно с информационным являются звеньями, связывающими все виды обеспечения САПР в единую систему проектирования.
К программному обеспечению САПР предъявляется ряд системных требований, от степени удовлетворения которых в значительной мере зависит эффективность всей системы автоматизированного проектирования, а именно требование эффективной программной реализации алгоритмов, требование информационной согласованности программ друг с другом и с системой управления базы данных, требование модульности и наращиваемости ПО САПР.
Программное обеспечение САПР состоит из двух составных частей — общего и специального ПО. Общее ПО предназначено для планирования и организации процесса выполнения прикладных программ и определяется существующей номенклатурой операционных систем и комплексов программ технического обслуживания. Специальное ПО представляет собой пакеты прикладных программ, реализующих алгоритмы выполнения проектных операций и процедур. Эти прикладные программы необходимы группе пользователей, занимающихся автоматизированным проектированием в конкретной проблемной области.
Функции и состав общего программного обеспечения. Под операционной системой (ОС) ЭВМ понимают комплект системных программ, управляющих всеми ресурсами системы: оперативной памятью, временем работы процессора, каналами обмена данными и периферийными устройствами, программными модулями и др. Рассмотрим функции и состав ОС ЭВМ. ОС ЭВМ предназначена для автоматизации обработки данных в вычислительных системах, построенных на основе моделей ЭВМ. ЭВМ увеличивает пропускную способность вычислительной системы; уменьшает время реакции системы и повышает надежность ее функционирования. Это достигается благодаря непрерывной обработке потоков заданий, их размещению в системных очередях, предварительному планированию и инициированию выполнения очередных заданий.
Основными компонентами ОС ЭВМ являются управляющие и обрабатывающие программы.
Управляющие программы ОС ЭВМ. Управляют вычислительным процессом, реализуют функции управления задачами, заданиями и данными следят за выполнением обрабатывающих программ и прикладных программ, составленных пользователем.
Программа управления, задачами (супервизор) управляет всем ходом вычислительного процесса в ЭВМ и предназначена для наблюдения и управления всеми задачами в системе. Супервизор выделяет задачам необходимые ресурсы для их решения в одно- или мультипрограммном режиме.
В однопрограммном режиме образуется только одна задача, в рамках которой выполняются как программы ОС, так и программы пользователей, при этом все технические средства ЭВМ находятся в распоряжении этой задачи.
При необходимости одновременного решения нескольких не зависящих друг от друга задач супервизор реализует либо мультипрограммный режим, либо режим разделения времени. В этом случае супервизор производит переключение с решения одной задачи на решение другой, осуществляет динамическое распределение памяти и других ресурсов ЭВМ, обрабатывает через систему прерываний поступающие запросы.
Одновременное выполнение нескольких задач в мультипрограммном режиме достигается благодаря тому, что при их выполнении всегда возникают паузы, связанные с ожиданием завершения операции ввода и вывода, с истечением заданного интервала времени, с ожиданием дополнительных данных для продолжения выполнения программы и др. На период ожидания выполнение данной задачи откладывается и процессор переходит к выполнению следующей задачи и т. д. Для оператора эти программы выполняются одновременно, при этом ОС обеспечивает динамическое распределение памяти и возможность работы по приоритету со многими задачами и заданиями.
Программы управления заданиями (планировщик заданий и главный планировщик) выполняют функции планирования вычислительного процесса. Задание представляет собой внешнюю независимую единицу работы, выполняемой ОС. Задания состоят из пунктов или шагов, связанных между собой прямо или косвенно. Выполнение одного пункта задания это выполнение некоторой обрабатывающей программы.
Управление прохождением одного или нескольких заданий через вычислительную систему осуществляют программы управления заданиями. Планируя структуру задания, программист может использовать любые программы, которые включены в библиотеку ОС. Перед обработкой задание объединяется с другими, образуя один входной пакет заданий. Планировщик состоит из планировщика заданий и главного планировщика.
Планировщик заданий подготавливает задания для выполнения и планирует их выполнение последовательно или с учетом приоритетов. Главный планировщик устанавливает связь оператора с ОС, выводит сообщения на консоль оператора и вводит с консоли его команд.
Язык управления заданиями содержит девять типов операторов: задания (JOB), исполнительный (EXEC), описания данных (DD), командный, разделительный, пустой, процедуры (PROC), конца процедуры (PEND), комментариев. Эти операторы имеют соответствующие параметры, которые позволяют планировщику заданий регулировать выполнение заданий и пунктов заданий, отыскивать и размещать данные, распределять ресурсы ввода/ вывода, а главному планировщику — осуществлять связь с оператором вычислительной системы.
Программы управления данными предназначены для организации хранения, поиска данных и обмена данными между оперативной памятью и внешними устройствами.
Операционная система ЭВМ допускает четыре типа организации данных: последовательную, индексно-последовательную, прямую и библиотечную.
При последовательной организации наборов данных записи подвергаются обработке в порядке, совпадающем с их физической последовательностью на внешнем носителе информации.
Индексно-последовательная организация представляет возможность адресоваться непосредственно к записи без считывания предыдущих записей или без информации о расположении данной записи.
Прямая организация наборов данных допускает возможность произвольной обработки записей.
Наборы данных с библиотечной организацией состоят из последовательно организованных разделов, каждый из которых имеет свое имя.
Последовательные наборы данных могут быть организованы на любом внешнем носителе, а остальные вышеперечисленные способы организации наборов данных — только на устройствах прямого доступа (магнитных дисках или барабанах).
Все имеющиеся в системе наборы данных зарегистрированы в каталоге системы. Каталогизация позволяет обращаться к наборам данных только по имени, уменьшает степень ручного вмешательства в процессы идентификации и хранения информации, сводит к минимуму ошибки обслуживающего персонала. Каталог системы устроен подобно оглавлению библиотеки и расположен в устройствах прямого доступа.
Обрабатывающие программы. Служат для подготовки прикладных программ к исполнению на ЭВМ. Подготовка к исполнению включает в себя трансляцию исходной программы, ее редактирование и загрузку. К обрабатывающим программам относятся трансляторы с основных алгоритмических языков (ФОРТРАН, ПЛ/1, ПАСКАЛЬ, АЛГОЛ и др.), редактор связей, программы отладки и вспомогательные программы (утилиты).
Трансляторы предназначены для перевода текста исходных программ (модулей) на машинный язык, построения объектного модуля в форме, удобной для его последующей обработки, вывода на печать листингов исходных программ, а также диагностического сообщения о лексических, синтаксических и семантических ошибках.
Объектный модуль представляет собой последовательность машинных команд. Он не содержит стандартных подпрограмм, необходимых для работы программы пользователя. Исходный модуль в простейшем случае размещается на перфокартах, а объектный модуль и промежуточные наборы данных — на магнитных дисках. Для организации машинной реализации к объектному модулю необходимо добавить недостающие стандартные программы.
Эту работу называют редактированием, а соответствующую программу — редактором связей или просто редактором. Недостающие стандартные программы редактор связей берет из библиотеки стандартных подпрограмм. Редактор создает из объектного модуля и стандартных подпрограмм загрузочный модуль, который может рассматриваться в качестве выполняемой машинной программы. Загрузка загрузочного модуля в оперативную память для непосредственного исполнения осуществляется программой выборки.
После получения загрузочного модуля происходит выполнение программы пользователя. В процессе выполнения программы ОС контролирует ее выполнение, а результаты контроля выводит на алфавитно-цифровое печатающее устройство. Взаимосвязь функционирования обрабатывающих программ в ОС ЭВМ представлена на рис. 8.33.
К обрабатывающим программам относятся также программа сортировки-объединения для организации расположения информации во внешней памяти, программы-утилиты для преобразования набора данных и редактирования его записей, для копирования набора данных с носителя на носитель, перегруппировки записей и упорядочения массивов для распечатки сведений об имеющихся в библиотеках программах и данных и др.
Операционная система имеет модульную структуру, которая позволяет приспосабливать систему к конкретным конфигурациям используемых технических средств. Процесс создания конкретной структуры ОС, учитывающей особенности конфигурации ЭВМ и задач потребителя, называют генерацией системы.
Функции и состав специального программного обеспечения. В состав программного обеспечения САПР входят пакеты прикладных программ (ППП), ориентированные на решение определенных задач проектирования и реализуемые как надстройка над ОС. Основу ППП составляет множество программных модулей, каждый из которых является программой реализации определенной проектной процедуры либо программой реализации некоторого алгоритма (или фрагмента алгоритма) проектирования.
Специальное ПО САПР может иметь собственную ОС или же использовать одну из базовых ОС ЭВМ. Программное обеспечение с собственной ОС имеет сложную структуру. В состав такого ПО входят универсальный или специализированный монитор САПР, организующий вычислительный процесс в соответствии с принятым алгоритмом проектирования; транслятор или интерпретатор с входного языка; набор программных модулей, составляющих тело ППП; набор обслуживающих программ и т. п. Типовая структура ПО САПР представлена на рис. 8.34.
Обращение к специальному ПО реализуется в форме запроса, который содержит требования к выполнению проектных процедур и исходные данные для проектирования. Последовательность подключения программных модулей для выполнения проектных процедур определяется программой-монитором САПР. Взаимосвязь отдельных программных модулей обеспечивает возможность организации сложных маршрутов проектирования.
Непосредственную реализацию проектных процедур производят с помощью программных модулей. Каждый программный модуль в свою очередь может разделяться на более мелкие модули. В подобной структуре должны быть четко определены функции каждого программного модуля. Программы специального ПО группируются в ППП, каждый из которых проблемно ориентирован на обслуживание задач отдельных подсистем САПР. Поэтому в состав ППП входят как программные модули, ориентированные на реализацию узкоспециализированных проектных процедур и, как правило, создаваемые разработчиками конкретных САПР, так и модули общего назначения (оптимизации, математических моделей используемых элементов и т. п.). Модули общего назначения иногда называют библиотечными модулями.
В соответствии с алгоритмом проектирования для каждого нового объекта и маршрута его проектирования автоматически составляются рабочие программы. В зависимости от требований ТЗ и конкретных условий па каждом этапе разработки могут использоваться различные маршруты проектирования и соответственно различные рабочие программы.
Связь программных модулей осуществляется с помощью буферных файлов. В САПР используется два типа буферных файлов — рабочие и результатов проектирования. В рабочих файлах запоминается информация о структуре проектируемого объекта, типе и параметрах составляющих его элементов, в файле результатов накапливаются результаты автоматизированного проектирования, которые после обработки документируются и выводятся на устройства отображения информации.
Модульная структура ПО САПР позволяет легко наращивать функциональные возможности системы путем расширения набора программных модулей и их модификаций, а также позволяет пользователю легко развивать систему.
Многообразие языков программирования, сложность проектных процедур и разнообразие вариантов маршрутов проектирования требуют концентрации усилий разработчиков специального ПО САПР. Цикл разработки программного обеспечения включает в себя: анализ требований, предъявляемых к САПР; определение точного описания функций и проектных процедур (спецификаций), реализуемых с помощью ПО; разработку алгоритмов реализации функций, проектных процедур; программных модулей с использованием алгоритмических языков высокого уровня и методов структурного программирования; тестирование программ; эксплуатацию и сопровождение.
На первом этапе разработки ПО определяются требования, выполнение которых позволяет получить требуемое решение поставленной проблемы. Анализ требований способствует лучшему пониманию проблемы и компромиссных ситуаций, что помогает выбору наилучшего решения.
На этапе определения спецификаций задаются структура входных и выходных данных, возможные типы проектных процедур и маршрутов проектирования. Чем детальнее разработаны проектные процедуры и маршруты проектирования, тем меньше вероятность возникновения ошибок и тем легче организовать информационный интерфейс между программными модулями.
При организации разработки ПО целесообразно структуру пакета прикладных программ разбивать на отдельные по возможности независимые части таким образом, чтобы ответственность за реализацию каждой такой части можно было возложить либо на одного разработчика, либо на группу. При этом для каждой части ППП должны быть сформулированы предъявляемые к ней требования: реализуемые проектные процедуры, размерность и др.
Проверку корректности ПО и его отладку производит на этапе тестирования. Тестирование подразделяют на три стадии: автономное, комплексное и системное. При автономном тестировании каждый программный модуль проверяют с помощью данных, подготавливаемых программистом. Модуль, прошедший автономное тестирование, подвергают комплексному тестированию, при котором проверяют отдельные группы программных модулей. В результате комплексного тестирования возможно обнаружение ошибок, пропущенных при автономном тестировании. При системном тестировании испытывают ППП с помощь независимых тестов.
Практика разработки ПО показывает, что наибольшее число ошибок связано с разработкой информационного интерфейса. Большие трудности возникают при разработке интерфейса между программными модулями, написанными разными программистами. Поскольку число таких интерфейсов при N исполнителях составляет N(N—1)/2 и возрастает пропорционально квадрату числа исполнителей, проблема становится весьма сложной при разработке ПО группой из нескольких человек, так как взаимодействие программистов друг с другом снижает производительность их труда и требует дополнительных затрат на тестирование. Решение вопросов унификации и стандартизации должно быть основополагающим при разработке специального ПО САПР.
Мониторы и языковые процессоры. К наиболее сложным программам САПР относятся мониторы ППП и языковые процессоры.
Монитор — это управляющая программа диалогового взаимодействия пользователя с комплексом технических средств САПР. В функции монитора входит: управление работой программного канала обмена с периферийными устройствами; создание различных режимов работы комплекса технических средств и управление ими; загрузка абсолютных программ (загрузочных модулей, настроенных на конкретные адреса) и управление ходом их выполнения; выбор программных модулей в соответствии с маршрутом проектирования; настройка связей выбранных программных модулей; распределение памяти и т. д.
Языковые процессоры предназначены для преобразования информации, выраженной на входном языке, в рабочую программу. Они могут генерировать рабочую программу способами компиляции или интерпретации, их соответственно называют компиляторами и интерпретаторами.
Компилятор осуществляет лексический и синтаксический анализ для трансляции программы с языка высокого уровня, выполняет основную работу по составлению объектной программы — генерирует объектные модули и команды обращения к библиотечным модулям, а также формирует управляющие предложения для редактора связей относительно состава используемых объектных модулей для формирования загрузочного модуля.