Автоматизированное проектирование - часть 36

 

  Главная      Учебники - Производство     

 

поиск по сайту           правообладателям

 

 

 

 

 

 

 

 

 

содержание   ..  34  35  36  37   ..

 

 

Автоматизированное проектирование - часть 36

 

 

:
&:#*%)K* :(*AK & +($5(!%%)$
-
%*#$A&
F
*:,&* ,$%+@*,:K
:!+(
5
@!"!
5
торых
можно
компоновать
содержимое
окна
формы
.
4.
Окно
свойств
и
событий
,
с
помощью
которого
ставятся
в
соответствие
друг
другу
объекты
ок
-
на
формы
,
события
и
обработчики
событий
.
:#2.&’$/
в
прикладной
программе
является
нажатие
клавиши
или
установка
курсора
мыши
в
объект
формы
.
Каждому
событию
должна
соответствовать
событийная
процедура
(
обработчик
события
),
которая
проверяет
код
клавиши
и
вызывает
нужную
ре
-
акцию
.
В
RAD
имеются
средства
для
удобства
разработки
обработчиков
событий
.
5.
Окно
редактора
кода
,
в
котором
пользователь
записывает
создаваемую
вручную
часть
кода
.
6.
Окно
проекта
список
модулей
и
форм
в
создаваемой
программе
.
Для
написания
событийных
процедур
в
Visual Basic
используется
язык
и
текстовый
редактор
од
-
ноименного
языка
,
в
Delphi —
язык
и
редактор
языка
Object Pascal.
В
CASE-
системе
фирмы
IBM,
включающей
части
VisualAge (
для
клиентских
приложений
)
и
VisualGen (
для
серверных
приложе
-
ний
),
базовым
языком
выбран
SmallTalk.
В
среде
разработки
приложений
клиент
-
сервер
SQLWindows
оригинальные
фрагменты
программ
пишутся
на
специальном
языке
SAL.
Нужно
заметить
,
что
для
ре
-
ализации
вычислительных
процедур
и
,
в
частности
,
для
написания
миниспецификаций
используется
обычная
для
3GL
технология
программирования
.
Обычно
после
написания
ПП
на
базовом
языке
компилятор
системы
переводит
программу
на
промежуточный
"
-
код
.
Вместе
с
интерпретатором
"
-
кода
эта
программа
рассматривается
,
как
ЕХЕ
-
файл
.
В
некоторых
развитых
средах
компилируется
обычный
ЕХЕ
-
файл
,
не
требующий
интерпрета
-
ции
для
своего
исполнения
.
Помимо
упрощения
написания
пользовательского
интерфейса
,
в
средах
RAD
предусматривают
-
ся
средства
для
реализации
и
ряда
других
функций
.
Так
,
в
наиболее
развитой
версии
Visual Basic
к
ним
относятся
средства
выполнения
следующих
функций
:
поддержка
ODBC,
что
дает
возможность
работы
с
различными
СУБД
;
разработка
баз
данных
;
разработка
трехзвенных
систем
распределенных
вычислений
;.
интерактивная
отладка
процедур
на
SQL Server;
управление
версиями
при
групповой
разработке
ПО
;
моделирование
и
анализ
сценариев
распределенных
вычислений
.
Для
создания
сред
RAD
в
случае
+$&$(#8#
0"#8")//’"#()*’9
требуется
решить
ряд
дополни
-
тельных
проблем
,
обусловливаемых
многоплатформенностью
в
гетерогенных
сетях
,
обилием
приме
-
няемых
форматов
данных
,
необходимостью
защиты
информации
и
т
.
п
.
Решение
этих
проблем
достиг
-
нуто
в
объектно
-
ориентированных
технологиях
на
базе
языка
сетевого
программирования
Java.
Кро
-
ме
того
,
с
помощью
Java
удается
решить
еще
одну
актуальную
для
Internet
и
Intranet
задачу
сделать
Web-
страницы
интерактивными
.
Платформенная
инвариантность
в
Java
достигается
,
благодаря
введению
виртуальной
метамаши
-
ны
с
системой
команд
,
максимально
приближенной
к
особенностям
большинства
машинных
языков
.
Любой
Web-
сервер
при
наличии
запроса
на
Java-
программу
со
стороны
клиента
транслирует
(
компи
-
лирует
)
эту
программу
на
язык
метамашины
.
Скомпилированный
модуль
,
называемый
байт
-
кодом
,
пе
-
ресылается
клиенту
.
Клиент
должен
выполнить
интерпретацию
байт
-
кода
.
Соответствующие
интер
-
претаторы
в
настоящее
время
имеются
в
браузерах
всех
основных
разработчиков
Web-
технологий
.
Java
используется
двояким
образом
.
Во
-
первых
,
как
средство
оживления
” Web-
страниц
.
В
этом
случае
программный
Java-
компонент
называют
)04$&#/
,
аплет
встраивается
в
страницу
с
помощью
специального
тега
,
имеющегося
в
языке
HTML.
Во
-
вторых
, Java —
универсальный
язык
программи
-
рования
и
может
быть
использован
для
написания
любых
приложений
,
не
обязательно
привязанных
к
Web-
технологии
.
Хотя
и
ранее
были
известны
технологии
на
базе
промежуточных
"
-
кодов
,
именно
технология
Java,
оказалась
наилучшим
образом
приспособленной
для
использования
в
гетерогенной
сетевой
сре
-
де
.
Она
последовательно
отражает
принципы
объектно
-
ориентированного
программирования
и
обес
-
печивает
приемлемую
эффективность
(
производительность
)
исполнения
программ
.
Эту
эффектив
-
ность
можно
еще
более
повысить
,
если
в
браузерах
заменить
интерпретацию
на
компиляцию
.
Для
разработки
ПО
на
языке
Java
создан
ряд
инструментальных
средств
.
Основной
средой
явля
-
&
.
+
.
)
"#$%!#&’&($"!))$* +($*,#&($"!)&*
143
:
&:#*%)K* :(*AK & +($5(!%%)$
-
%*#$A&
F
*:,&* ,$%+@*,:K
:!+(
5
@!"!
5
ется
JDK (Java Developer’s Kit).
В
ней
имеются
:
1
)
библиотеки
классов
,
в
том
числе
библиотеки
ос
-
новных
элементов
языка
,
часто
используемых
оболочек
(wrapper),
процедур
ввода
-
вывода
,
компонен
-
тов
оконного
интерфейса
и
др
. 2)
инструментальные
средства
такие
,
как
компилятор
байт
-
кодов
,
ин
-
терпретатор
,
просмотрщик
аплетов
,
отладчик
,
формирователь
оконных
форм
и
т
.
п
.
Развитую
RAD-
среду
— PowerJ —
предлагает
фирма
Sybase.
Значительное
внимание
уделяется
разработке
инструментальных
сред
для
создания
Web-
узлов
,
примером
такой
среды
может
служить
HAHTSite
фирмы
HAHTSoftware.
Для
разработки
Java-
программ
из
готовых
компонентов
можно
использовать
среду
IBM Visual Age for Java,
в
которой
имеются
(
как
и
в
среде
VB)
версии
учебная
,
профессиональная
и
общецелевая
(Enterprise),
и
др
.
Наряду
с
самостоятельными
RAD-
системами
имеются
и
RAD-
системы
в
составе САПР
.
Это
прежде
всего
упомяну
-
тая
выше
система
CAS.CADE
фирмы
Matra Datavision.
4
/340.0-04
-
48+.0-+84
9:001.
-.
604
D4@++
.
Появление
компонентно
-
ориентированных
тех
-
нологий
вызвано
необходимостью
повышения
эффективности
разработки
сложных
программных
си
-
стем
,
являющихся
в
условиях
использования
корпоративных
и
глобальных
вычислительных
сетей
распределенными
системами
.
Компонентно
-
ориентированные
технологии
основаны
на
использова
-
нии
предварительно
разработанных
готовых
программных
компонентов
.
Компиляция
программ
из
готовых
компонентов
идея
не
новая
.
Уже
первые
шаги
в
области
ав
-
томатизации
программирования
были
связаны
с
созданием
библиотек
подпрограмм
.
Конечно
,
для
объ
-
единения
этих
подпрограмм
в
конкретные
прикладные
программы
требовалась
ручная
разработка
зна
-
чительной
части
программного
кода
на
языках
третьего
поколения
.
Упрощение
и
ускорение
разработ
-
ки
прикладного
ПО
достигается
с
помощью
языков
четвертого
поколения
(4GL),
но
имеющиеся
систе
-
мы
на
их
основе
являются
специализированными
и
не
претендуют
на
взаимодействие
друг
с
другом
.
Современные
системы
интеграции
ПО
построены
на
базе
объектной
методологии
.
Так
,
выше
приведены
примеры
библиотек
классов
,
применяя
которые
прикладные
программис
-
ты
могут
создавать
субклассы
в
соответствии
с
возможностями
наследования
,
заложенными
в
исполь
-
зуемые
объектно
-
ориентированные
языки
программирования
.
При
этом
интероперабельность
компо
-
нентов
в
сетевых
технологиях
достигается
с
помощью
механизмов
,
подобных
удаленному
вызову
процедур
RPC.
К
библиотекам
классов
относятся
MFC,
библиотеки
для
доступа
к
реляционным
БД
(
например
,
для
встраивания
в
прикладную
программу
драйверов
ODBC)
и
др
.
Преимущества
использования
готовых
компонентов
обусловлены
тщательной
отработкой
мно
-
гократно
используемых
компонентов
,
их
соответствием
стандартам
,
использованием
лучших
из
изве
-
стных
методов
и
алгоритмов
.
В
то
же
время
в
компонентах
библиотек
классов
спецификации
интерфейсов
не
отделены
от
соб
-
ственно
кода
,
следовательно
,
использование
библиотек
классов
не
профессиональными
программис
-
тами
проблематично
.
Именно
стремление
устранить
этот
недостаток
привело
к
появлению
CBD —
компонентно
-
ориентированных
технологий
разработки
ПО
.
Составными
частями
таких
технологий
являются
унифицированные
способы
интеграции
программного
обеспечения
.
Возможны
два
способа
включения
компонентов
(
модулей
)
в
прикладную
программу
модер
-
низация
(reenginering)
или
инкапсуляция
(encapsulation
или
wrapping).
L#-$"*’6)=’9
требует
знания
содержимого
компонента
,
интероперабельность
достигается
вне
-
сением
изменений
собственно
в
сам
модуль
.
Такой
способ
можно
назвать
способом
белого
ящика
”.
Очевидно
,
что
модернизация
не
может
выполняться
полностью
автоматически
,
требуется
участие
профессионального
программиста
.
D*%)0+749=’9
выполняется
включением
модуля
в
среду
с
помощью
интерфейса
его
внешне
-
го
окружения
(
оболочки
— wrapper).
При
этом
компонент
рассматривается
как
черный
ящик
”:
спе
-
цификации
,
определяющие
интерфейс
,
выделены
из
модуля
,
а
детали
внутреннего
содержимого
скры
-
ты
от
пользователя
.
Обычно
компоненты
поставляются
в
готовом
для
использования
виде
скомпили
-
рованного
двоичного
кода
.
Обращения
к
модулю
возможны
только
через
его
интерфейс
.
В
специфи
-
кации
интерфейса
включаются
необходимые
для
интероперабельности
сведения
о
характеристиках
модуля
/#-745*)9
)2+&")%=’9
.
В
состав
этих
сведений
могут
входить
описания
всех
входных
и
вы
-
ходных
для
модуля
данных
(
в
том
числе
имеющихся
в
модуле
интерактивных
команд
),
структура
ко
-
мандной
строки
для
инициализации
процедур
,
сведения
о
требуемых
ресурсах
.
&
.
+
.
)
"#$%!#&’&($"!))$* +($*,#&($"!)&*
144
:
&:#*%)K* :(*AK & +($5(!%%)$
-
%*#$A&
F
*:,&* ,$%+@*,:K
:!+(
5
@!"!
5
Компонентно
-
ориентированные
системы
построены
на
основе
инкапсуляции
компонентов
.
В
архитектуре
этих
систем
можно
выделить
следующие
части
:
1
)
прикладная
программа
(
клиент
),
со
-
здаваемая
для
удовлетворения
возникшей
текущей
потребности
; 2)
посредник
(
брокер
или
менеджер
),
служащий
для
установления
связи
между
взаимодействующими
компонентами
и
для
согласования
их
интерфейсных
данных
; 3)
множество
компонентов
,
состоящих
каждый
из
программного
модуля
,
реа
-
лизующего
некоторую
полезную
функцию
,
и
оболочки
(
интерфейса
).
В
спецификации
интерфейса
могут
быть
указаны
характеристики
модуля
,
реализуемые
методы
и
связанные
с
модулем
события
(
на
-
пример
,
реакции
на
нажатие
клавиш
).
Собственно
интерфейс
представляет
собой
обращения
к
функциям
модуля
,
называемым
в
СВ
D-
технологиях
методами
.
Эти
обращения
переводятся
в
двоичный
код
,
что
обеспечивает
при
их
исполь
-
зовании
независимость
от
языка
программирования
.
Один
и
тот
же
модуль
может
реализовывать
не
-
сколько
разных
функций
,
поэтому
у
него
может
быть
несколько
интерфейсов
или
методов
.
Каждый
новый
создаваемый
интерфейс
обеспечивает
доступ
к
новой
функции
и
не
отменяет
прежние
возмож
-
но
еще
используемые
интерфейсы
.
Схематично
взаимодействие
компонентов
можно
представить
следующим
образом
.
Клиент
об
-
ращается
с
запросом
на
выполнение
некоторой
процедуры
.
Запрос