Программное обеспечение САПР ТП – совокупность программ на носителях данных и программных документов, предназначенных для ее отладки, эксплуатации и проверки работоспособности . Программное обеспечение включает все программы и эксплуатационную документацию к ним, необходимые для автоматизированного проектирования ТП.
Физически в состав программного обеспечения входят документы с текстами программ; программы, записанные на машинных носителях информации; эксплуатационные документы. Программы и документы предназначены для всех средств вычислительной техники, эксплуатирующейся в составе САПР ТП. Составляющие программного обеспечения САПР, а также требования к его разработке и документированию регламентированы ГОСТ 23501.101 – 87 «Системы автоматизированного проектирования. Основные положения».
Различают системное и прикладное (специализированное) программное обеспечение. Системной называют программу, предназначенную для поддержания работоспособности системы обработки информации или повышения эффективности ее использования. Системное программное обеспечение содержит набор программных средств, способствующих повышению эффективности использования вычислительных комплексов САПР ТП и производительности труда персонала, обслуживающего эти комплексы.
К основным функциям системного программного обеспечения относят:
· управление процессом вычислений;
· ввод, вывод и частично обработка информации;
· диалоговая взаимосвязь с пользователем в процессе проектирования;
· решение общематематических задач;
· хранение, поиск, сортировка и модификация данных, необходимых при проектировании, защита их целостности и защита от несанкционированного доступа;
· контроль и диагностика вычислительного комплекса.
Три первых и последнюю из указанных функций реализуют в современных вычислительных комплексах операционные системы.
Операционная система –совокупность программ, управляющих ходом выполнения рабочих программ и использованием всех ресурсов вычислительного комплекса.
Для решения общематематических задач (например, решения алгебраических или дифференциальных уравнений, преобразования матриц, задач оптимизации и т.д.) в состав системного программного обеспечения включают соответствующие библиотеки стандартных программ. Для хранения и использования различных данных применяют СУБД.
Прикладное (специализированное) программное обеспечение включает прикладные программы и пакеты прикладных программ, основной функцией которых является формирование проектных решений. Прикладной называют программу, предназначенную для решения задачи или класса задач, в определенной области применения системы обработки информации.
Систему прикладных программ, предназначенную для решения задач определенного класса называют пакетом прикладных программ.
В САПР ТП пакеты прикладных программ, как правило, применяют для выполнения конкретных проектных процедур, например, выбора оборудования, инструмента; определения режимов обработки и т.д. Прикладное программное обеспечение создают с учетом возможностей системного.
В целом состав и структура программного обеспечения определяются составом и структурой САПР ТП и ее подсистем. Программное обеспечение – столь же важное и необходимое средство автоматизации проектирования как и технические (аппаратные) средства (вычислительная техника, сетевое и периферийное оборудование). Однако, в отличие от технических средств, являющихся универсальным инструментарием, используемым в одинаковом или почти одинаковом составе в различных видах САПР, прикладное программное обеспечение является оригинальным инструментом автоматизации и отражает всю специфику конкретной системы.
При создании программного обеспечения САПР ТП учитывают факторы, влияющие на выбор структуры и эффективность системы в целом: стоимость разработки и развития в процессе эксплуатации программного обеспечения САПР ТП; параметры технического комплекса САПР ТП и системного программного обеспечения; круг пользователей САПР ТП и др. Учитывают требования адаптируемости компонентов программного обеспечения к различным конфигурациям компьютеров и их операционным системам; расширение и обновление; обеспечение контроля и диагностики; обеспечение различных режимов работы системы.
Программное обеспечение –основной и по значимости, и по трудоемкости разработки объект при создании САПР ТП. Большое значение для организации эффективной работы и определения возможностей, предоставленных вычислительным комплексом пользователю, имеет операционная система.
Операционные системы обеспечивают высокий уровень производительности вычислительного комплекса, позволяя программисту:
· делить задачу на части, кодировать каждую часть на языке, наиболее для нее подходящем, и затем объединить их в готовую к выполнению программу;
· делить большую программу на секции с тем, чтобы уменьшить потребность в основной памяти;
· автоматизировать процесс отладки программ;
· помещать готовые к выполнению программы в системную библиотеку и получать доступ к этим программам с помощью символических запросов;
· выполнять программу непосредственно после ее трансляции либо запоминать результат трансляции;
· использовать стандартные процедуры ввода-вывода для работы с данными.
Основными компонентами операционных систем являются управляющие и обрабатывающие программы, а также сервисные (обеспечивающие и тестово-диагностические) программы (рисунок 5.4).
Рисунок 5.4 – Структура программного обеспечения САПР ТП
Управляющие программы реализуют функции управления заданиями, ходом выполнения программ и данными. Они следят за выполнением обрабатывающих и прикладных программ, составленных пользователем. В состав управляющих программ входят программы управления:
· задачами (супервизор), управляет всем ходом вычислительного процесса;
· заданиями, подготавливает систему для выполнения пакета заданий;
· данными, осуществляет передачу данных между основной памятью и внешними устройствами;
· восстановлением системы, используется при переходе системы от одних режимов работы к другим.
Управляющие программы осуществляют первоначальную загрузку оперативной памяти и управление всей работой системы.
К обрабатывающим программам относят трансляторы с алгоритмических языков (Object Pascal, C++ и др.).
В операционной системе программа, написанная на алгоритмическом языке, транслируется в объектный модуль, поэтому специфика исходного языка программирования после трансляции теряется. Для того чтобы получить программу, готовую к выполнению, объектный модуль должен быть обработан редактором связей. Результат работы редактора связей называется абсолютным, или загрузочным модулем. Загрузочный модуль может собираться из независимо протранслированных частей (объектных модулей) и подпрограмм, хранящихся в библиотеках.
Операционная система содержит следующие сервисные программы: редактор связей – обеспечивает получение программы, готовой к исполнению компьютером; сортировка-объединение (библиотекарь) – обеспечивает корректировку и обслуживание библиотек системы; программы проверки внешних устройств, копирования информации с носителя на носитель, перегруппировки и упорядочения записи, составления отчетов на ПОЯ и др.
Операционная система имеет модульную структуру, позволяющую приспосабливать ее к конкретным конфигурациям технических средств в САПР ТП. Отдельные программные компоненты операционной системы, а также конкретные функции управляющей программы могут включаться в систему по желанию пользователя. Процесс создания конкретной структуры операционной системы, учитывающей особенности технических средств и задач пользователя, называют генерацией системы. Средства генерации системы представляют собой совокупность программы и правил, позволяющих пользователю сгенерировать операционную систему для своих конкретных целей.
Наиболее распространенными семействами современных операционных систем являются Windows, Windows NT, UNIX/Linux.
Семейство Windows представляет распространенные пользовательские операционные системы (Windows 95/98/ME). Они сочетают в себе удобство, простоту и скорость работы. Вместе с тем надежность этих операционных систем не всегда удовлетворительна, что недопустимо при эксплуатации программных комплексов промышленного назначения, реализуемых на их основе. В связи с этим указанные операционные системы постепенно вытесняются системами других семейств.
Операционные системы Windows NT сочетают в себе удобство и простоту использования Windows и стабильность серверных операционных систем. Представителями этого семейства являются Windows NT 4.0, Windows 2000, Windows XP, Windows NET Server.
Существуют и различные версии операционных систем. В частности, Windows XP выпущена в нескольких модификациях, например, Windows XP Home Edition, Windows XP Professional и Windows XP 64-Bit Edition. Windows XP Home предназначена для пользователей Windows 2000 или Windows NT. Хотя Windows XP Home Edition и Windows XP Professional базируются на одном и том же ядре, ориентированная на применение в сфере бизнеса Windows XP Professional обладает более расширенной функциональностью и надежностью.
UNIX–одна из наиболее старых, и тем не менее, очень производительная и надежная система. Для персональных компьютеров используют ее варианты Linux, FreeBSD, OpenBSD, которые становятся все более популярными благодаря традиционной для UNIX скорости и отказоустойчивости, а также дешевизне и открытости исходных текстов программ, составляющих систему. Варианты UNIXприменяются чаще всего для больших машин, серверов, и популярны среди системных администраторов и разработчиков программного обеспечения.
Как и любая другая программа, операционная система, написанная для одной аппаратной платформы компьютера, не может быть непосредственно запущена на компьютере аппаратно несовместимой платформы. Программа, разработанная для операционной системы одного семейства, довольно часто не может быть непосредственно запушена в операционной системе другого семейства. Операционные системы программно совместимы в общем случае лишь частично.
Пакеты прикладных программ САПР ТП реализуются как надстройка над операционной системой. Основу пакета составляет конечное множество программных модулей, каждый из которых является узкоспециализированной программой некоторого алгоритма или даже его фрагмента. При этом легко проследить следующую аналогию процедур проектирования и программирования:
Проектирование объекта Программирование
Структурное описание объекта Структуры алгоритма
Логическое описание объекта Структурная схема программы
Детальное описание Программа
Техническое решение Программное решение
Проверка Отладка
Состав компонентов Алгоритмический язык
Компонент объекта Оператор языка
Методы решения инженерных задач Методы программирования
Технология проектирования Технология программирования
Из множества программных модулей выделяется подмножество управляющих модулей, составляющих универсальный или специализированный монитор САПР ТП. Программа-монитор САПР ТП организует вычислительный процесс в соответствии с принятым алгоритмом управления.
Применяют два способа организации вычислительного процесса в САПР ТП:
· описание пользователем алгоритма решения прикладной задачи проектирования с помощью специальных языковых средств;
· наличие в САПР ТП средств автоматизированной или автоматической генерации цепочки программных модулей, соответствующей алгоритму решения выбранной прикладной задачи.
При проблемной ориентации САПР ТП проектировщику необходимо определить лишь исходные данные, задать вид их обработки и указать форму представления результатов. Для обеспечения этих функций в состав системы должны быть включены: входной язык и транслятор с него, прикладные программы проектирования заданного объекта, программы обработки и вывода результатов в форме, удобной и привычной проектировщику – пользователю САПР. Широта круга пользователей является следствием доступности САПР, которая, главным образом, зависит от возможностей языка взаимодействия (его связи с «профессиональным» языком пользователя), легкости организации вычислительного процесса, наличия вспомогательных сервисных операций, автоматизирующих процедуры накопления и редактирования библиотек.
Одним из направлений современного развития САПР и, в частности, САПР ТП является создание специализированных программно-технических комплексов, предназначенных для автоматизированной деятельности определенного вида, например, АРМ. Программное обеспечение АРМ, в особенности, его прикладная часть определяется специализацией АРМ, то есть видом той деятельности, которой на данном рабочем месте будет заниматься пользователь.
Прикладное программное обеспечение АРМтехнолога, какправило, включает средства обработки и визуализации текстовой и графической информации, в том числе средства плоского и объемного моделирования предмета производства, а также средства формирования и использования необходимых баз данных с соответствующими СУБД.
С углублением автоматизации процесса технологического проектирования сложность и трудоемкость разработки программного обеспечения САПР ТП непрерывно растут. Для уменьшения трудоемкости программирования и повышения качества и производительности труда программистов разработаны технологии программирования, как комплекса специальных средств и методов. Используют алгоритмические языки, упрощающие запись программ и позволяющие автоматизировать процесс их отладки. Применяют специальные среды и средства автоматизации программирования.
Среда программирования –интегрированная система подготовки программ, в которой все использующиеся для этого программные средства имеют единый пользовательский интерфейс, общую базу данных и не требуют специального вызова.
Средствами автоматизации программирования называют комплекс языков программирования и программных средств, обеспечивающих автоматизацию разработки и отладки программ. К этим средствам относят трансляторы, интерпретаторы, редакторы связей, библиотеку программ, сервисные программы, средства работы с символьными библиотеками (отладчики, текстовые редакторы, архиваторы и т.д.).
Наиболее известны следующие технологии программирования: модульное, структурное, программирование «сверху вниз», программирование на основе специальных диаграмм, объектно-ориентированное программирование.
Модульное программирование предусматривает разделение программы на функциональные модули. Каждый модуль оформляется как самостоятельная программная единица, способная решать возложенные на нее задачи, выполняя при этом соответствующие функции. Модульное представление программ облегчает их отладку и особенно удобно при необходимости модернизации программного обеспечения, так как оно позволяет изменять только часть программы, нуждающуюся в модернизации, то есть отдельный программный модуль (или группу модулей). Программное обеспечение большинства современных САПР построено по модульному принципу. Модульное программирование существенно сокращает время разработки сложных программных комплексов, так как создание отдельных модулей может быть поручено разным группам программистов, работающих одновременно.
Структурное программирование основано на применении ограниченного ряда структур построения программ, например, линейной, циклической, структуры выбора и т.д. Основная идея структурного программирования заключается в том, что структура программы должна отражать структуру решаемой задачи, чтобы алгоритм решения был ясно виден из исходного текста. Структурные программы имеют четкую древовидную архитектуру, легко читаются и модифицируются. Облегчена проверка правильности формировании программного обеспечения, сокращается время на подготовку и отладку программы.
Основой программирования «сверху вниз» является многоуровневое написание программ. На верхнем уровне в первую очередь формируют исходный алгоритм в виде соответствующей вычислительной схемы, элементы которой описывают на естественном для данной проблемы языке. Далее выполняют написание для элементов каждого уровня алгоритмической схемы «сверху вниз». Каждый последующий уровень отлаживают на тестах, полученных из предыдущего уровня. В отличие от обычного программирования по блок-схемам каждый уровень оформляют как законченную программу и могут отлаживать до окончательной разработки алгоритма. Эта технология сокращает общую продолжительность решения задачи за счет выполнения работ по программированию параллельно с разработкой алгоритма. По ходу работ возможна и корректировка последнего.
Программирование на основе специальных диаграмм – HIPO-технология (Hierarchical Input Process Output Diagrams) обеспечивает многоуровневое составление и документирование программного обеспечения. Применяют три типа диаграмм. Диаграммы первого типа – вспомогательные – предназначены для окончательного оформления документации на программное обеспечение. Диаграммы второго типа задают связи и правила сборки диаграмм третьего типа, содержащих собственно процедуры обработки информации. Во всех диаграммах выделяют три части (колонки): для записи входной информации и описания процесса преобразования информации. Главным достоинством этой технологии программирования является явное описание всей информации, связанной с процессом создания программного обеспечения.
Объектно-ориентированное программирование – современная методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является реализацией определенного класса, а классы образуют иерархию на принципах наследуемости.
Объект обладает состоянием, поведением и индивидуальностью. Структура и поведение схожих объектов определяют общий для них класс. Термины «экземпляр класса» и «объект» взаимозаменяемы. Состояние объекта характеризуется перечнем всех возможных (обычно статических) свойств данного объекта и текущими значениями (обычно динамическими) каждого из этих свойств. Поведение характеризует то, как объект воздействует или подвергается воздействию других объектов с точки зрения изменения состояния этих объектов и передачи сообщений. Индивидуальностью называют свойства объекта, которые отличают его от всех других объектов.
Класс обозначает множество объектов, имеющих общую структуру и общее поведение. Объектные и объектно-ориентированные языки программирования (Object Pascal, C++, Java и др.) реализуют в разных комбинациях следующие механизмы отношения классов: наследование; использование; представление; метаклассы.
Наследование – отношение между классами, когда один класс повторяет структуру и поведение другого (простое наследование) или других (множественное наследование) классов. Класс, структура и поведение которого наследуется, называют суперклассом.
Методология объектно-ориентированного программирования, использование объектно-ориентированных языков позволяют значительно ускорить создание больших промышленных программных систем [14].
В последнее время широкое распространение получил визуальный подход к программированию. Все необходимые элементы оформления и управления создаются и обслуживаются не путем ручного программирования, а с помощью готовых визуальных компонентов. Этот процесс автоматизирован в средах быстрого проектирования (Rapid Application Development, RAD-среды). Весь вспомогательный исходный код среда генерирует сама, позволяя программисту сосредоточиться только на реализации алгоритма.
В рассмотренных и в других (менее распространенных) технологиях программирования большое внимание уделено документированию этапов и результатов программирования. Это объясняется тем, что программные средства стали программным продуктом и могут использоваться без привлечения их разработчиков только при условии их тщательного документирования.
Программным называют документ, содержащий в зависимости от назначения данные, необходимые для разработки, производства, эксплуатации и сопровождения программы или программного средства. Основными видами программных документов являются спецификация, ведомость держателей подлинников, текст программы, описание программы, методика и программа испытаний, техническое задание, пояснительная записка и эксплуатационные документы.
Программным средством называют комплекс программ на носителе данных и соответствующей документации, а также данных, предназначенных для поставки пользователю.
Программное средство, предназначенное для поставки, передачи, продажи пользователю, называют программным продуктом. Рынок программных продуктов является одним из наиболее динамично развивающихся рынков. Программное обеспечение САПР ТП с соответствующей документацией также является программным продуктом, занимающим на этом рынке свою устойчивую «нишу».
Контрольные вопросы
1. Что называют лингвистическим обеспечением САПР ТП и для чего его используют?
2. Что такое язык проектирования? Чем входной язык проектирования отличается от выходного?
3. Что называют ПОЯ?
4. Что называют машинным языком?
5. Какие подходы к созданию ПОЯ вы знаете? Поясните их сущность.
6. Какие основные требования предъявляют к ПОЯ?
7. Что включает в себя ПОЯ? Как взаимодействуют его компоненты?
8. Для чего используют ПОЯ в системах автоматизированной подготовки управляющих программ для станков с ЧПУ?
9. Что такое язык описания детали в САПР ТП? Что включает полное формализованное описание детали?
10. Что называют процедурным, декларативным, объектно-ориентированным языками программирования?
11. Что называют программным обеспечением САПР ТП? Что оно включает в себя?
12. Из каких частей состоит программное обеспечение САПР ТП? Что включает и для чего используется каждая часть?
13. Что такое прикладная программа, пакет прикладных программ? Для чего их применяют в САПР ТП?
14. Что такое операционная система? Как возможности САПР ТП связаны с возможностями операционной системы?
15. Что называют программным документом, средством, продуктом?