Статья посвящена новой технологии CAS.CADE (Computer-Aided Software for Computer-Aided Design Engineering) компании MATRA DATAVISION для создания программного обеспечения САПР.
К настоящему времени САПР достигли высокой степени системной зрелости. Они реально могут охватывать почти весь жизненный цикл проектируемого изделия: от замысла до производства, включая элементы моделирования, опытной эксплуатации компонентов, узлов и подсистем в виде виртуальных образов, что приводит к значительному сокращению расходов на разработку и сроков внедрения производимых изделий. А это, в свою очередь, требует усовершенствований в системах автоматизации проектирования, созданию различных приложений для многих сфер производства, вплоть до создания собственных САПР самими пользователями.
Отклик на запросы и рынка в целом, и его участников (производителей, пользователей и т. п.) реализовался в виде "фабрики ПО" - CAS.CADE/SF (CAS.CADE/Software Factory).
Она включает в себя среду разработки, средства построения графического пользовательского интерфейса, 2D- и 3D-моделирование, параметризацию объектов. В качестве технологической основы принят объектно-ориентированный подход.
CAS.CADE имеет модульную структуру и предназначен для улучшения качества создаваемого программного обеспечения, а также повышения производительности разработчиков.
CAS.CADE Framework - основная компонента продукта, представляющая технологическую среду для разработки программного обеспечения технических и научных приложений, которую можно использовать как на фирмах, так и на предприятиях, разрабатывающих собственные научные и технические приложения. CAS.CADE Framework включает четыре ресурса:
Архитектура приложений, разрабатываемых в CAS.CADE/SF, изменяет в двух направлениях обычное представление об интерактивных системах: функциональном и структурном. Во-первых, выделяются три компонента - функция (Function), представление (Presentation) и управление (Control). Function включает понятия и направленность приложения. С ее помощью организуется управление моделью данных приложения, связь с базой данных и основным графическим пользовательским интерфейсом. Главными здесь выступают эргономические требования.
Presentation определяет облик приложения - визуальное представление о манипулируемых конечным пользователем объектах. С одной стороны, он управляет графическими ресурсами (с помощью откликов графических структур данных на диалог), а с другой - трансформирует функциональную форму данных в вид, удобный для экранного отображения.
Control управляет диалогом приложения и устанавливает соответствие между Function и Presentation. При этом достигается синхронизация диалога и изменяющейся модели данных и ее представления согласном действиям пользователя. Данные делятся на три группы: временные, которые утрачиваются в конце процесса их создания; данные, хранимые для удобства, но не гарантируется их соответствие для различных версий продукта (к ним можно отнести данные, контекстные или связанные с оптимизацией габаритных графических структур). Все другие данные относятся к постоянно хранимым. Они должны быть либо стабильными, либо переносимыми в зависимости от изменения версии ПО. Чтобы гарантировать постоянство данных, для их хранения применяется стандарт STEP.
Функциональные и структурные изменения в системе приводят к изменению ее физической модели и прежде всего к двум видам обработки информации, принятым в ней: Front-end и Engine. Первый использует компоненту Control модели архитектуры в качестве основных механизмов графического пользовательского интерфейса. Он позволяет реагировать на физические и логические события (отклики и текстовые сообщения), которые возникают в ходе диалога с пользователем. Интерактивные сообщения могут вызывать команды, которые выполняются машиной. Набор команд может объединяться в удобный макрос для повторяющихся задач. Такой макрос при необходимости редактируется пользователем.
Engine-обработка заботится о функциональных и отображающих командах, появившихся в результате процесса Front-end. Она выполняет функциональное и отображающее обслуживание модели данных приложения с исключением объектов диалога и управляется своим процессом Front-end, который ее начинает, зависит от нее и останавливает ее. Связь в базе данных осуществляется наоборот в ходе Engine-обработки, но благодаря Front-end. Вообще, транзакция в базе данных вызывается в начале интерактивной сессии и она подтверждается или отменяется в конце сессии. Промежуточные подтверждения могут производиться в течение исполнения. Одиночный процесс Front-end может управлять одним или несколькими процессами Engines. Эти виды обработки могли бы быть распределены по сети или выполнены на различных процессорах одной и той же машины.
В практической жизни требуется кооперация ряда приложений. Например, одно приложение руководит выделением в изделии производимого объекта, другое занято его детальным механическим проектированием, третье развивает его производство и т. д. При этом они часто являются независимыми приложениями, выполняемыми самостоятельно, приходят от различных исполнителей, имеющих каждый свою базу данных, реализуются на своих технологиях (файловых системах, ООСУБД или собственных системах и т. п.)
Несмотря на гетерогенность производимых в системе данных они должны быть доступны пользователям. Кроме этого, пользователь желает униформизации своих данных.
Решение, предлагаемое в CAS.CADE/SF для таких систем, сводится к группированию приложений в домены (Domains), которые создаются по модели данных, определяемой ее схемой, условиями хранения и одним или несколькими приложениями. Приложения независимы в том смысле,что приложению из данного домена ничего неизвестно о модели данных из других доменов. Чтобы получить доступ к данным, приходящим из другого домена, приложению необходимо воспользоваться специальным процессом Adaptor.
Таким образом интеграция, прозрачная для пользователя, несет множество доменов со стороны и свой собственный домен - домен управления данными. Каждое приложение связывается с таким доменом и наоборот со стандартным Adaptor'ом. Данные приложения запоминаются в базе данных приложения. Мета-данные хранятся в базе управления данными, которая организована для униформных данных. Чтобы интегрировать внешнее приложение, необходимо сделать интерфейс с адаптером управления данными.
Остановимся теперь на возможностях CAS.CADE/SF, позволяющих разрабатывать сложное ПО. Принцип саморазвития, лежащий в основе идеологии современных САПР, в значительной мере связан с наличием или отсутствием в ней средств развития. Поэтому CAS.CADE/SF допускает повторное использование ПО, баз данных и словарей данных в создаваемых системах. Эти базы данных поддерживаются с помощью CDL - языка определений, и доступных структурированных рабочих областей.
Словарь данных содержит полное определение всех компонент ПО, специальных или повторно используемых приложений. Он включает не только классы, но также службы, входящие в Engines и Adaptors, структуры схем баз данных и т.д. Это общий источник информации для большинства средств развития. Он интегрируется в распределенную многопользовательскую среду, которая имеет возможность управлять областями, обеспечивающими работы по развитию и конфигурации для управления продуктами.
Данные, хранимые в словаре, описываются на языке спецификации, который поддерживает архитектурную модель, предварительно введенную. Эта информация относится ко всем средствам, в том числе: к С++ генератору кодов; к системе исполнения метаданных ООСУБД; к С++ генератору фрагментов, которые реализуют связь между Front-ends, Engines и Adapters; к браузеру классов; к генератору, производящему в режиме on line документацию на повторно используемые компоненты и ряд других средств, таких, например, как анализ целостности модели данных. Исходный словарь данных, поступающий из CAS.CADE/SF, устанавливается со всеми повторно используемыми компонентами, чтобы обеспечить основные виды обработки информации.
Они организованы по категориям служб: Kernel (Ядро) - коллекции, включающие графы, математическую библиотеку, физические константы, Modeling (Моделирование) - 2D- и 3D-геометрию, общую топологию, примитивы и булевские операции, Parametrics (Параметризация), включающая параметрический и вариационный подходы, Graphic (Графика) - координатная сетка, 2D- и 3D-структуры графических данных, каркасные фреймы, перемещаемые ломаные линии и алгоритмы наложения теней и Data Management (Управление Данными) - службы управления данными в базах данных.
CDL - язык, используемый при определении компонент ПО для приложений, которые поддерживают описанную выше архитектурную платформу. Назначение языка преследует следующие цели: CDL добавляет языку программирования устойчивости, путем перенесения некоторых возможностей С++. Он поддерживает все характеристики, обеспеченные архитектурой. Не являясь собственно языком программирования, он, как язык спецификаций, помогает пользователям определять описание различных компонент ПО. Кроме того он не зависит от языка программирования и интегрирован в документации. В общем, CDL является языком определения данных (DDL).
Он может использоваться для описания характеристик типов данных, таких как атрибуты и их данных. При этом определяются сигнатуры операций, но не их выполнение (задачи представляются на языке манипулирования данными, DML). Имеется возможность выделить временные и постоянные данные, группируя постоянные классы в схемы, которые соответствуют запросам Engine или Adaptor. Наконец, язык позволяет вводить уровень абстракции выше чем класс - Package, который группирует вместе относительные классы, таким образом, позволяя большую степень управляемости в приложениях, при использовании многих классов, и определяет пространство имен для класса имен. Теперь, благодаря использованию CDL, при развитии ПО его компонента оформляется по стандартам C++ Persistent Programming Interface (интерфейс устойчивого программирования).
Платформа развития ПО строится на областях развития в две стадии: одно хранилище (Warehouse) и множество цехов (Workshops). На первой управляют версиями и конфигурациями продуктов, при этом обе стадии адаптируются к специфике развития.
CAS.CADE на основе модели клиент-сервер и в соответствии со стандартами CORBA и OLE позволяет интегрировать приложения пользователя в другие, в том числе во вновь разрабатываемые, продукты или успешно развивать собственную САПР. При этом механизм адаптации предоставляет возможность сгенерировать вид данных приложения и импортировать их из одного процесса в другой.
Области применения CAS.CADE
CAS.CADE - весьма распространенный на рынке программный продукт, с помощью которого реализованы многие разработки. Вот несколько примеров.
Последняя версия продукта, имеющего богатую рыночную историю, EUCLID Quantum, используя единую модель, обеспечивает концептуальный и стилевой дизайн изделия, детальное конструирование, прочностные расчеты, подготовку производства. При этом участники проекта могут работать параллельно над созданием деталей и сборок, над предварительными прочностными расчетами, изготовлением прототипов. Конструирование стало более интуитивным и гибким и, что важно, теснее связным, благодаря системе управления данными о продукции, а параллельная работа над проектом - не только реальна, но и протекает значительно быстрее, чем в предыдущей версии EUCLID.
Основными компонентами EUCLID Quantum являются:
Стандартные интерфейсы взаимодействия между разными платформами (для UNIX-систем и Wintel-систем) в EUCLID Quantum реализованы в объектно-ориентированной среде разработки CAS.CADE. Возможности этой среды позволили фирме MATRA DATAVISION включить в круг своих пользователей очень известные компании мира, такие как Alcatel, Coca Cola, Renault, Sharp, Daimler-Benz, DEC и многие другие, среди российских фирм можно упомянуть: АЗЛК, Красногорский механический завод, Московский вертолетный завод им. Г. Миля, НПО "Энергия" и ряд других.
Фирма BRGM, проводящая исследования в области геологии и горного дела, создала приложение, сочетающее ГИС (геоинформационную систему) и САПР твердотельного моделирования. С помощью CAS.CADE фирма разработала новый пакет трехмерного картографического моделирования для исследований структуры и функционирования геологических объектов.
В области дорожного строительства фирма SETRA, опираясь на CAS.CADE, смогла существенно сократить сроки разработки своего порграммного продукта ARCAD, представляющего САПР инфраструктур автомагистралей, учитывающих городскую и природную среды.
Концерном VOLKSWAGEN на базе CAS.CADE было создано новое приложение AWK-D для САПР/АТПП оснастки штампов, которое открывает серию подобных продуктов.
Имеются примеры из области роботостроения (Стенфордский университет в США), из космической промышленности: MATRA MARCONI SPACE разработала программный продукт SYSTEMA - среды для параллельно-агрегатного проектирования спутников.
В России насчитывается около полусотни пользователей системы EUCLID Quantum, но наибольшую активность проявляют ВУЗы. В некоторых из них учебный процесс строится по существу на платформе CAS.CADE. Наиболее продвинуты МГТУ и МГТУ Станкин.