Практическая программная инженерия

Примеры разработки и создания ПО.

Мацяшек Л. А., Б. Л. Лионг "Практическая программная инженерия на основе учебного примера" БИНОМ, 2012 год, 956 стр. (19,2 мб. pdf)

Рассмотрены современные методы разработки ПО и инструменты программной инженерии по созданию сложного программного обеспечения, с использованием баз данных и Web-технологий. Внимание акцентируется на коллективной разработке сочетающей, как использование стандартных средств создания программного обеспечения (унифицированные компоненты, паттерны, Bean-компоненты и т. д.), так и итеративный характер разработки. Рассказывается о разработке структуры и модели программного обеспечения, позволяющей доступно и просто планировать все стадии жизненного цикла приложения. Для лучшего понимания и изучения практических методов разработки ПО - вся информация книги приводится в связи с достаточно сложным примером (разработки приложения) иллюстрирующим все этапы начиная от проектирования и заканчивая тестированием готового приложения. Книга может служить в качестве практического руководства для разработчиков сложного программного обеспечения, а также для студентов вузов, изучающих курс программной инженерии.
ISBN: 978-5-9963-1182-8

Оглавление книги.

Часть 1. Проектирование программного обеспечения 33

Глава 1. Жизненный цикл разработки программного обеспечения 36
1.1. Сущность программной инженерии 37
1.1.1. Система ПО меньше, чем информационная система предприятия 38
1.1.2. Процесс создания и эксплуатации ПО является частью бизнес-процесса 39
1.1.3. Программная инженерия отличается от традиционной инженерии 41
1.1.4. Программная инженерия больше, чем программирование 43
1.1.5. Программная инженерия напоминает моделирование 44
1.1.6. Система ПО сложна 45
1.2. Стадии жизненного цикла 48
1.2.1. Анализ требований 48
1.2.2. Проектирование системы 50
1.2.3. Реализация 51
1.2.4. Интеграция и внедрение 52
1.2.5. Процесс функционирования и сопровождения 54
1.3. Модели жизненного цикла 55
1.3.1. Жизненный цикл «водопад с обратной связью» 56
1.3.2. Итеративный пошаговый жизненный цикл 59
Спиральная модель 60
Rational Unified Process (RUP) 62
Model Driven Architecture (MDA) 63
Быстрая разработка ПО с короткими итерациями 65
Резюме 67
Ключевые термины 69
Обзорные вопросы 70

Глава 2. Язык моделирования программного обеспечения 72
2.1. Язык структурного моделирования 73
2.1.1. Моделирование потока данных 74
2.1.2. Моделирование сущностей и отношений 77
2.2. Язык объектно-ориентированного моделирования 79
2.2.1. Диаграммы классов 80
2.2.2. Диаграммы сценариев использования 83
2.2.3. Диаграммы взаимодействия 87
Диаграммы последовательности действий 88
Диаграммы сотрудничества (связей) 90
2.2.4. Диаграммы состояний 91
2.2.5. Диаграммы деятельности 93
2.2.6. Диаграммы выполнения 94
Диаграммы компонентов 95
Диаграммы размещения 97
Резюме 98
Ключевые термины 99
Обзорные вопросы 100
Примеры задач 101

Глава 3. Инструментальные средства программной инженерии 103
3.1. Инструментальные средства управления проектом 104
3.1.1. Планирование и управление проектом 105
3.1.2. Управление проектированием и реализацией с учетом основных показателей 107
3.1.3. Унификация управления проектом с организацией совместной работы и информационного обеспечения на основе Web-технологии 107
3.1.4. Унификация управления проектом на основе портфельной
Web-технологии 109
3.1.5. Интеграция управления проектом с метриками 111
3.1.6. Интеграция управления проектом с управлением рисками 113
3.2. Инструментальные средства моделирования систем 114
3.2.1. Управление требованиями 116
3.2.2. Визуальное UML-моделирование 119
3.2.3. Формирование отчетов 121
3.2.4. Моделирование БД 124
3.3. Интегрированные среды разработки 126
3.3.1. Задачи стандартного программирования 127
Написание программы 127
Выполнение программы 131
Отладка программы 131
3.3.2. Интеграция с моделированием ПО 134
3.3.3. Разработка приложения предприятия 135
3.3.4. Интеграция с бизнес-компонентами 137
3.3.5. Интеграция с управлением изменениями и конфигурацией 138
3.4. Инструментальные средства управления изменениями и конфигурацией 140
3.4.1. Поддержка изменений 141
3.4.2. Поддержка версий 144
3.4.3. Поддержка формирования системы 144
3.4.4. Поддержка реинжиниринга 146
Резюме 149
Ключевые термины 151
Обзорные вопросы 151
Примеры задач 152

Глава 4. Планирование и отслеживание проекта программного обеспечения 155
4.1. Разработка плана проекта 155
4.2. Планирование проекта 160
4.2.1. Задачи, контрольные точки и подлежащие сдаче продукты 160
4.2.2. Планирование задач в виде ленточной диаграммы 162
4.2.3. Ресурсы и календари ресурсов 165
4.2.4. Планирование, определяемое трудозатратами, в виде ленточной диаграммы 166
4.2.5. Неполное и избыточное распределение ресурсов 168
4.3. Оценка бюджета проекта 170
4.3.1. Оценка бюджета на основе графика выполнения 172
4.3.2. Алгоритмическая оценка бюджета 176
Принципы алгоритмических моделей 177
СОСОМО 81 178
COCOMOII 180
4.4. Отслеживание выполнения проекта 184
4.4.1. Отслеживание графика 185
4.4.2. Отслеживание бюджета 188
Фактические затраты, полученные из графика выполнения 188
Фактические затраты, полученные из бухгалтерского учета 189
Выполненная стоимость 190
Резюме 194
Ключевые термины 196
Обзорные вопросы 197
Примеры задач 197

Глава 5. Управление процессом создания и отслеживания программного обеспечения 200
5.1. Управление людьми 202
5.1.1. Привлечение и мотивация людей 202
Формирование коллектива 203
Теории мотивации 204
5.1.2. Организация связи в проекте 206
Формы связи 206
Линии связи 207
Показатели связи 208
Связь в разрешении конфликтов 209
5.1.3. Создание коллектива 210
5.2. Управление рисками 211
5.2.1. Идентификация рисков 212
5.2.2. Оценка рисков 213
5.2.3. Обработка рисков 216
5.3. Управление качеством 217
5.3.1. Показатели качества программного обеспечения 218
5.3.2. Контроль качества 221
Тестирование ПО 221
Технологии тестирования 223
Планирование испытаний 227
5.3.3. Гарантия качества 229
Контрольные списки 229
Обзоры 230
Ревизии 231
5.4. Управление изменениями и конфигурацией 232
5.4.1. Изменения требований 233
5.4.2. Версии продуктов разработки 235
5.4.3. Дефекты и усовершенствования 237
5.4.4. Метрики 240
Резюме 243
Ключевые термины 245
Обзорные вопросы 247

Часть 2. От требований через структурное проектирование к готовому программному обеспечению 249

Глава 6. Модель бизнес-объектов 252
6.1. Advertising Expenditure Measurement, ее бизнес 253
6.2. Диаграмма бизнес-контекста 254
6.3. Модель бизнес-сценария использования 255
6.3.1. Бизнес-сценарий использования и бизнес-акторы 255
6.3.2. Модель бизнес-сценариев использования для АЕМ 256
6.3.3. Альтернативная модель бизнес-сценариев использования для АЕМ 258
6.4. Бизнес-глоссарий 261
6.4.1. Бизнес-глоссарий для АЕМ 261
6.5. Модель бизнес-классов 262
6.5.1. Бизнес-сущности 262
6.5.2. Модель бизнес-классов для АЕМ 262
6.5.3. Альтернативная модель бизнес-классов для АЕМ 264
Резюме 265
Ключевые термины 266
Обзорные вопросы 266
Вопросы для обсуждения 266
Вопросы учебного примера 267
Примеры задач 267
Упражнения учебного примера 267
Небольшой проект — оценка расходов на рекламу 267
Упражнения 269

Глава 7. Объектная модель предметной области 271
7.1. Управление деловыми партнерами — предметная область 272
7.2. Модель сценариев использования предметной области 273
7.2.1. Сценарии использования и акторы 273
7.2.2. Отношения сценариев использования 274
7.2.3. Модель сценариев использования для управления деловыми партнерами 275
7.2.4. Альтернативная модель сценариев использования для управления деловыми партнерами 277
7.3. Глоссарий предметной области 279
7.3.1. Глоссарий предметной области для управления деловыми партнерами 279
7.4. Модель классов предметной области 281
7.4.1. Классы и атрибуты 282
7.4.2. Отношения классов 284
7.4.3. Модель классов для управления деловыми партнерами 285
7.4.4. Альтернативная модель классов для управления деловыми партнерами 286
Резюме 288
Ключевые термины 289
Обзорные вопросы 289
Вопросы для обсуждения 289
Вопросы учебного примера 290
Примеры задач 290
Упражнения учебного примера 290
Небольшой проект — временной протокол 291

Глава 8. Итерация 1. Требования и объектная модель 294
8.1. Модель сценариев использования 295
8.2. Документ сценария использования 296
8.2.1. Краткое описание, предусловия и постусловия 297
8.2.2. Основной поток 298
8.2.3. Подпотоки 299
8.2.4. Потоки исключений 302
8.3. Концептуальные классы 303
8.4. Дополнительная спецификация 304
Резюме 306
Ключевые термины 307
Обзорные вопросы 307
Вопросы для обсуждения 307
Вопросы учебного примера 308
Примеры задач 308
Упражнения учебного примера 308
Небольшой проект — временной протокол 309

Глава 9. Структурный проект 310
9.1. Структурные уровни и управление зависимостями 311
9.1.1. Структурные модули 311
Классы проекта 312
Пакеты 312
9.1.2. Зависимости пакетов 313
9.1.3. Зависимости между уровнями 314
9.1.4. Зависимости классов 317
9.1.5. Наследование зависимостей 318
Наследование без полиморфизма 321
Расширяющее и ограничивающее наследование 321
Вызовы методов подкласса 323
Вызовы методов суперкласса 323
9.1.6. Зависимости методов 323
Зависимости методов при наличии делегирования 325
Зависимости методов в присутствии наследования реализации 326
9.1.7. Интерфейсы 329
Зависимость реализации 330
Зависимость использования 330
Устранение циклических зависимостей с интерфейсами 331
9.1.8. Обработка событий 333
Обработка событий и зависимости уровней 335
Обработка событий и интерфейсы 336
9.1.9. Знакомство 338
Зависимости знакомства и интерфейсы 339
Пакет знакомств 340
9.2. Структурные шаблоны 343
9.2.1. Model-View-Controller (MVC) 343
9.2.2. Presentation-Control-Mediator-Entity-Foundation 345
Уровни PCMEF 346
Принципы PCMEF 348
Знакомство в PCMEF+ 349
Развертывание PCMEF-уровней 350
9.3. Структурные паттерны 352
9.3.1. Фасад 352
9.3.2. Абстрактная фабрика 354
9.3.3. Цепочка обязанностей 355
9.3.4. Наблюдатель 355
9.3.5. Посредник 358
Резюме 359
Ключевые термины 361
Обзорные вопросы 362
Примеры задач 363
Упражнения учебного примера 363
Небольшой проект —управление информацией о партнерах 363
Упражнения 370

Глава 10. Проектирование и программирование базы данных 371
10.1. Быстрое обучение реляционным базам данных с точки зрения разработки программного обеспечения 372
10.1.1. Таблица 373
10.1.2. Ссылочная целостность 375
10.1.3. Концептуальная модель в сравнении с логической моделью БД 377
10.1.4. Реализация бизнес-правил 378
10.1.5. Программирование логики СУБД-приложения 381
10.1.6. Индексы 383
10.2. Отображение временных объектов в сохраняемые записи 387
10.2.1. Объектные БД, 80Ь:1999 и потеря соответствия 388
10.2.2. Объектно-реляционное отображение 389
Отображение ассоциации и агрегирования «один ко многим» 390
Отображение ассоциации «многие ко многим» 390
Отображение ассоциации «один к одному» 392
Отображение рекурсивной ассоциации «один ко многим» 393
Отображение рекурсивной ассоциации «многие ко многим» 394
Отображение обобщения 395
10.3. Проектирование и создание БД для управления электронной почтой 396
10.3.1. Модель БД 396
10.3.2. Создание схемы БД 398
10.3.3. Пример содержимого БД 399
Резюме 401
Ключевые термины 401
Обзорные вопросы 402
Вопросы для обсуждения 402
Вопросы учебного примера 403
Примеры задач 403
Упражнения учебного примера 403
Небольшой проект — управление информацией о партнерах 403

Глава 11. Проектирование классов и взаимодействия 405
11.1. Определение классов из требований сценария использования 406
11.1.1. Определение классов из требований сценария использования для управления электронной почтой 408
11.1.2. Проектирование исходных классов для управления электронной почтой 412
Константы в интерфейсе 414
11.2. Структурная разработка проекта классов 414
11.2.1. Структурная разработка проекта классов для управления электронной почтой 415
11.2.2. Проект классов для управления электронной почтой после структурной проработки 419
11.2.3. Инициализация классов 419
Кто инициализирует первый объект? 421
Диаграмма инициализации для управления электронной почтой 421
11.3. Взаимодействия 422
11.3.1. Диаграммы последовательности действий 423
11.3.2. Диаграммы связей 425
11.3.3. Диаграммы просмотра взаимодействий 427
11.4. Взаимодействия для управления электронной почтой 427
11.4.1. Взаимодействие «Регистрационное имя» 429
11.4.2. Взаимодействие «Выход» 431
11.4.3. Взаимодействие «Просмотр непосланных сообщений» 431
11.4.4. Взаимодействие «Отображение текста сообщения» 433
11.4.5. Взаимодействие «Сообщение, передаваемое по электронной почте» 434
11.4.6. Взаимодействие «Неправильное имя пользователя или неправильный пароль» 436
11.4.7. Взаимодействие «Неправильная опция» 436
11.4.8. Взаимодействие «Слишком много сообщений» 437
11.4.9. Взаимодействие «Сообщение не может быть послано по электронной почте» 438
Резюме 439
Ключевые термины 440
Обзорные вопросы 441
Вопросы для обсуждения 441
Вопросы учебного примера 441
Примеры задач 441
Упражнения учебного примера 441
Небольшой проект — система использования временного протокола 442
Небольшой проект — управление информацией о деловых партнерах 443

Глава 12. Программирование и тестирование 445
12.1. Быстрое обучение языку Java с точки зрения разработки программного обеспечения 446
12.1.1. Класс 446
12.1.2. Ассоциации и коллекции классов 450
От концептуальной модели к модели проектирования классов 450
Коллекции Java 452
Ассоциации на объектах-сущностях 454
Параметризованные типы C++ 455
Доступ к БД в Java 458
Сравнение JDBC и SQLJ 459
Установление связи с БД. 460
Выполнение SQL-операторов 461
Вызов хранимых процедур и функций 464
12.2. Управляемая тестированием разработка 467
12.2.1. Шаблон JUnit 469
12.2.2. Управляемая тестированием разработка в управлении электронной почтой 472
12.3. Приемочные испытания и регрессионное тестирование 478
12.3.1. Сценарии тестирования в управлении электронной почтой 480
12.3.2. Испытательные входные и выходные данные и регрессионное тестирование в управлении электронной почтой 482
12.3.3. Реализация сценария тестирования в управлении электронной почтой 485
12.4. Итерация 1. Образы экрана времени выполнения 489
Резюме 494
Ключевые термины 495
Обзорные вопросы 495
Примеры задач 496
Обучение и упражнения учебного примера 496
Небольшой проект — система использования временного протокола 498
Небольшой проект — управление информацией о деловых партнерах 499

Глава 13. Итерация 1. Аннотированный код 500
13.1. Обзор кода 500
13.2. Пакет Acquaintance 502
13.2.1. Интерфейс IAConstants 503
13.2.2. Интерфейс IAEmployee 505
13.2.3. Интерфейс IAContact 505
13.2.4. Интерфейс IAOutMessage 506
13.3. Пакет Presentation 508
13.3.1. Класс PMain 508
13.3.2. Класс PConsole 509
Конструирование объекта PConsole 510
Отображение регистрационного имени и меню 512
Просмотр исходящих сообщений 513
Требование к передаче по электронной почте исходящего сообщения 515
13.4. Пакет Control 517
13.4.1. Класс CActioner 517
Конструирование объекта СActioner 518
Инициализация регистрационного имени 519
Поиск исходящих сообщений 520
Передача по электронной почте исходящего сообщения 521
Использование JavaMail API 522
13.5. Пакет Entity 522
13.5.1. Интерфейс IEDataSupplier 523
Идентификаторы объектов и паттерн Поле идентификации 525
13.5.2. Класс EEmployee 526
Конструирование объекта EEmployee 527
Получение непосланных сообщений 527
Удаление посланных исходящих сообщений 528
13.5.3. Класс EContact 528
Конструирование объекта EContact 529
Получение иепослаиных исходящих сообщений 529
Удаление посланных исходящих сообщений 530
13.5.4. Класс EOutMessage 530
Конструирование объекта EOutMessage 532
Получение и задание делового партнера для исходящего сообщения 533
Получение и задание служащего-создателя для исходящего сообщения 533
Получение и задание служащего-отправителя исходящего сообщения 534
13.6. Пакет Mediator 534
13.6.1. Класс MBroker 535
Конструирование объекта MBroker 536
Связь для запроса регистрационного имени 536
Создание кэша сотрудников 537
Извлечение непосланных сообщений 538
Создание кэша исходящих сообщений 539
Создание кэша деловых партнеров 540
Обновление исходящих сообщений после передачи
по электронной почте и восстановление кэша 541
13.7. Пакет Foundation 542
13.7.1. Класс FConnection 542
Конструирование объекта FConnection 543
Получение соединения с БД 544
13.7.2. Класс FReader 545
13.7.3. Класс FWriter 545
Резюме 546
Ключевые термины 547
Итерация 1. Вопросы и упражнения 547

Часть 3. Рефакторинг программного обеспечения и разработка пользовательского интерфейса 549

Глава 14. Требования к итерации 2 и объектная модель 551
14.1. Модель сценариев использования 551
14.2. Документ сценариев использования 554
14.2.1. Краткое описание, предусловия и постусловия 554
14.2.2. Основной поток 555
14.2.3. Подпотоки 556
14.2.4. Потоки исключений 561
14.3. Концептуальные классы и реляционные таблицы 562
14.4. Дополнительная спецификация 564
Резюме 566
Ключевые термины 566
Обзорные вопросы 566

Глава 15. Структурный рефакторинг 567
15.1. Цели рефакторинга 568
15.2. Методы рефакторинга 569
15.2.1. Класс извлечения 569
15.2.2. Метод подключения 571
15.2.3. Интерфейс извлечения 571
15.3. Паттерны рефакторинга 573
15.3.1. Коллекция идентичности объектов 575
15.3.2. Преобразователь данных 577
Загрузка — импорт 579
Выгрузка — экспорт 580
15.3.3. Альтернативные стратегии Преобразователя данных 580
Несколько Преобразователей данных 581
Преобразование метаданных 582
15.3.4. Загрузка по требованию 585
Инициализация по требованию 585
Виртуальный заместитель 586
Заместитель идентификатора объекта 589
Навигация по коллекции идентичности объектов 590
Навигация по классам пакета entity 592
15.3.5. Единица работы 594
15.4. Улучшенная модель классов 595
Резюме 596
Ключевые термины 599
Обзорные вопросы 600
Вопросы для обсуждения 600
Вопросы учебного примера 601
Примеры задач 601

Глава 16. Проектирование и программирование пользовательского интерфейса 602
16.1. Основные принципы проектирования пользовательского интерфейса 603
16.1.1. Пользователь в управлении 604
16.1.2. Непротиворечивость интерфейса 606
16.1.3. Снисходительность интер фейса 606
16.1.4. Адаптируемость интерфейса 607
16.2. Компоненты пользовательского интерфейса 608
16.2.1. Контейнеры 609
Управление расположением 612
Управление выбором уровней 614
16.2.2. Меню 615
16.2.3. Элементы управления 617
16.3. Управление событиями пользовательского интерфейса 619
16.4. Паттерны и пользовательский интерфейс 623
16.4.1. Наблюдатель 624
16.4.2. Декоратор 626
16.4.3. Цепочка обязанностей 626
16.4.4. Команда 628
16.5. Пользовательский интерфейс для управления электронной почтой 629
Резюме 633
Ключевые термины 634
Обзорные вопросы 635
Примеры задач 636

Глава 17. Проектирование и программирование пользовательского интерфейса на основе Web-технологии 638
17.1. Допустимые технологии для уровня Web-клиента 640
17.1.1. Основы HTML 640
17.1.2. Язык скриптов 643
17.1.3. Апплет: тонкий и толстый 645
17.2. Допустимые технологии для уровня Web-сервера 650
17.2.1. Сервлет 650
17.2.2. JSP 653
17.3. Транзакции Интернет-систем, не имеющих состояний 658
17.4. Паттерны и Web-технология 660
17.4.1. Наблюдатель 662
17.4.2. Компоновщик 662
17.4.3. Фабричный метод 663
17.4.4. Стратегия 664
17.4.5. Декоратор 665
17.4.6. Model-View-Controller (MVC) 665
17.4.7. Контроллер запросов 666
17.4.8. Повторное использование тегов в JSP 667
17.4.9. Несвязное управление: Struts 672
17.5. Реализация сервлета, обеспечивающего управление электронной почтой 673
Резюме 680
Ключевые термины 681
Обзорные вопросы 682
Примеры задач 683

Глава 18. Итерация 2. Аннотированный код 684
18.1. Обзор кода 684
18.2. Пакет Acquaintance 686
18.2.1. Интерфейс lAEmployee 687
18.3. Пакет Presentation 687
18.3.1. Класс PWindow 688
Конструирование и запуск PWindow 689
Извлечение данных в PWindow 691
Активизация фильтра 694
18.3.2. Класс PMessageDetailWindow 696
18.3.3. Класс PMessageTableModel 699
18.3.4. Класс PDisplayList 703
18.3.5. Класс PDisplayList.Filter 706
18.4. Пакет Control 708
18.4.1. Класс CAdmin 708
18.4.2. Класс CMsgSeeker 708
18.5. Пакет Entity 710
18.5.1. Класс Коллекция идентичности объектов 712
18.6. Пакет Mediator 714
18.6.1. Класс MModerator 715
18.6.2. Класс MDataMapper 716
Извлечение и загрузка исходящих сообщений 718
Сохранение и выгрузка исходящего сообщения 721
18.7. Уровень Presentation: версия апплета 724
18.8. Уровень Presentation: версия сервлета 726
18.8.1. Класс PEMS 727
Регистрационное имя в сервлете 728
Изображение исходящих сообщений в сервлете 730
18.8.2. Класс PEMSEdit 735
Резюме 737
Ключевые термины 738
Итерация 2. Вопросы и упражнения 738

Часть 4. Разработка данных и бизнес-компоненты 741

Глава 19. Требования к итерации 3 и объектная модель 744
19.1. Модель сценариев использования 744
19.2. Документ сценария использования 746
19.2.1. Краткое описание, предусловия и постусловия 746
19.2.2. Основной поток 747
19.2.3. Подпотоки 749
19.2.4. Потоки исключений 757
19.3. Концептуальные классы и реляционные таблицы 758
19.4. Дополнительная спецификация 760
19.5. Спецификация БД 763
Резюме 765
Ключевые термины 765
Обзорные вопросы 766

Глава 20. Безопасность и целостность 767
20.1. Проектирование безопасности 768
20.1.1. Контролируемая авторизация 769
Системные и объектные полномочия 780
Программная контролируемая авторизация 772
20.1.2. Принудительная авторизация 779
20.1.3. Авторизация предприятия 781
20.2. Проектирование целостности 785
20.2.1. Null-ограничение и ограничение по умолчанию 785
20.2.2. Ограничения «домен» и «проверка» 786
20.2.3. Уникальный и первичный ключи 787
20.2.4. Внешние ключи 788
20.2.5. Триггеры 790
20.3. Безопасность и целостность в управлении электронной почтой 795
20.3.1. Безопасность в управлении электронной почтой 795
Явно заданная таблица авторизации 798
Использование индивидуальных схем, глобальной схемы и хранимых процедур 799
Использование индивидуальных схем, глобальной схемы, представлений и хранимых процедур 800
Администрирование авторизации 803
20.3.2. Целостность управления электронной почтой 805
Резюме 808
Ключевые термины 809
Обзорные вопросы 810
Примеры задач 811

Глава 21. Транзакции и параллелизм 812
21.1. Параллелизм в системных транзакциях 813
21.1.1. ACID-свойства 814
21.1.2. Уровни изоляции 816
21.1.3. Способы блокировки и уровни блокировки 817
21.1.4. Модели транзакций 819
21.1.5. Схемы управления параллелизмом 821
21.2. Параллелизм в бизнес-транзакциях 825
21.2.1. Контексты выполнения бизнес-транзакций 825
21.2.2. Бизнес-транзакции и технология компонентов 826
21.2.3. Распределение по уровням сервисов транзакции 826
Web-уровень 828
Уровень приложения 828
Уровень БД 830
21.2.4. Паттерны автономного параллелизма 832
Единица работы 832
Оптимистическая автономная блокировка 835
Пессимистическая автономная блокировка 836
21.3. Транзакции и параллелизм в управлении электронной почтой 837
21.3.1. Модель плоской транзакции 838
21.3.2. Единица работы и поддержка транзакций 838
Резюме 839
Ключевые термины 842
Обзорные вопросы 843
Примеры задач 844

Глава 22. Бизнес-компоненты 846
22.1. Enterprise JavaBeans 847
22.1.1. Основные принципы EJB 849
22.1.2. Веап-компоненты сущностей 853
22.1.3. Веап-компоненты сеанса 858
22.2. Бизнес-компоненты для Java 860
22.2.1. Создание компонентов сущностей 860
XML для компонентов сущности 861
Java для компонентов сущности 863
22.2.2. Создание компонентов-представлений 864
XML для компонентов-представлений 865
Java для компонентов-представлений 866
22.2.3. Создание модуля приложения 867
Резюме 867
Ключевые термины 869
Обзорные вопросы 869

Глава 23. Итерация 3. Аннотированный код 871
23.1. Обзор кода 871
23.2. Пакет Acquaintance 873
23.2.1. Интерфейс IAReportEntry 874
23.3. Пакет Presentation 874
23.3.1. Класс PWindow 874
Заполнение списка деловых партнеров в отчете 875
Окно отчета 876
Отчет о деятельности 878
Печать отчета 879
Заполнение таблицы отчета 879
Отображение окна авторизации 881
Преобразование из матрицы правил в таблицу авторизации 883
Сохранение измененных прав доступа 884
Преобразование из таблицы авторизации в матрицу правил 884
Удаление исходящего сообщения 886
Изменение исходящего сообщения 888
Создание исходящего сообщения 889
23.3.2. Класс PTableWindow 889
Динамическая регистрация кнопок 890
Добавление приемников к динамически сформированным кнопкам 891
Возвращаемое состояние кнопки 892
Печать в PTableWindow 893
23.4. Пакет Control 894
23.5. Пакет Entity 894
23.5.1. Класс EldentityMap 894
Регистрация и удаление отчета 896
Извлечение отчета 896
23.6. Пакет mediator 899
23.6.1.Класс MModerator 900
Права доступа 900
Извлечение отчета 902
Создание исходящего сообщения 904
Корректировка исходящего сообщения 904
23.6.2. Класс MDataMapper 905
Изменения в существовавших методах 907
Извлечение отчета в MDataMapper 908
Загрузка прав доступа в MDataMapper 910
Сохранение прав доступа в MDataMapper 910
23.6.3. Класс MUnitOfWork 913
Получение MUnitOfWork 914
Регистрация новой сущности в MUnitOfWork 915
Регистрация измененной сущности в MUnitOfWork 916
Удаление сущности в MUnitOfWork 916
Фиксация MUnitOfWork 917
Выполнение транзакции 918
Начало транзакции 919
23.7. Пакет Foundation 920
23.7.1. Транзакции в FConnection 920
23.7.2. Операторы Execute в FWriter 921
23.7.3. Запрос к БД в FReader 923
23.8. Код БД 924
23.8.1. Ref Cursor для ResultSet 925
23.8.2. Извлечение исходящих сообщений 926
23.8.3. Извлечение исходящих сообщений отдела 926
23.8.4. Удаление исходящего сообщения 927
23.8.5. Создание исходящего сообщения 928
23.8.6. Создание отчета 930
23.8.7. Триггер для таблицы OutMessage 932
Резюме 934
Ключевые термины 935
Итерация 3. Вопросы и упражнения 935
Литература 937
Предметный указатель 943

 

Скачать книгу бесплатно19,2 мб. pdf