- •1. Кризис программирования
- •2. Понятие жизненного цикла по
- •3. Требования к технологии проектирования
- •4. Понятия профессионального программирования
- •5. Проект и команда
- •6. Задача профессионального программирования
- •7. Алгоритмы
- •8. Модели и моделирование
- •9. Структурный подход
- •9.1. Проблема сложности
- •9.2. Сущность структурного подхода
- •9.3. Метод функционального моделирования (sadt)
- •9.3.1. Состав функциональных моделей
- •9.3.2. Методика построения модели
- •9.4. Метод моделирования процессов - потоков данных (dfd)
- •9.4.1. Общая концепция
- •9.4.2. Состав диаграмм потоков данных
- •13. Венгерская нотация
- •14. Методология и парадигма программирования
- •15. Современные методологии программирования
- •16. Методология императивного программирования
- •17. Методология объектно-ориентированного программирования
- •18. Методология функционального программирования
- •19. Методология логического программирования
- •20. Методология программирования в ограничениях
- •21. Методология структурного императивного программирования
- •22. Методология параллельного императивного программирования
- •23. Методология нейросетевого программирования
- •23.1. Модель нейрона с линейной функцией активации
- •23.2. Модель нейрона с радиальной функцией активации
- •23.3. Разработка нейросетевой модели
- •24. Основные типы ошибок в программах
- •25. Отладка и тестирование
- •26. Режимы работы компилятора Delphi для поиска ошибок
- •27. Задание режимов работы отладчика с помощью переключающих директив
- •28. Пользователи и их поддержка
- •29. Поддержка программиста: общие требования
- •29.1. Пролог модуля
- •29.2. Проектная документация
- •29.3. Оформление текста программы
- •30. Поддержка конечного пользователя
- •31. Технология программирования графики
- •31.1. Графическая подсистема оболочек Win32/64
- •31.2. Графические средства Delphi
- •31.3. Проектирование интерфейса с пользователем: компоненты стандартных диалогов
- •32.Технология компонентного программирования
- •32.1. Технология com
- •32.1.1. Общая концепция
- •32.1.2. Интерфейс com
- •32.1.3. Сервер com
- •32.2. Технология ole
- •32.2.1 Суть и содержание ole
- •32.2.2.Терминология ole
- •32.2.3. Автоматизация ole
- •32.2.4. Структурированная память
- •32.3. Технология corba
- •32.4. Технология Java
- •32.5.Технология .Net
- •33. Технология описания аппаратуры
- •Input clock, reset, en;
- •If(!reset)
- •34. Технология коллективной разработки
- •34.1. Авторская разработка
- •34.2. Коллективная разработка
- •34.2.1. Технические командные роли
- •34.2.2. Психологические командные роли
- •34.2.3. Типы совместной деятельности
- •34.3. Общинная модель разработки
- •35. Технология оценки качества по
- •35.1. Подходы к оценке качества по
- •35.2. Характеристики качества по
- •35.3. Оценка качества процесса разработки
- •35.3.1. Модель зрелости процесса разработки по
- •35.3.2. Определение возможностей и улучшение процесса создания по
- •35.4. «Достаточно хорошее» по
- •33.5. Стандартизация информационных технологий
- •Международные организации, входящие в структуру оон.
- •Промышленные профессиональные или административные организации.
- •Промышленные консорциумы.
- •36. Инструментальные средства поддержки некоторых технологических подходов
- •36.1. Инструментальные системы
- •36.1.1. Инструментальные среды программирования
- •36.1.2. Средства автоматизации разработки программ (case-средства)
- •36.1.3. Интегрированные среды
- •36.1.4. Репозитории проекта
- •36.2. Поддержка коллективной разработки: системы управления версиями
- •37. Организация диалогов
- •38. Защита программного кода
32.3. Технология corba
CORBA – это аббревиатура от Common Object Request Broker Architecture (стандартная архитектура брокера объектных запросов), обозначающая открытую, независимую от поставщика архитектуру и инфраструктуру, позволяющую использовать различные приложения для совместной работы в сетях.
Стандарт CORBA (как и стандарт UML) разработан группой Object Management Guide (OMG) – сообществом ведущих фирм производителей программного обеспечения таких, как Digital Equipment Corporation, Hewlett-Packard Company, HyperDesc Corporation и др.
Архитектура CORBA основана на трех ключевых блоках:
OMG Interface Definition Language (IDL) – язык описания интерфейсов.
Object Request Broker (ORB) – брокер объектных запросов.
Internet Inter-ORB Protocol (IIOP) – стандартный протокол обмена данными для CORBA, реализованный на базе TCP/IP.
CORBA-приложения состоят из объектов, отдельных модулей программного обеспечения, объединяющих функциональность и данные.
При помощи языка IDL для каждого типа объекта жестко описывается его интерфейс. Тем самым фиксируется набор операций, выполняемых объектом и набор параметров.
Описание интерфейса можно отобразить в описание на одном из популярных языков программирования. В настоящее время разработаны стандарты отображения для C, C++, Java, COBOL, Smalltalk, Ada, Lisp, Python, IDLscript.
Реализация объекта (его исполняемый код и данные) инкапсулируется за границей описанного интерфейса.
Технология работы CORBA-приложения заключается в следующем.
Формируется «заглушка» (Stub), которая представляет собой откомпилированное IDL-описание интерфейса клиентской части.
Формируется «скелет» (Skeleton) - откомпилированное IDL-описание интерфейса серверного объекта.
Выполняется реализация серверного объекта (Object Implementation) и клиентской части к нему (Client).
Для каждого экземпляра CORBA-объекта формируется своя уникальная объектная ссылка.
Клиент, применяя объектную ссылку, передает ORB данные о том, какой именно экземпляр объекта должен быть задействован. При этом клиент действует так, как будто оперирует напрямую с экземпляром объекта, однако в действительности происходит обращение к методам заглушки, которая затем и передает через ORB запрос на выполнение и код скелета серверного объекта.
Для описываемой схемы взаимодействия частей приложения характерны следующие черты:
Клиент с самого начала знает о типе исполняемого объекта, поскольку как клиентская заглушка, так и скелет серверного объекта, генерируются из одного и того же IDL-описания.
ORB клиента и ORB серверного объекта базируются на общем протоколе IIOP.
32.4. Технология Java
Технология Java – это распределенная объектно-ориен-тированная платформа для разработки приложений, предназначенных для работы в среде Web.
По замыслу создателей этой технологии отводилась роль сетевого эсперанто:
базовый язык данной технологии – Java максимально независим от используемой платформы;
Java разрабатывался с ориентацией на сетевые применения.
Подобная роль «универсального языка сети» предполагает разработку программного обеспечения на основе рассматриваемой технологии с потенциальным запасом «морального нестарения», что в свою очередь, подразумевает долговременное сопровождение разрабатываемых продуктов.
Разработка на языке Java имеет ряд особенностей, особое место среди которых занимают семантические компромиссы: императивная минимальность заимствована из языка Pascal, а существующая поддержка многопоточных вычислений указывает на преемственность с языком C++.
С одной стороны – основной принцип разработки программ по технологии Java – это безопасность, которая обеспечивается следующими характеристиками:
современный язык программирования;
синтаксис по типу языка C++, без указателей;
виртуальная машина и независимость от платформы;
поддержка библиотек потоков и сетевой среды;
поддержка аплетов (клиентских приложений);
расширенные прикладные интерфейсы типа 3D, MEDIA, Beans, Swing.
С другой стороны разработка систем на основе технологии Java – это создание несложных аплетов и мощных серверов. При этом вследствие низкой эффективности выполнения программ на языке Java (обратная сторона подхода с использованием виртуальной машины) и длительной загрузки аплетов по сети, язык Java представляется слишком слабым средством для программирования серверов и избыточно сильным – для не отличающихся особой сложностью клиентов.
В целом компонентная технология на основе языка Java представляет собой противоречивую, но перспективную платформу, для которой существует множество прикладных программных интерфейсов для разработки программ в прикладных областях.