Материал: основы проектирования хим произв дворецкий

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

ПРОГРАММНЫЕ ПРОДУКТЫ САПР

251

 

 

ра (обработчик события), которая проверяет код клавиши и вызывает нужную реакцию. В RAD имеются средства для удобства разработки обработчиков событий.

5.Окно редактора кода, в котором пользователь записывает создаваемую вручную часть кода.

6.Окно проекта – список модулей и форм в создаваемой программе.

Для написания событийных процедур в Visual Basic используется язык и текстовый редактор одноименного языка, в Delfi – язык и редактор языка Object Pascal. В CASE-системе фирмы IBM, включающей части VisualAge (для клиентских приложений) и VisualGen (для серверных приложений), базовым языком выбран SmallTalk. В среде разработки приложений клиент-сервер SQLWindows оригинальные фрагменты программ пишутся на специальном языке SAL [39].

Помимо упрощения написания пользовательского интерфейса в средах RAD предусматриваются средства для реализации и ряда других функций. Так, в наиболее развитой версии Visual Basic к ним относятся средства выполнения следующих функций:

поддержка ODBC, что дает возможность работы с различными СУБД;

разработка баз данных;

разработка трехзвенных систем распределенных вычислений;

интерактивная отладка процедур на SQL Server;

управление версиямипригрупповой разработкепрограммного обеспечения;

моделирование и анализ сценариев распределенных вычислений.

Для создания сред в RAD в случае сетевого программирования требуется решить ряд дополнительных проблем, обусловленных многоплатформенностью

вгетерогенных сетях, обилием применяемых форматов данных, необходимостью защиты информации и т.п. Решение этих проблем достигнуто в объектноориентированных технологиях на базе языка сетевого программирования Java. Кроме того, с помощью Java удается решить еще одну актуальную для Internet и Intranet задачу – сделать Web-страницы интерактивными.

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

Java используется двояким образом. Во-первых, как средство «оживления» Web-страниц. В этом случае программный Java-компонент называют аплетом, который встраивается в страницу с помощью специального тега, имеющегося

вязыке HTML. Во-вторых, Java – универсальный язык программирования и может быть использован для написания любых приложений, не обязательно привязанных к Web-технологии.

252 Глава 7. НОВЫЕ ПОДХОДЫ К АППАРАТУРНО-ТЕХНОЛОГИЧЕСКОМУ ОФОРМЛЕНИЮ…

Хотя и ранее были известны технологии на базе промежуточных p-кодов, именно технология Java оказалась наилучшим образом приспособленной для использования в гетерогенной сетевой среде. Она последовательно отражает принципы объектно-ориентированного программирования и обеспечивает приемлемую эффективность (производительность) исполнения программ. Эту эффективность можно еще более повысить, если в браузерах заменить интерпретацию на компиляцию.

Для разработки программного обеспечения на языке Java создан ряд инструментальных средств. Основной средой является Java Developer’s Kit, в которой имеются:

1)библиотеки классов, в том числе библиотеки основных элементов языка, часто используемых оболочек (wrapper), процедур ввода-вывода, компонентов оконного интерфейса и др.;

2)инструментальные средства такие, как компилятор байт-кодов, интерпретатор, просмотрщик аплетов, отладчик, формирователь оконных форм и т.п. Развитую RAD-среду – PowerJ – предлагает фирма Sybase.

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

Компиляция программ из готовых компонентов – идея не новая. Уже первые шаги в области автоматизации программирования были связаны с созданием библиотек подпрограмм. Конечно, для объединения этих подпрограмм в конкретные прикладные программы требовалась ручная разработка значительной части программного кода на языках третьего поколения. Упрощение и ускорение разработки прикладного программного обеспечения достигается с помощью языков четвертого поколения (4GL), но имеющиеся системы на их основе являются специализированными и не претендуют на взаимодействие друг с другом.

Современные системы интеграции программного обеспечения построены на базе объектной методологии.

Выше приведены примеры библиотек классов, применяя которые прикладные программисты могут создавать субклассы в соответствии с возможностями наследования, заложенными в используемые объектно-ориентированные языки программирования. При этом интероперабельность компонентов в сетевых технологиях достигается с помощью механизмов, подобных удаленному вызову процедур RPC.

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

В то же время в компонентах библиотек классов спецификации интерфейсов не отделены от собственно кода, следовательно, использование библиотек клас-

ПРОГРАММНЫЕ ПРОДУКТЫ САПР

253

 

 

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

Возможны два способа включения компонентов (модулей) в прикладную программу – модернизация (reengineering) или инкапсуляция (wrapping).

Модернизация требует знания содержимого компонента, интероперабельность достигается внесением изменений собственно в сам модуль. Такой способ можно назвать способом «белого ящика». Очевидно, что модернизация не может выполняться полностью автоматически, требуется участие профессионального программиста.

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

Компонентно-ориентированные системы построены на основе инкапсуляции компонентов. В архитектуре этих систем можно выделить следующие части:

1)прикладная программа (клиент), создаваемая для удовлетворения возникшей текущей потребности;

2)посредник (брокер или менеджер), служащий для установления связи между взаимодействующими компонентами и для согласования их интерфейсных данных;

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

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

Собственно интерфейс представляет собой обращения к функциям модуля, называемым в CBD-технологиях методами. Эти обращения переводятся в двоичный код, что обеспечивает при их использовании независимость от языка программирования. Один и тот же модуль может реализовывать несколько разных функций, поэтому у него может быть несколько интерфейсов или методов. Каждый новый создаваемый интерфейс обеспечивает доступ к новой функции и не отменяет прежние возможно еще используемые интерфейсы.

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

254 Глава 7. НОВЫЕ ПОДХОДЫ К АППАРАТУРНО-ТЕХНОЛОГИЧЕСКОМУ ОФОРМЛЕНИЮ…

процедур с указанием компонентов-исполнителей. Менеджер перенаправляет запрос соответствующему исполнителю. Исполнитель может запросить параметры процедуры. После выполнения процедуры полученные результаты возвращаются клиенту.

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

Наиболее популярными в настоящее время являются следующие CBDтехнологии [39]:

OpenDoc – технология, основанная на спецификациях CORBA, разработанных в начале 90-х гг. ХХ в. В OpenDoc реализуется технология распределенных вычислений на базе программ-посредников ORB.

Common Object Model – технология, развиваемая корпорацией Microsoft на базе механизмов OLE. Сетевой вариант этой технологии (для распределенных вычислений) известен под названием DCOM (в частности, объекты, которые можно вставлять в HTML-документы или к которым можно обращаться из Webбраузеров) известны под названием компонентов ActiveX. В COM/DCOM, как и в OpenDoc, можно использовать компоненты, написанные на разных объектноориентированных языках программирования. Но в отличие от OpenDoc в COM/DCOM остается естественная для Microsoft ориентация только на операционные системы Windows (реализация DCOM предусмотрена в ОС Windows NT 4.0). Технология ActiveX обеспечивает интерфейс для управления объектами одного приложения из другого. В общем плане ActiveX – технология интеграции программного обеспечения фирмы Microsoft. Например, используя эту технологию, можно в среде VBA организовать доступ к объектам AutoCAD.

JavaBeans – сравнительно новая технология, в которой используются компоненты, написанные на языке Java.

Основные идеи компонентно-ориентированной (объектной) технологии с созданием расширенных специализированных библиотек компонентов реали-

зованы в системе CAS.CADE (Computer Aided Software / Computer Aided Design Engineering) фирмы Matra Datavision. Система CAS.CADE состоит из несколь-

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

Библиотеки (Object Libraries) в CAS.CADE представляют собой специализированные наборы заранее разработанных компонентов на языке С++. Совокупность библиотек имеет иерархическую структуру. Базовые компоненты соответствуют классам объектной методологии. Примерами компонентов являются строки, списки, точки, матрицы, линии, поверхности, деревья, решатели уравнений, операторы сортировки, поиска на графах и т.п. Классы группируются в пакеты, пакеты – в наборы, наборы – в домены.

В CAS.CADE выделено несколько библиотек. Во-первых, это библиотеки 2D- и 3D-моделирования, включающие компоненты для определения, создания и

ПРОГРАММНЫЕ ПРОДУКТЫ САПР

255

 

 

манипулирования геометрическими моделями. Во-вторых, ряд библиотек предназначен для связи с ОС и управления данными, обмена с внешними CAD системами, создания сеточных моделей и др. Необходимо отметить, что основные приложения, на которые ориентирована CAS.CADE, – это приложения машинной графики и геометрического моделирования, поэтому в системе наиболее развиты библиотеки графических и геометрических компонентов.

С помощью CAS.CADE создают специализированные САПР при сравнительно малых затратах времени и средств.

* * *

Компьютерные технологии моделирования позволяют, таким образом, в ходе проектирования, расчета и конструирования ХТС оценить качество проекта, не прибегая к изготовлению экспериментальных образцов, что позволяет ускорить процесс совершенствования разработки ХТС до требований, предъявляемых заказчиком.

Вопросы для самоконтроля

1.Назовите источники неопределенности при проектировании ХТС.

2.Сформулируйте одноэтапную задачу интегрированного проектирования

сжесткими ограничениями в условиях неопределенности. Запишите дискретный аналог этой задачи.

3.Запишите алгоритм решения одноэтапной задачи интегрированного проектирования с жесткими ограничениями в условиях неопределенности.

4.Сформулируйте одноэтапную задачу интегрированного проектирования

смягкими ограничениями в условиях неопределенности. Запишите дискретный аналог этой задачи.

5.Запишите алгоритм решения одноэтапной задачи интегрированного проектирования с мягкими ограничениями в условиях неопределенности.

6.Сформулируйте одноэтапную задачу интегрированного проектирования со смешанными ограничениями в условиях неопределенности. Запишите дискретный аналог этой задачи.

7.Запишите алгоритм решения одноэтапной задачи интегрированного проектирования со смешанными ограничениями в условиях неопределенности.

8.Сформулируйте двухэтапную задачу интегрированного проектирования

сжесткими ограничениями в условиях неопределенности. Запишите дискретный аналог этой задачи.

9.Запишите алгоритм решения двухэтапной задачи интегрированного проектирования с жесткими ограничениями в условиях неопределенности.

10.Опишите наиболее известные программные продукты САПР.

11.Охарактеризуйте техническое обеспечение САПР.

12.Охарактеризуйте информационное обеспечение САПР.

13.Охарактеризуйте лингвистическое обеспечение САПР.