
- •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.2.3. Автоматизация ole
Автоматизация OLE – это протокол, посредством которого одно приложение может получить доступ к объекту, размещённому внутри, другого приложения или DLL. Доступ к этому объекту предоставляет возможность:
управлять действиями приложения или DLL;
получить доступ к свойствам приложения или DLL.
Приложение, которое может быть автоматизировано, называется сервером автоматизации. Приложение, которое автоматизирует другое приложение, называется клиентом автоматизации. При этом приложение может быть одновременно как сервером, так и клиентом.
Автоматизация существенно увеличивает интеграцию программного обеспечения. Классический пример автоматизации – это пакет Microsoft Office, в котором можно управлять из одного приложения другими приложениями.
Построение серверов и клиентов автоматизации поддерживает в среде Delphi. Это означает, что можно использовать приложение Delphi для автоматизации другого приложения, или можно установить приложение так, чтобы оно быть было доступно для автоматизации другими приложениями.
Автоматизация – это идеология доступа к объектам приложения и манипуляция с ними извне. Автоматные объекты доступны только программно, т.е. программа-клиент даёт команды программе серверу, и та выполняет эти команды, предоставляя программе-клиенту результат. Команды могут писаться на любых языках или макроязыках. Автоматные объекты не видны конечному пользователю и используются обычно для автоматизации часто повторяемых задач.
Автоматные объекты не могут связываться или внедряться в ПП. Они временны, существуют только во время выполнения ПП и доступны только с помощью заранее запрограммированного дистанционного управления.
Автоматизация требует три вида информации:
Класс OLE-объекта (например, Word, Matlab и т.д.)
Документ OLE – файл с данными объекта.
Элемент OLE – часть документа, подлежащая связыванию или внедрению.
Существует два основных типа автоматизации:
серверы автоматизации;
клиенты автоматизации.
Сервер автоматизации – это приложение или DLL, которое владеет объектом. Клиент автоматизации –приложение или DLL, которое получает доступ к объекту. Одно приложение или DLL может выступать и в качестве сервера, и в качестве клиента. При этом автоматизация определяет два вида серверов автоматизации OLE:
серверы внутренней обработки;
локальные серверы.
Серверы внутренней обработки – это DLL, которые загружаются в адресное пространство прикладной программы. Причина для создания серверов внутренней обработки – совместное использование объекта, написанного на одном языке, и приложения, написанного на другом языке. Можно, к примеру, совместно использовать объекты Delphi, приложения С++ и Visual Basic.
Локальные серверы – это автономные исполняемые модули, которые содержат серверы автоматизации. Классический пример локального сервера – Word.
При отсутствии необходимости пересекать языковые барьеры DLL в использовании быстрее и проще.
32.2.4. Структурированная память
Структурированная память (structured storage) – это специальная техника для записи объектов или данных на диск. Данная техника обеспечивает все услуги, которые пользователи привыкли видеть в стандартном файловом вводе/выводе. Можно записывать файлы на диск, можно создавать подкаталоги и считывать и записывать данные из этих файлов и каталогов посредством широкого множества технических приемов.
Различие между структурированной памятью и стандартным файловым вводом/выводом заключается в том, что каждый набор каталогов и файлов в структурированной памяти размещается внутри единого большого файла.
Файл структурированной памяти называется составным файлом. «Каталоги» внутри этих составных файлов называются потоками. В составном файле могут храниться и другие типы объектов. В действительности все DOC-файлы в Microsoft Word являются файлами структурированной памяти.
Сегодня структурированная память является одной из стандартных формой файлового ввода/вывода в современных версиях Windows.
Как было отмечено выше, структурированная память является частью OLE, отвечающей за сохранение составных файлов (объектов, документов).
В заключение следует отметить, что программный интерфейс для работы со структурированной памятью поддерживается во многих средах разработки ПО. Составные файлы создаются при помощи двух обращений: StgCreateDocFile и Storage.CreateStream. Открываются составные файлы при помощи вызовов StgOpenStrearn и Stomge.OpenStream. Наиболее важным интерфейсом в OLE является интерфейс IDispatch.