Table Of ContentББК32 973 233-018
УДК 681 3 06
Г82
Грибачев К Г
Г82 Delphi и Model Driven Architecture. Разработка приложений баз данных. —
СПб.. Питер, 2004. — 348 с. ил.
ISBN 5-469-00185-7
Данная книга посвящена новейшей технологии разработки приложений баз данных в Delphi,
основанной на концепции архитектуры, управляемой моделями (Mode! Driven Architecture —
MDA). Читатель познакомится с идеологией MDA в целом, освоит базовые основы языка UML,
познакомится с мощным и лаконичным диалектом языка OCL, благодаря которому гораздо легче
и быстрее решаются задачи доступа к данным, чем при традиционной разработке с применением
SQL-запросов. В книге подробно, с разбором множества конкретных примеров, описываются
практические шаги по созданию MDA-приложений в Delphi Читатель на практике убедится, как
быстро и просто можно создавать сложные приложения, работающие практически с любой СУБД,
при этом зачастую вообще не использ>я SQL и в ряде случаев даже не прибегая к написанию
программного кода. Книга в первую очередь адресована читателям, знакомым с традиционными
подходами создания приложений баз данных в Delphi, однако она может быть полезна и всем тем,
кто желает познакомиться с принципиально новой технологией создания приложений в XXI веке
— MDA.
ББК 32 973 233-018
УДК 681 3 06
Все права защищены Никакая часть данной книги не может быть воспроизведена а какой бы то ни было форме без письменного
разрешения владельцев авторских прав
Информация содержащаяся в данной книге, получена из источников рассматриваемых издательством как надежные Тем не
менее, имея в виду возможные человеческие или технические ошибки, издательство не может гарантировать абсолютную
точность и полноту приводимых сведений и не несет ответственности за возможные ошибки связанные с использованием книги
ISBN 5-469-00185-7 © ЗАО Издательский дом «Питер», 2004
Краткое содержание
Предисловие 13
От автора 15
Введение 17
Часть I. Обзор MDA-архитектуры 20
Глава 1. MDA-архитектура и язык UML 21
Глава 2. Обзор Borland MDA 47
Глава 3. Быстрый старт 60
Глава 4. Модель приложения 81
Глава 5. OCL — язык объектных ограничений 104
Часть II. Создание MDA-приложений 130
Глава 6. Объектное пространство 131
Глава 7. Дескрипторы (Handles) 143
Глава 8. Использование OCL 160
Глава 9. Графический интерфейс 179
Глава 10. Работа с уровнем данных 205
Глава 11. Использование сторонних визуальных компонентов 235
Глава 12. Генерация кода 251
Глава 13. Механизм «подписки» 272
Глава 14. Обзор дополнительных возможностей 289
Глава 15. Продукты сторонних производителей 295
Заключение 302
Приложение А. Скрипт для транслитерации имен UML-модели 303
Приложение Б. ЕСО — развитие Borland MDA для платформы
Microsoft .NET 310
Приложение В. Библиотека для работы с Object Space 326
Приложение Г. Часто задаваемые вопросы 338
Приложение Д. Интернет-источники 343
Список литературы 344
Алфавитный указатель 345
Содержание
Предисловие 13
От автора 15
Как появилась эта книга 15
Благодарности 16
Введение 17
Для кого написана книга 18
Преодоление трудностей 18
Обзор содержания 18
От издательства 19
Часть I. Обзор MDA-архитектуры 20
Глава 1. MDA-архитектура и язык UML 21
История 21
Структура и состав 21
Предпосылки появления MDA 22
Модель приложения. Типы моделей 23
Этапы разработки MDA-приложений 24
Недостатки традиционного подхода 25
Преимущества MDA 26
Состояние и перспективы MDA 27
Концепции реализации 28
Возможные последствия внедрения MDA 28
Унифицированный язык моделирования UML 29
Общие сведения 29
Бизнес-правила 30
Диаграмма классов 30
Классы 31
Отношения 32
Классы-ассоциации 35
Пакеты 36
UML-модель и схема БД 37
UML-редакторы 39
Содержание 7
Основы работы в Rational Rose 39
Другие UML-редакторы 45
Резюме 45
Глава 2. Обзор Borland MDA 47
Что такое Borland MDA (BMDA) 47
История развития 49
Borland Enterprise Studio 49
Borland Delphi 7 Studio Architect 50
C#Builder Architect 51
Возможности и специфика 51
Преимущества для разработчиков 52
Последовательность изучения 54
Возможные трудности 54
Bold for Delphi — основа Borland MDA 55
Инсталляция и обзор инструментов 56
Резюме 58
Глава 3. Быстрый старт 60
Создание простого MDA-приложения 60
Создание бизнес-уровня 60
Создание модели приложения 61
Создание графического интерфейса 66
Создание уровня данных 68
Работа с приложением 69
Модификация модели приложения 73
Обсуждение результатов 76
Создание стандартных приложений 77
Резюме 79
Глава 4. Модель приложения 81
Роль модели в Borland MDA 81
Тег-параметры (tagged values) 83
Rational Rose как средство разработки моделей для Borland MDA 83
Настройка Rational Rose 84
Создание модели в Rational Rose и ее импорт в Borland MDA 86
Настройка тег-параметров модели в Rational Rose 92
Настройка тег-параметров модели во встроенном UML-редакторе 96
Экспорт модели из встроенного редактора в Rational Rose 99
Другие способы импорта-экспорта моделей 100
Инструменты встроенного редактора моделей 101
Средства настройки свойств модели 101
Средства настройки атрибутов класса 102
Настройка ролей ассоциаций 102
Резюме 103
8 Содержание
Глава 5. OCL — язык объектных ограничений 104
104
Общие сведения
1 П4
Роль OCL в Borland MDA 1ич
Модель для изучения
Доступ к классам и атрибутам из OCL 106
Базовые элементы и понятия Ю°
Типы данных !"6
Операции сравнения в OCL Ю7
Типы возвращаемых выражений Ю7
Арифметические операторы Ю8
Коллекции Ю8
Навигация по модели Ю8
Операции над коллекциями 109
Навигация по коллекции 109
Выборка (фильтрация) и исключение 110
Операции с несколькими множествами 111
Сортировка элементов коллекции 112
Логические операции над коллекциями 113
Операция Collect 114
Вычисления над коллекциями 116
Работа с типами в OCL 117
Обработка типов для элементов 117
Обработка типов для коллекций 118
Операции логического выбора 118
Прочие операции 119
Операции над строками 119
Операции с датами и временем 120
Форматы дат и времени 120
Использование OCL 121
Задание выражений для вычисляемых атрибутов 121
Вычисляемые ассоциации 122
Формирование ограничений (Constraints) 125
Особенности диалекта OCL в среде Bold for Delphi 128
Расширяемость диалекта OCL в Bold 129
Резюме 129
Часть II. Создание MDA-приложений 130
Глава 6. Объектное пространство 131
Понятие Object Space 131
Состав и структура ОП 133
Класс TBoldElement 136
Свойства TBoldElement 136
Методы TBoldElement 137
Содержание 9
Класс TBoldSystem 137
Свойства TBoldSystem 137
Методы TBoldSystem 138
Работа с объектным пространством 138
Программное управление атрибутами объектами ОП 139
Программное управление объектами ОП 141
Резюме 142
Глава 7. Дескрипторы (Handles) 143
Роль дескрипторов 143
Классификация дескрипторов 143
BoldSystemHandle 144
BoldSystemTypelnfoHandle 145
BoldExpressionHandle 146
BoldDerivedHandle 149
BoldVariableHandle и BoldOCLVariables 151
BoldListHandle 154
BoldCursorHandle 155
BoldReferenceHandle 158
BoldUnloaderHandle 158
Резюме 159
Глава 8. Использование OCL 160
Роль Object Constraint Language в Borland MDA 160
Условная модель 160
Создание приложения 161
Встроенный OCL-редактор 162
Формирование цепочек дескрипторов 165
Связь OCL и графического интерфейса 167
OCL и вычисляемые данные 168
Использование OCL в программе 173
Программная работа с классом TBoldElement и его наследниками
с использованием OCL-вычислений 176
OCL-репозиторий 177
Резюме 178
Глава 9. Графический интерфейс 179
Особенности визуальных MDA-компонентов 180
BoldLabel 180
BoldEdit 182
BoldGrid 182
BoldSortingGrid 184
BoldComboBox 185
BoldListBox 187
BoldCheckBox 187
10 Содержание
BoldPageControl 188
BoldTreeView 190
Boldlmage 195
Рендереры 13D
1QQ
Автоформы 133
Общие сведения. Структура автоформы 199
Ограничения 201
Генерация автоформ 202
Управление отображением атрибутов 202
Дополнительные инструменты 203
BoldCaptionController 203
Резюме 204
Глава 10. Работа с уровнем данных 205
Функции уровня данных 205
Структура и состав компонентов 206
Работа с СУБД 207
Подключение уровня данных 207
Генерация схемы базы данных 210
Состав системных таблиц 212
Структура генерируемых таблиц 213
Использование адаптеров СУБД 214
Создание собственных адаптеров СУБД 215
Требования к СУБД 216
Состав программных модулей адаптера СУБД 217
Преимущества использования адаптеров 217
Использование BoldActions для работы с БД 218
Язык SQL в MDA-приложениях 220
Идеология применения SQL 220
Использование дескриптора BoldSQLHandle 222
Механизм OCL2SQL 226
Оптимизация работы в клиент-серверной архитектуре 228
Bold и «тонкие базы данных» 228
Работа с несколькими СУБД 229
Использование XML-документов 230
Сохранение данных в XML-файлах 230
Практический пример использования XML 231
Резюме 234
Глава 11. Использование сторонних визуальных компонентов .... 235
Средства управления внешними компонентами 236
BoldDataSet — шлюз для использования DB-компонентов 241
Использование механизма подписки и программного кода 245
Резюме 249
Содержание 11
Глава 12. Генерация кода 251
Процедура генерации 252
Структура и состав генерируемых модулей 255
Практическое использование кода модели 263
Работа с классами и атрибутами 263
Работа с ассоциациями 264
Операции 268
Резюме 271
Глава 13. Механизм «подписки» 272
Описание и реализация 272
События и подписка 272
Основные классы и реализация 273
Программное использование подписки 274
Использование BoldPlaceableSubscriber 277
Программирование вычисляемых атрибутов 279
Обратно-вычисляемые атрибуты 283
Резюме 287
Глава 14. Обзор дополнительных возможностей 289
Регионы 289
Жизненный цикл связанных объектов 290
Трехзвенная архитектура 291
Удаленное подключение к БД посредством SOAP 291
Синхронизация объектных пространств 292
Сервер управления блокировками 292
Object Lending Library (OLLE) 292
Эволюция модели и БД 293
Многоязыковая поддержка 294
Средства отладки 294
Резюме 294
Глава 15. Продукты сторонних производителей 295
BoldExpress Studio 295
BoldGridPro 296
OCL Extensions 298
Bold TCP OSS 298
Bold SOAP Server (BSS) 299
BoldRave 299
deBold 299
pHGantTimePackage и phGrid_BA 300
Резюме 301
Заключение 302
12 Содержание
Приложение А. Скрипт для транслитерации имен UML-модели .... 303
Особенности
Создание и установка: Jl"
Использование
Исходный текст скрипта ^05
Приложение Б. ЕСО — развитие Borland MDA для платформы
Microsoft .NET 310
О продукте C#Builder Architect 310
Основные возможности ЕСО 311
Создание простого ЕСО-приложения 311
Генерация шаблона 311
Разработка UML-модели 312
Формирование бизнес-уровня 315
Создание графического интерфейса 317
Автоформы 322
Создание уровня данных 323
Специфика ЕСО и отличия от Bold 323
Графический интерфейс 324
Бизнес-уровень и UML-моделирование 324
Уровень данных 324
Резюме 325
Приложение В. Библиотека для работы с Object Space 326
Назначение 326
Причины и цели создания 326
Описание 327
Основные процедуры и функции 327
Вспомогательные процедуры и функции 328
Примеры использования 329
Добавление и изменение объектов ОП 329
Поиск и связывание объектов 329
Предупреждения 330
Приложение Г. Часто задаваемые вопросы 338
Общие вопросы 338
СУБД ' ... 339
Компоненты и OCL 340
Приложение Д. Интернет-источники 343
Список литературы 344
Алфавитный указатель 345