Норенков И.П. - Основы автоматизированного проектирования (1060628), страница 64
Текст из файла (страница 64)
Окно редактора кода, в котором пользователь записывает создаваемуювручную часть кода.6. Окно проекта - список модулей и форм в создаваемой программе.Для написания событийных процедур в Visual Basic используется одноименный язык и текстовый редактор этого языка, в Delphi - язык и редактор языкаObject Pascal. В CASE-системе фирмы IBM, включающей части VisualAge (дляклиентских приложений) и VisualGen (для серверных приложений), базовым языком выбран SmallTalk. В среде разработки приложений клиент — серверSQLWindows оригинальные фрагменты программ пишутся на специальном языкеSAL.
Нужно заметить, что для реализации вычислительных процедур и, в частности, для написания мини-спецификаций используется обычная для 3GL технология программирования.Обычно после написания прикладной программы на базовом языке компилятор системы переводит программу на промежуточный jo-код. Вместе с интерпретатором /?-кода эта программа рассматривается как ЕХЕ-файл. В некоторых развитых средах компилируется обычный ЕХЕ-файл, не требующийинтерпретации для своего исполнения.2625.5.
Инструментальные средства концептуального проектированияПомимо упрощения написания пользовательского интерфейса, в средах RADпредусматриваются средства для реализации и ряда других функций. Так, внаиболее развитой версии Visual Basic к ним относятся средства выполненияследующих функций:• поддержка ODBC, что дает возможность работы с различными СУБД;• разработка баз данных;• разработка трехзвенных систем распределенных вычислений;• интерактивная отладка процедур на SQL Server;• управление версиями при групповой разработке ПО;• моделирование и анализ сценариев распределенных вычислений.Для создания сред RAD в случае сетевого программирования требуетсярешить ряд дополнительных проблем, обусловленных многоплатформенностьюв гетерогенных сетях, обилием применяемых форматов данных, необходимостью защиты информации и т. п.
Решение этих проблем достигнуто в объектноориентированных технологиях на базе языка сетевого программирования Java.Кроме того, с помощью Java удается решить еще одну актуальную для Internetи Intranet задачу - сделать Web-страницы интерактивными.Хотя и ранее были известны технологии на базе промежуточных /7-кодов,именно технология Java оказалась наилучшим образом приспособленной дляиспользования в гетерогенной сетевой среде. Она последовательно отражаетпринципы объектно-ориентированного программирования и обеспечивает приемлемую эффективность (производительность) исполнения программ.
Эту эффективность можно еще более повысить, если в браузерах заменить интерпретацию компиляцией.Для разработки ПО на языке Java создан ряд инструментальных средств.Основной средой является JDK (Java Developer's Kit). В ней имеются: 1) библиотеки классов, в том числе библиотеки элементов языка, часто используемых оболочек (wrapper), процедур ввода-вывода, компонентов оконного интерфейса и другие; 2) инструментальные средства, такие, как компиляторбайт-кодов, интерпретатор, просмотрщик аплетов, отладчик, формировательоконных форм и т. п. Развитую RAD-среду - Power J - предлагает фирма Sybase.Наряду с самостоятельными RAD-системами имеются и RAD-системы в составеСАПР.
Это прежде всего упомянутая выше система CAS.CADE фирмы Matra Datavision.Компонентно-ориентированные технологииПоявление компонентно-ориентированных технологий вызвано необходимостью повышения эффективности разработки сложных программных систем,являющихся в условиях использования корпоративных и глобальных вычислительных сетей распределенными системами. Компонентно-ориентированныетехнологии основаны на использовании предварительно разработанных готовых программных компонентов.Компиляция программ из готовых компонентов - идея не новая.
Уже первые шаги в области автоматизации программирования были связаны с созда-2635. Методическое и программное обеспечение автоматизированных системнием библиотек подпрограмм. Конечно, для объединения этих подпрограмм вконкретные прикладные программы требовалась ручная разработка значительной части программного кода на языках третьего поколения. Упрощение иускорение разработки прикладного ПО достигается с помощью языков четвертого поколения (4GL), но имеющиеся системы на их основе являются специализированными и не претендуют на взаимодействие друг с другом.Современные системы интеграции ПО построены на базе объектной методологии.
Так, имеются библиотеки классов, применяя которые прикладныепрограммисты могут создавать субклассы в соответствии с возможностяминаследования, заложенными в используемые объектно-ориентированные языки программирования. При этом интероперабельность компонентов в сетевыхтехнологиях достигается с помощью механизмов, подобных удаленному вызову процедур RPC. К библиотекам классов относятся MFC, библиотеки длядоступа к реляционным базам данных (например, для встраивания в прикладную программу драйверов ODBC) и др.Преимущества использования готовых компонентов обусловлены тщательной отработкой многократно применяемых компонентов, их соответствием стандартам, выбором лучших из известных методов и алгоритмов.В то же время в компонентах библиотек классов спецификации интерфейсов не отделены от собственно кода, следовательно, использование библиотекклассов не профессиональными программистами проблематично.
Именностремление устранить этот недостаток привело к появлению CBD - компонентно-ориентированных технологий разработки ПО. Составными частями такихтехнологий являются унифицированные способы интеграции программного обеспечения.Возможны два способа включения компонентов (модулей) в прикладнуюпрограмму - модернизация (reengineering) или инкапсуляция (encapsulation илиwrapping).Модернизация требует знания содержимого компонента, интероперабельность достигается внесением изменений собственно в сам модуль. Такой способ можно назвать способом «белого ящика». Очевидно, что модернизация неможет выполняться полностью автоматически, требуется участие профессионального программиста.Инкапсуляция выполняется включением модуля в среду с помощью интерфейса - его внешнего окружения (оболочки - wrapper).
При этом компонентрассматривается как «черный ящик»: спецификации, определяющие интерфейс,выделены из модуля, а детали внутреннего содержимого скрыты от пользователя. Обычно компоненты поставляются в готовом для использования видескомпилированного двоичного кода. Обращения к модулю возможны толькочерез его интерфейс. В спецификации интерфейса включаются необходимыедля интероперабельности сведения о характеристиках модуля - модульнаяабстракция. В состав этих сведений могут входить описания всех входных ивыходных для модуля данных (в том числе имеющихся в модуле интерактив-2645.5. Инструментальные средства концептуального проектированияных команд), структура командной строки для инициализации процедур, сведения о требуемых ресурсах.Компонентно-ориентированные системы построены на основе инкапсуляции компонентов.
В архитектуре этих систем можно выделить следующие части: 1) прикладная программа (клиент), создаваемая для удовлетворения возникшей текущей потребности; 2) посредник (брокер или менеджер), служащийдля установления связи между взаимодействующими компонентами и для согласования их интерфейсных данных; 3) множество компонентов, состоящихкаждый из программного модуля (объекта), реализующего некоторую полезную функцию, и оболочки (интерфейса). В спецификации интерфейса могут бытьуказаны характеристики модуля, реализуемые методы и связанные с модулемсобытия (например, реакции на нажатие клавиш).Собственно интерфейс представляет собой обращения к функциям модуля,называемым в CBD-технологиях методами.
Эти обращения переводятся вдвоичный код, что обеспечивает при их использовании независимость от языка программирования. Один и тот же модуль может реализовывать несколькоразных функций, поэтому у него может быть несколько интерфейсов или методов. Каждый новый создаваемый интерфейс обеспечивает доступ к новой функции и не отменяет прежние возможно еще используемые интерфейсы.Схематично взаимодействие компонентов можно представить следующимобразом. Клиент обращается с запросом на выполнение некоторой процедуры.Запрос направляется к посреднику.
В посреднике имеется предварительно сформированный каталог (реестр или репозиторий) интерфейсов процедур с указанием компонентов-исполнителей. Посредник перенаправляет запрос соответствующему исполнителю. Исполнитель может запросить параметры процедуры.После выполнения процедуры полученные результаты возвращаются клиенту.При этом пользователь оперирует удобными для его восприятия идентификаторами компонентов и интерфейсов, а с помощью каталога эти идентификаторы переводятся в указатели (ссылки), используемые аппаратно-программнымисредствами, и которые однозначно определяют интерфейс в распределенной сетииз многих компьютеров.В большинстве случаев реализуется синхронный режим работы, подразумевающий приостановку процесса клиента после выдачи запроса до полученияответа.Наиболее популярными в настоящее время являются следующие CBD-технологии.• CORBA—технология, основанная на спецификациях, разработанных специально созданным консорциумом OMG, в который вошли представители ведущих компьютерных фирм.
В CORBA реализуются распределенные вычисления на базе программ-посредников ORB.• COM (Common Object Model) - технология, развиваемая корпорациейMicrosoft на базе механизма OLE. Сетевой вариант этой технологии (для систем распределенных вычислений) известен под названием DCOM (Distributed2655 Методическое и программное обеспечение автоматизированных системСОМ). Объекты DCOM (в частности, объекты, которые можно вставлять вHTML-документы или к которым можно обращаться из Web-браузеров) известны под названием компонентов ActiveX.