Данная книга посвящена новейшей технологии разработки приложений баз данных в Delphi, основанной на концепции архитектуры, управляемой моделями (Model Driven Architecture ? MDA). Читатель познакомится с идеологией MDA в целом, освоит базовые основы языка UML, познакомится с мощным и лаконичным диалектом языка OCL, благодаря которому гораздо легче и быстрее решаются задачи доступа к данным, чем при традиционной разработке с применением SQL-запросов. В книге подробно, с разбором множества конкретных примеров, описываются практические шаги по созданию MDA-приложений в Delphi. Читатель на практике убедится, как быстро и просто можно создавать сложные приложения, работающие практически с любой СУБД, при этом зачастую вообще не используя SQL и в ряде случаев даже не прибегая к написанию программного кода. Книга в первую очередь адресована читателям, знакомым с традиционными подходами создания приложений баз данных в Delphi, однако она может быть полезна и всем тем, кто желает познакомиться с принципиально новой технологией создания приложений в XXI веке ? MDA. Об авторе: Константин Грибачев Окончил Московский физико-технический институт в 1981 г., в течении ряда лет работал в области систем управления космическими аппаратами. Программист с 20-летним стажем, начинал с разработки ПО для бортовых ЭВМ. Прошел путь от работы в кодах, ассемблера, ФОРТРАНА, до разработок многозвенных информационных систем и MDA-технологии. Последние годы работает ведущим инженером-программистом, отвечая за создание и внедрение информационных технологий в подразделении фирмы. Автор 12 патентов на изобретения. В 2003-2004 гг. опубликованы 8 статей в журнале "Компьютер Пресс" по тематике Bold for Delphi и 2 статьи по базам данных. Живет и работает в Подмосковье. Сайт автора: http://mda-bor.land.ru/
Содержание
Предисловие
От автора
Как появилась эта книга
Благодарности
Введение
Для кого написана книга
Преодоление трудностей
Обзор содержания
От издательства
Часть I. Обзор MDA-архитектуры
Глава 1. MDA-архитектура и язык UML
История
Структура и состав
Предпосылки появления MDA
Модель приложения. Типы моделей
Этапы разработки MDA-приложений
Недостатки традиционного подхода
Преимущества MDA
Состояние и перспективы MDA
Концепции реализации
Возможные последствия внедрения MDA
Унифицированный язык моделирования UML
Общие сведения
Бизнес-правила
Диаграмма классов
Классы
Отношения
Классы-ассоциации
Пакеты
UML-модель и схема БД
UML-редакторы
Основы работы в Rational Rose
Другие UML-редакторы
Резюме
Глава 2. Обзор Borland MDA
Что такое Borland MDA (BMDA)
История развития
Borland Enterprise Studio
Borland Delphi 7 Studio Architect
C#Builder Architect
Возможности и специфика
Преимущества для разработчиков
Последовательность изучения
Возможные трудности
Bold for Delphi - основа Borland MDA
Инсталляция и обзор инструментов
Резюме
Глава 3. Быстрый старт
Создание простого MDA-приложения
Создание бизнес-уровня
Создание модели приложения
Создание графического интерфейса
Создание уровня данных
Работа с Приложением
Модификация модели приложения
Обсуждение результатов
Создание стандартных приложений
Резюме
Глава 4. Модель приложения
Роль модели в Borland MDA
Тег-параметры (tagged values)
Rational Rose как средство разработки моделей для Borland MDA
Настройка Rational Rose
Создание модели в Rational Rose и ее импорт в Borland MDA
Настройка тег-параметров модели в Rational Rose
Настройка тег-параметров модели во встроенном UML-редакторе
Экспорт модели из встроенного редактора в Rational Rose
Другие способы импорта-экспорта моделей
Инструменты встроенного редактора моделей
Средства настройки свойств модели
Средства настройки атрибутов класса
Настройка ролей ассоциаций
Резюме
Глава 5. OCL - язык объектных ограничений
Общие сведения
Роль OCL в Borland MDA
Модель для изучения
Доступ к классам и атрибутам из OCL
Базовые элементы и понятия
Типы данных
Операции сравнения в OCL
Типы возвращаемых выражений
Арифметические операторы
Коллекции
Навигация по модели
Операции над коллекциями
Навигация по коллекции
Выборка (фильтрация) и исключение
Операции с несколькими множествами
Сортировка элементов коллекции
Логические операции над коллекциями
Операция Collect
Вычисления над коллекциями
Работа с типами в OCL
Обработка типов для элементов
Обработка типов для коллекций
Операции логического выбора
Прочие операции
Операции над строками
Операции с датами и временем
Форматы дат и времени
Использование OCL
Задание выражений для вычисляемых атрибутов
Вычисляемые ассоциации
Формирование ограничений (Constraints)
Особенности диалекта OCL в среде Bold for Delphi
Расширяемость диалекта OCL в Bold
Резюме
Часть II. Создание MDA-приложений
Глава 6. Объектное пространство
Понятие Object Space
Состав и структура ОП
Класс TBoldElement
Свойства TBoldElement
Методы TBoldElement
Класс TBoldSystem
Свойства TBoldSystem
Методы TBoldSystem
Работа с объектным пространством
Программное управление атрибутами объектами ОП
Программное управление объектами ОП
Резюме
Глава 7. Дескрипторы (Handles)
Роль дескрипторов
Классификация дескрипторов
BoldSystemHandle
BoldSystemTypeInfoHandle
BoldExpressionHandle
BoldDerivedHandle
BoldVariableHandle и BoldOCLVariables
BoldListHandle
BoldCursorHandle
BoldReferenceHandle
BoldUnloaderHandle
Резюме
Глава 8. Использование OCL
Роль Object Constraint Language в Borland MDA
Условная модель
Создание приложения
Встроенный OCL-редактор
Формирование цепочек дескрипторов
Связь OCL и графического интерфейса
OCL и вычисляемые данные
Использование OCL в программе
Программная работа с классом TBoldElement и его наследниками
с использованием OCL?вычислений
OCL-репозиторий
Резюме
Глава 9. Графический интерфейс
Особенности визуальных MDA-компонентов
BoldLabel
BoldEdit
BoldGrid
BoldSortingGrid
BoldComboBox
BoldListBox
BoldCheckBox
BoldPageControl
BoldTreeView
BoldImage
Рендереры
Автоформы
Общие сведения. Структура автоформы
Ограничения
Генерация автоформ
Управление отображением атрибутов
Дополнительные инструменты
BoldCaptionController
Резюме
Глава 10. Работа с уровнем данных
Функции уровня данных
Структура и состав компонентов
Работа с СУБД
Подключение уровня данных
Генерация схемы базы данных
Состав системных таблиц
Структура генерируемых таблиц
Использование адаптеров СУБД
Создание собственных адаптеров СУБД
Требования к СУБД
Состав программных модулей адаптера СУБД
Преимущества использования адаптеров
Использование BoldActions для работы с БД
Язык SQL в MDA-приложениях
Идеология применения SQL
Использование дескриптора BoldSQLHandle
Механизм OCL2SQL
Оптимизация работы в клиент-серверной архитектуре
Bold и "тонкие базы данных"
Работа с несколькими СУБД
Использование XML-документов
Сохранение данных в XML-файлах
Практический пример использования XML
Резюме
Глава 11. Использование сторонних визуальных компонентов
Средства управления внешними компонентами
BoldDataSet - шлюз для использования DB?компонентов
Использование механизма подписки и программного кода
Резюме
Глава 12. Генерация кода
Процедура генерации
Структура и состав генерируемых модулей
Практическое использование кода модели
Работа с классами и атрибутами
Работа с ассоциациями
Операции
Резюме
Глава 13. Механизм "подписки"
Описание и реализация
События и подписка
Основные классы и реализация
Программное использование подписки
Использование BoldPlaceableSubscriber
Программирование вычисляемых атрибутов
Обратно-вычисляемые атрибуты
Резюме
Глава 14. Обзор дополнительных возможностей
Регионы
Жизненный цикл связанных объектов
Трехзвенная архитектура
Удаленное подключение к БД посредством SOAP
Синхронизация объектных пространств
Сервер управления блокировками
Object Lending Library (OLLE)
Эволюция модели и БД
Многоязыковая поддержка
Средства отладки
Резюме
Глава 15. Продукты сторонних производителей
BoldExpress Studio
BoldGridPro
OCL Extensions
Bold TCP OSS
Bold SOAP Server (BSS)
BoldRave
deBold
pHGantTimePackage и phGrid_BA
Резюме
Заключение
Приложение А. Скрипт для транслитерации имен UML-модели
Особенности
Создание и установка:
Использование
Исходный текст скрипта
Приложение Б. ECO - развитие Borland MDA для платформы
Microsoft .NET
О продукте C#Builder Architect
Основные возможности ECO
Создание простого ECO-приложения
Генерация шаблона
Разработка UML-модели
Формирование бизнес-уровня
Создание графического интерфейса
Автоформы
Создание уровня данных
Специфика ECO и отличия от Bold
Графический интерфейс
Бизнес-уровень и UML-моделирование
Уровень данных
Резюме
Приложение В. Библиотека для работы с Object Space
Назначение
Причины и цели создания
Описание
Основные процедуры и функции
Вспомогательные процедуры и функции
Примеры использования
Добавление и изменение объектов ОП
Поиск и связывание объектов
Предупреждения
Приложение Г. Часто задаваемые вопросы
Общие вопросы
СУБД
Компоненты и OCL
Приложение Д. Интернет-источники
Список литературы
АЛФАВИТНЫЙ УКАЗАТЕЛЬ