Книга: Мацяшек Л. А., Лионг Б. «Практическая программная инженерия на основе учебного примера»

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

Рассмотрены вопросы современных методов создания сложного программного обеспечения, использующего информацию, хранимую в базе данных. Подчеркнуты особенности создания такого программного обеспечения коллективом разработчиков: итеративный характер разработки, использование стандартных средств создания программ (стандартные компоненты, паттерны, Bean-компоненты и т. д.). Большое внимание уделено разработке структуры программного обеспечения, позволяющей наиболее просто организовать все стадии его жизненного цикла. Весь материал проиллюстрирован на одном достаточно сложном примере.

Для разработчиков сложного программного обеспечения, а также для студентов вузов, специализирующихся в вопросах создания современного ПО.

Содержание:

Экскурс в структуру книги...... 20 Введение...... 22 Благодарности...... 29 Часть 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 COCOMO81...... 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. Модель бизнес-сценариев использования для AEM...... 256 6. 3. 3. Альтернативная модель бизнес-сценариев использования для AEM...... 258 6. 4. Бизнес-глоссарий...... 261 6. 4. 1. Бизнес-глоссарий для AEM...... 261 6. 5. Модель бизнес-классов...... 262 6. 5. 1. Бизнес-сущности...... 262 6. 5. 2. Модель бизнес-классов для AEM...... 262 6. 5. 3. Альтернативная модель бизнес-классов для AEM...... 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. Объектные БД, SQL: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 12. 1. 3. Доступ к БД в Java...... 458 Сравнение JDBC и SQLJ...... 459 Установление связи с БД...... 460 Оглавление...... 13 Выполнение 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 Конструирование объекта CActioner...... 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. Интерфейс IAEmployee...... 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. Bean-компоненты сущностей...... 853 22. 1. 3. Bean-компоненты сеанса...... 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. Класс EIdentityMap...... 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

Издательство: "БИНОМ. Лаборатория знаний" (2015)

ISBN: 9785996311828

Другие книги схожей тематики:

АвторКнигаОписаниеГодЦенаТип книги
Лешек А. МацяшекПрактическая программная инженерия на основе учебного примераРассмотрены вопросы современных методов создания сложного программного обеспечения, использующего… — Лаборатория знаний, Программисту (Бином) электронная книга Подробнее...2005
550электронная книга

Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»