Введение
Термин «автоматизация проектирования» характеризует любую деятельность, в рамках которой ЭВМ находит применение для выполнения трудоемких расчетов, организации хранения и поиска информации, геометрического моделирования и графического отображения результатов, редактирования документации с целью разработки, анализа и видоизменения изделий и процессов. Автоматизация проектирования реализуется с помощью САПР. [2]
Основой САПР является комплекс средств автоматического проектирования, которые представлены совокупностью обеспечения САПР.
Виды обеспечения:
1. математическое;
2. лингвистическое;
3. техническое;
4. информационное;
5. программное;
6. методическое;
7. организационное.
Лингвистическое обеспечение САПР представляет собой совокупность представленных в заданной форме языков (включая термины, определения, правила формализации языка, а также методы сжатия и развертывания языков), необходимых для автоматизированного проектирования. Языки, которые используются в вычислительной технике, являются алгоритмическими. Они служат для задания определенных алгоритмов переработки информации и построены посредством набора символов и системы правил соответствующего языка.[2]
В САПР применяют языки программирования и языки общения человека с ЭВМ.
Лингвистическое обеспечение – это языки общения человека с ЭВМ.
1. Общая характеристика
Лингвистическое обеспечение САПР представляет собой целостную совокупность формальных языков описания информации и алгоритмов ее обработки в процессе автоматизированного проектирования.
Формальный язык – это знаковая система для описания и обмена информацией между людьми, человеком и ЭВМ, различными автоматическими устройствами. [2]
Лингвистическое обеспечение образуется следующими языками:
программирования;
управления;
проектирования.
Языки программирования необходимы для создания программного обеспечения при разработке САПР. К таким языкам относятся, например, Фортран, Си, Паскаль, AutoLISP, язык программирования СУБД FoxPro и др.
Языки управления служат для управления ЭВМ, периферийными устройствами.
Рис. 1. Преобразование информации в САПР
Языки проектирования ориентированы на пользователей-проектировщиков и предназначены для эксплуатации САПР. Эта группа языков условно делится на входные, внутренние и выходные. Входные языки являются средством взаимодействия конечного пользователя с САПР, например, в ходе подготовки исходных данных или формулировки проблемы. Внутренние языки обычно скрыты от рядового пользователя и служат для представления информации, передаваемой между различными подсистемами САПР и ЭВМ. Выходные языки обеспечивают оформление результатов проектирования в текстовом или графическом виде. [1]
Первичными элементами любого языка являются знаки, символы. Заданную конечную их совокупность называют алфавитом. Символы алфавита разделяют на буквы, цифры и специальные знаки (препинания, разделительные, арифметические и логические операции и т. п.). Определенные сочетания символов алфавита образуют слова, из которых составляется словарь языка. Сочетания цифр с десятичной точкой или без нее образуют числа. Слова и числа при помощи специальных знаков объединяются в предложения, а предложения – в тексты.
Правила построения слов называют морфологией языка. В этих правилах предусматривается представление слова в виде префикса, основы и постфикса. В любом языке можно выделить конечные множества определяющих элементов слова и указать конечное число правил формирования из них всего многообразия слов языка. На практике это многообразие часто становится труднообозримым, поэтому ограничиваются использованием специально построенных лексик, составленных из наиболее характерных слов словаря – лексем.
Правила образования предложений и текстов образуют синтаксис языка. Словообразование, морфология и синтаксис языка составляют его грамматику. Смысловую сторону слов, предложений, текстов называют семантикой языка. Алфавит, морфология, синтаксис и семантика дают исчерпывающую характеристику любого формального языка.
В действующих САПР находят применение формальные языки разного уровня сложности и назначения, соответственно многообразию различных задач, решаемых в проектировании. [1]
Лингвистическое обеспечение хорошо развитых САПР можно разделить на две относительно обособленные части – базовую и управляющую, связь между которыми осуществляется при помощи специализированных языковых процессоров-компиляторов, интерпретаторов и т. п.
Базовое лингвистическое обеспечение является языковой основой программного обеспечения САПР и состоит в основном из действующих языков программирования, с помощью которых в комплексе средств САПР, реализуются вычислительные и моделирующие процедуры обобщенного алгоритма проектирования, а также обеспечивается решение сервисных задач.
Управляющее лингвистическое обеспечение состоит из специализированных проблемно-ориентированных языков, которые описывают обобщенный алгоритм проектирования в терминах проектных операций, процедур и задач. В этих языках формируются словарь, синтаксис и семантика, существенно связанные с конкретной предметной областью проектирования. Создание и применение проблемно-ориентированных языков позволяет организовать высокоэффективный и эргономичный процесс управления автоматизированным проектированием. В частности, появляется возможность для осуществления диалогового взаимодействия проектировщика и комплекса технических средств САПР, приближенного к естественному речевому запрос-ответному режиму проектирования. [3]
Как правило, запросы обобщенного алгоритма проектирования, даже на уровне проектных операций' с их промежуточными результатами, требуют комплексного осуществления разнообразных вычислительных и моделирующих процедур, т. е. системного приведения в действие целого ряда элементов и фрагментов базового лингвистического и программного обеспечения САПР. Таким образом, языкам управляющей части лингвистического обеспечения должна соответствовать определенная система агрегирования элементов базового обеспечения. Только при согласовании словарных составов и грамматик управляющих и базовых языков возможна исполнение в системе проблемно-ориентированных заданий.
Для осуществления такого рода связи (перевода директив проектирования с одних языков на другие) приходится создавать специализированные программные комплексы – языковые процессоры.
Управляющее лингвистическое обеспечение и языковые процессоры обычно реализуются в САПР в составе управляющих мониторов, через которые проектировщик и комплекс средств САПР осуществляют свое взаимодействие в процессе проектирования. Работа мониторов обеспечивается, в основном, обычными языками программирования. Она ложится дополнительной нагрузкой на располагаемые вычислительные и иные возможности комплекса средств САПР. Однако при хорошей организации проблемно-ориентированных языков и их трансляции, достигаемые положительные эффекты значительно превосходят потери.
Необходимо отметить, что в хорошо развитых САПР базовое лингвистическое и программное обеспечение относительно инвариантно к типу и классу проектируемого объекта: настолько велики его возможности решения разнообразных типовых задач обобщенного алгоритма проектирования. Управляющее лингвистическое обеспечение и языковые процессоры находятся в большой зависимости от предметной области проектирования. Задачи их создания каждый раз приходится решать в поиске компромисса между преимуществами специализации и широты применения искомых решений. Как управляющее, так и базовое лингвистическое обеспечения допускают различные формы и содержание своей организации. Рассмотрим их подробнее.
2. Управляющее лингвистическое обеспечение
Управляющее лингвистическое обеспечение САПР, описывая обобщенный алгоритм проектирования, предоставляет словарный состав, синтаксис и семантику языковых средств основных операций той или иной типовой проектной процедуры. [3]
Можно говорить о языковых средствах описания целей проектирования, исходных данных, описания объектов, моделей их функционирования, алгоритмов поиска проектных решений и формирования выходных документов. Состав и содержание этих средств определяются в процессе типизации и унификации всего многообразия проектной информации и алгоритмов ее обработки в проблемной области автоматизированного проектирования. Типизация и унификация позволяют выделить конечные множества элементарных данных и операций проектирования с их наименованиями и смысловыми значениями, а также синтаксические и семантические правила описания структурных данных и операций проектирования. В связи с этим в управляющем лингвистическом обеспечении различают языковые средства описания данных, объекта проектирования и задания на проектирование. Для сложных объектов и процессов эти средства могут быть оформлены в виде соответствующих языков.
Язык описания объекта служит для задания свойств проектируемого объекта. С его помощью предусматривается описание таких характеристик, как числовые параметры объекта проектирования; содержание составных частей в подсистемах, а последних – в системах; процессы, протекающие в объекте проектирования и т. п.
Язык описания задания предназначен для указания упорядоченной последовательности действий, направленных на решение задач проектирования. С его помощью осуществляются моделирование функционирования объекта проектирования; поиск оптимальных проектных решений; формирование этих решений в требуемом виде.
Языки описания объекта проектирования и задания на проектирование отражают специфику проблемной области САПР, особенности исторически сложившихся обозначений параметров, операций, процедур и т. д.
При этом управляющее лингвистическое обеспечение должно удовлетворять требованиям полноты описания основных проектных операций и процедур; удобства и выразительности восприятия языковых средств проектировщиком для минимизации затрат времени на их изучение и практическое использование; лаконичности языка для сокращения времени ввода информации в систему и переработки ее в системе; развития и расширения языка по мере накопления опыта проектирования.
В зависимости от степени формализации тех или иных задач обобщенного алгоритма проектирования удовлетворение указанных требований осуществляется в условиях пакетного или диалогового режимов функционирования комплекса средств САПР.
Языки пакетного режима (или пассивные языки) ориентированы на автоматическое решение полностью формализованных задач проектирования. В состав этих языков включаются средства формулирования задач проектирования, достаточные для их однозначного решения в приемлемое время.
Если задачи тех или иных фрагментов обобщенного алгоритма проектирования не поддаются полной формализации, то используются языки диалогового режима (или диалоговые языки). Они относятся к числу основных в САПР, позволяя проектировщику принимать и сообщать системе решения по отработке неформализуемых участков алгоритма проектирования. Состав языковых средств диалогового взаимодействия существенно зависит от принятой стратегии распределения функций управления проектированием между человеком и комплексом средств САПР.
В зависимости от распределения этих функций различают три основных вида человеко-машинного общения.
«Ведущая – ЭВМ». Здесь система посредством специальных сообщений запрашивает необходимые описания объекта проектирования, либо указывает возможные пути решения задачи и требует от проектировщика конкретизации задания. Эти сообщения оформляются на естественном языке пользователя с соблюдением требования, однозначного толкования их смыслового содержания. Кроме того, запросы формулируются таким образом, что ожидаемые ответы проектировщика, как правило, являются немногословными и строятся с соблюдением простых синтаксических правил.
«Ведущий – проектировщик». Здесь пользователь на специальном языке задает для ЭВМ последовательность операций и процедур обработки указываемой информации. Этот вид общения требует от проектировщика четкого знания алгоритма проектирования и возможностей используемого комплекса САПР.
«Равные партнеры». Здесь реализуется двухстороннее управление алгоритмом проектирования, в котором, в зависимости от ситуации, принятие решений о дальнейшем ходе проектирования осуществляет либо человек, либо ЭВМ. Этот вид общения является наиболее эффективным с точки зрения достижения целей диалогового проектирования.
Диалоговые языки, ориентированные на взаимодействие по принципу «Ведущая – ЭВМ», наибольшее распространение получили в так называемых запрос-ответных языках. В зависимости от формы запроса различают языки «Выбор из меню» и «Заполни пустые места».
При использовании языка «Выбор из меню» проектировщику предлагается по шагам алгоритма проектирования список альтернативных данных или операций, на котором он принимает решение. Языковые возможности пользователя ограничиваются средствами указания требуемой альтернативы.
Инициатором диалога при использовании запрос-ответных языков является ЭВМ. Это накладывает определенные ограничения на их применение в САПР. Во-первых, развитие процесса проектирования осуществляется только по заложенному в системе сценарию диалога. Во-вторых, ввод информации проектировщика происходит лишь в тот момент, когда этого требует автоматизированная система. Наряду с этим запрос-ответные языки имеют и важные преимущества, обеспечивающие их широкое распространение: простота и наглядность взаимодействия, отсутствие необходимости в предварительной подготовке проектировщика для ведения диалога. Поэтому, если в процессе проектирования нет необходимости в изменении структуры проектной процедуры, такие языки являются наиболее подходящими.
Более широкими возможностями организации диалога обладают директивные языки, реализующие взаимодействие по принципу «Ведущий – проектировщик». Основной синтаксической единицей этих языков является директива, которая представляет собою управляющее предложение фиксированной структуры. Каждая директива позволяет задать определенное действие по управлению процессом проектирования. В состав директивы, как правило, входят название действия, которое должна выполнить автоматизированная система, а также параметры, устанавливающие определенный режим выполнения этого действия. Параметры директивы могут быть позиционными и ключевыми. Позиционные параметры характеризуются их позицией в синтаксической структуре директивы и должны перечисляться в определенном порядке. Каждый ключевой параметр характеризуется своим наименованием.
При использовании директивных языков инициатором диалога является проектировщик. Это предоставляет пользователю возможность оперативного управления процессом автоматизированного проектирования и гибкого многовариантного использования программно-информационных средств САПР. Однако директивным языкам присущи недостатки, обусловливающие определенные трудности их использования. Так, проектировщик должен изучить директивный язык, т. е. знать состав и назначение директив, их синтаксис и семантику. Кроме того, по сравнению с запрос-ответными языками, здесь значительно усложняется языковой процессор, реализующий директивный язык, и
Развитие преимуществ запрос-ответных и директивных языков осуществляется в комбинированных языках, поддерживающих диалоговое взаимодействие по принципу «Равные партнеры». Отличительной особенностью этих языков является их естественность для пользователей – приближение средств, предоставляемых в распоряжение проектировщиков, к тем языковым средствам, которыми они привыкли оперировать в процессе решения профессиональных задач, и освобождение от необходимости использования машинно-обусловленных терминов и понятий.
Использование комбинированного языка позволяет чередовать запросы со стороны проектировщика и ЭВМ. Кроме того, запросы проектировщика могут представляться в виде предложений, образующих семантически связный текст. Благодаря этому проектировщику предоставляется возможность фиксировать не только конечный результат решения задачи, но и описывать процедуру его получения. Это, в свою очередь, позволяет диагностировать ошибки на промежуточных шагах решения задачи, а также обеспечивает более гибкое управление проектированием. Однако реализация комбинированных языков требует создания достаточно сложных языковых процессоров. Это обстоятельство обусловливает сдерживание широкого распространения комбинированных языков.
Пассивные и диалоговые языки могут быть ориентированы на описание не только текстовой информации, но и графической. В последнем случае они называются графическими языками. Графические языки предназначены для задания объектов проектирования в виде схем, чертежей; графиков, рисунков, а также манипулирования данными представлениями в процессе формирования проектных решений, С этой целью в составе конструкций графических языков содержатся средства генерации изображений и различных их преобразований. Средства генерации изображений позволяют описывать простейшие геометрические фигуры – примитивы и их совокупности. Геометрическими примитивами в зависимости от проблемной ориентации языка являются элементы принципиальных электрических схем – сопротивления, конденсаторы, диоды и т. д.; элементы машиностроительных чертежей – многоугольники, окружности, эллипсы и т. д. Включение наименований этих примитивов в состав словаря является характерной особенностью графических Языков. Языковые средства преобразования изображений предназначены для задания различного рода действий над геометрическими образами: масштабирование, смещение, поворот, перекомпоновка частей изображения их слияние, удаление. Эти средства оформляются в виде операторов над геометрическими типами данных. Можно выделить четыре основные группы операторов: выполняющие общие организующие действия; строящие геометрические примитивы; выполняющие сложные построения и вычерчивания; служебные и вспомогательные операторы.
Операторы общей организации предназначены для задания страницы, т. е. размеров рабочего поля на экране графического дисплея или бумаге графопостроителя; открытия и закрытия страницы; задания наименования страницы и другой текстовой информации, сопровождающей графическое изображение.
Операторы построения примитивов позволяют указывать тип генерируемой фигуры и ее параметры.
К группе операторов, выполняющих сложные построения и вычерчивания, относятся, на пример, операторы построения графиков. Они предназначены для изображения графиков функций одной или двух переменных, задаваемых, в аналитическом или табличном виде. При табличном задании функции указываются векторы значений каждого аргумента и соответствующий им вектор значений функций.
Рассмотренные выше языковые конструкции графического взаимодействия проектировщиков с ЭВМ являются эффективным средством оформления проектных решений в виде конструкторских чертежей, схем, рисунков и т. д. Современные САПР, наряду с выпуском конструкторской документации, позволяют проектировать программы изготовления проектируемых объектов на технологическом оборудовании с числовым программным управлением (ЧПУ). Языковой основой такого проектирования являются проблемно-ориентированные технологические языки оборудования с ЧПУ.
'Технологические языки можно рассматривать как развитие графических. Последние описывают движение графического пера (в случае графопостроителя) или электронного луча (в случае графического дисплея) в процессе оформления проектного решения в виде геометрического образа. Технологические языки САПР описывают, в частности, взаимное перемещение режущего инструмента и заготовки в процессе получения из заготовки проектируемой детали. Для эффективного задания этого перемещения технологические языки содержат средства описания геометрии изготовляемой детали, характеристик технологического оборудования, траектории и режимов обработки (величину, скорость и направление перемещения режущего инструмента).
Основным структурным элементом технологических языков является оператор. Операторы технологических языков обычно подразделяются на описывающие и выполняемые.
Описывающие операторы служат для указания вычислительных, геометрических и технологических условий. Эти операторы могут иметь ссылку, задаваемую в виде идентификатора перед записью оператора.
Выполняемые операторы предписывают движение режущего инструмента по траектории, задаваемой описывающими операторами. [1]
3. Базовое лингвистическое обеспечение
Базовое лингвистическое обеспечение САПР, являясь языковой основой программного обеспечения, содержит иерархию языков программирования, каждый уровень которой позволяет с различной эффективностью реализовывать автоматически исполняемые операции обобщенного алгоритма проектирования. На эффективность реализации проектных операций существенное влияние оказывают свойства выбранного языка программирования: удачный выбор языка позволяет быстро создавать качественный программный продукт. При этом важнейшими характеристиками качества отдельной программы и программного комплекса в целом являются их надежность, эффективная транслируемость в достаточно компактные и быстродействующие машинные программы, модифицируемость и мобильность.
В зависимости от требований, накладываемых на программный продукт, его исходное описание может производиться на языках программирования кодового, низкого и высокого уровня.
Языками программирования кодового уровня (или машинными языками) называются языки системы команд ЭВМ и внутримашинного представления информации. Алфавит таких языков включает только цифры (двоичные, восьмеричные или шестнадцатеричные), с помощью которых кодируются команды машины и данные, над которыми эти команды выполняются. Каждая ЭВМ имеет индивидуальную, свойственную только ей систему команд, но определенные закономерности присущи всем вычислительным системам.
В зависимости от архитектуры ЭВМ синтаксис команды, обычно называемый форматом команды, может изменяться в широких пределах. Команды могут иметь фиксированную длину (например, одно машинное слово) или переменную длину (два, три и более слов). Последнее определяется способом адресации к объекту действия команды – операнду. Машинным словом называется обычно последовательность из восьми двоичных цифр. По формату систему команд можно разделить на дно категории: безадресные команды, т. е. команды, не имеющие ссылки на данные, и адресные команды. В первом случае команда содержит только код операции, указывающий действие, которое должно быть выполнено (останов, возврат, сброс). Команды этого формата обычно образуют одно машинное слово. Во втором случае команда содержит код операции и либо операнд, либо ссылку на операнд в виде адреса машинного слова, в котором располагается операнд. Примерами являются команды засылки в регистр, сложения, умножения и т. п. В зависимости от принятых способов адресации адресные команды могут образовывать два, три и более машинных слова.
Система команд современных ЭВМ содержит несколько сотен элементов, семантика каждого из которых определяется функциональным назначением элемента: перемещения данных, преобразования данных, управления программой, ввода-вывода, специальные.
Команды перемещения данных организуют обмен информации между арифметико-логическим устройством (точнее аккумулятором) и оперативной памятью. Команды преобразования данных используются для выполнения арифметических и логических действий. Данные, над которыми эти действия совершаются, чаще всего находятся в аккумуляторе и регистре. Результат действия обычно остается в аккумуляторе. Команды управления изменяют содержимое регистра адреса следующей выполняемой команды. Команды управления могут быть условными и безусловными. Условная команда сопровождается указанием состояния, которое должно быть предварительно проверено: положительное, значение результата команды, переполнение или отсутствие его и т. д. Безусловная команда управления изменяет содержимое регистра адреса без проверки каких-либо условий. Команды ввода - вывода организуют обмен информации с внешними устройствами ЭВМ: накопителями на магнитных лентах, дисках. Специальные команды позволяют выполнять особые действия, такие, например, как разрешение прерывания выполнения программы, запрещение прерывания и т. п.
Детальное кодирование действий и объектов этих действий в терминах кодов операций, аккумулятора, регистров, машинных слов и т. п. позволяет получать компактные и быстродействующие машинные программы, полностью использующие возможности современных ЭВМ. Кроме того, программы на машинном языке не нуждаются в трансляции; после ввода в ЭВМ их можно сразу же исполнять. Однако машинные языки используются очень редко: для программного управления ЭВМ и оборудования, для которых не созданы или не реализованы языки более высокого уровня, а также для написания особо реактивных и незначительных по объему программ. Это обусловлено высокой трудоемкостью кодирования. Цифровые коды трудно воспринимаются человеком, поэтому велика вероятность указания неверного кода, т. е. надежность программ, составленных на машинных языках низкая. Кроме того, программы машинного языка немобильны: они не могут исполняться на ЭВМ, система команд и кодировка информации которых не содержат средств данного языка.
Языками программирования низкого уровня (или машинно-ориентированными языками) называются языки символического кодирования машинных и служебных команд и данных. В этих языках каждая машинная команда записывается в виде мнемонического обозначения кода операции и операнда. Каждой операции машинного языка ставится во взаимно однозначное соответствие выразительное, как правило, сокращенное наименование, называемое мнемокодом. Например, операция сложения может иметь мнемокод СЛЖ. Мнемоническое обозначение операнда представляет собой произвольную последовательность символов, выражающую либо наименование переменной, либо значение константы, участвующей в операции. Такое символическое изображение операций и операндов позволяет облегчить их запоминание, а значит и использование. Служебные команды машинно-ориентированных языков предназначены для упрощения программирования и отладки программных комплексов: команды управления трансляцией, определения адресов и идентификаторов, резервирования памяти и определения констант, управления печатью текста программы и т. д.
Поскольку система команд ЭВМ является подмножеством соответствующего машинно-ориентированного языка, последний позволяет, подобно машинным языкам, создавать компактные и быстродействующие программы, полностью использующие возможности ЭВМ. Выразительность символического представления команд и данных способствует повышению надежности создаваемых программ, удобству их записи, чтения и изменения. В то же время эти программы немобильны, поэтому на машинно-ориентированных языках в основном кодируют системные компоненты программного обеспечения САПР, к которым предъявляются высокие требования по быстродействию и потребляемой памяти ЭВМ.
Языками программирования высокого уровня (или процедурно-ориентированными языками) называются языки задания алгоритмов решения определенного класса задач в терминах и понятиях, характерных и наиболее эффективных для этого класса. Процедурно-ориентированные языки с четко продуманной системой хорошо взаимодействующих между собой понятий, достаточно общих, но в то же время простых и ясных для человека, позволяют существенно повысить эффективность разработки и развития программного обеспечения САПР, особенно ее прикладных компонентов.
Качественным отличием этих языков от языков кодового и низкого уровней является их машинная независимость: программы процедурно-ориентированных языков могут выполняться на любых ЭВМ, снабженных соответствующими языковыми процессорами. Последние автоматически отображают языковые конструкции, понятные человеку, в семантически эквивалентные конструкции машинного языка. При этом лаконичным и выразительным исходным конструкциям ставятся в соответствие, как правило, значительные по объему совокупности машинных команд и данных. Тем самым существенно повышается производительность разработчиков программного обеспечения САПР. Вместе с тем выдаваемые языковыми процессорами машинные программы являются не экономными по потребляемым ресурсам ЭВМ, так как машинно-ориентированные языки позволяют создавать, как правило, более компактные и быстрые программы.
Представление алгоритма решения задачи на процедурно-ориентированном языке заключается в указании последовательности процедурных шагов, конкретизирующих вычислительный процесс. При этом типичными процедурными шагами являются ввод данных, выборка значений, вычисления по формулам, присваивания значений переменным, проверка логических условий, передача управления определенным шагам, вывод данных. Выражение этих действий производится в терминах допустимых типов данных, типов операций и механизмов управления последовательностью применения операций и данных. Различие в содержании этих понятий обусловливают основные различия языков программирования высокого уровня. Наибольшее распространение в САПР получили языки высокого уровня Фортран, ПЛ/1, Бейсик, Паскаль. [1]
Заключение
Исходя из вышесказанного, можно составить схему лингвистического обеспечения САПР.
Лингвистическое обеспечение диалоговых САПР основывается на естественных языках (наиболее распространен английский), общепринятых символьных и графических образах. Проектирование в диалоговом режиме построено так, что пользователь, контактируя с КСАП по схеме «вопрос – ответ – вопрос – ответ – …, » выдает инструкции управления проектированием, которые имеют характер либо распоряжения ЭВМ, либо ответа на ее запросы. [2]
Эффективное функционирование САПР возможно только при наличии и заданном порядке взаимодействия данных выше компонентов обеспечения автоматизированного проектирования (математического; лингвистическое; техническое; информационное; программное; методическое; организационное).
Список использованных источников
1) Берхеев М. М., Заляев И. А., Кожевников Ю. В. и др. Основы систем автоматизированного проектирования. Учеб. пособие. – Издательство Казанского университета, 1988. – 253с.
2) Митрофанов В. Г., Калачев О. Н., Схирладзе А. Г. и др. САПР в технологии машиностроения. Учеб. пособие. – Ярославль; Ярослав. гос. техн. ун-т, 1995. – 298с.
3) www.ispu.ru/library/lessons/koposov2/14.html