Быстрая разработка программ: принципы, примеры, практика

Free Download

Authors:

ISBN: 5-8459-0558-3

Size: 7 MB (6899955 bytes)

Pages: 746/746

File format:

Language:

Publishing Year:

Category: Tags: , ,

Роберт К. Мартин, Джеймс В. Ньюкирк, Роберт С. Косс5-8459-0558-3

Аннотация: Роберт Мартин в соавторстве с Джеймсом Ньюкирком и Робертом Коссом предлагает вниманию читателей книгу о различных методиках быстрого (и даже экстремального) программирования. Изложение начинается с обзора основных понятий экстремального программирования и завершается готовыми программами, применяемыми на практике. В каждой главе приведены примеры кода на языках программирования Java и C++. Книга будет полезной руководителям групп программистов, нацеленных на быструю разработку коммерческих программных проектов, характеризующихся высоким уровнем качества и минимальной себестоимостью. Содержание:Часть I. Быстрая разработка ПО Глава 1. Быстрая разработка ПО Глава 2. Основы экстремального программирования Глава 3. Планирование Глава 4. Тестирование Глава 5. Рефакторинг Глава 6. Пример из практики программирования Часть II. Быстрое проектирование Глава 7. Быстрое проектирование. Краткое введение Глава 8. Принцип персональной ответственности Глава 9. Принцип открытия-закрытия Глава 10. Принцип подстановки Лискоу Глава 11. DIP: принцип инверсии зависимостей Глава 12. ISP: принцип отделения интерфейса Часть III. Практическое занятие: программа расчета зарплаты Глава 13. Шаблоны Command и Active Object Глава 14. Шаблоны Template Method и Strategy: наследование и делегирование Глава 15. Шаблоны Facade и Mediator Глава 16. Шаблоны Singleton и Monostate Глава 17. Объект Null Глава 18. Практическое занятие: программа по расчету зарплаты (первая итерация) Глава 19. Практическое занятие: реализация программы по расчету зарплаты Часть IV. Упаковка программы расчета зарплаты Глава 20. Принципы упаковки программных проектов Глава 21. Шаблон Factory Глава 22. Практическое занятие: программа расчета зарплаты (часть 2) Часть V. Практическое занятие: моделирование метеостанции Глава 23. Шаблон Composite Глава 24. Обратно к шаблонам: Observer Глава 25. Некоторые примеры из практики: шаблоны Abstract Server, Adapter и Bridge Глава 26. Шаблоны Proxy и Stairway to Heaven: управление API от независимых производителей Глава 27. Практическое занятие: метеостанция Часть VI. Практическое занятие: система ETS Глава 28. Шаблон Visitor Глава 29. Шаблон State Глава 30. Схема ETS Часть VII. Приложения Приложение А. UML-запись I: CGI-пример Приложение Б. UML-запись И: STATMUX Приложение В. Сатира на деятельность двух компаний Приложение Г. Исходный код – это уже проект Предметный указатель Книга прислана на сайт пользователем: nukem1 Метка темы: Управление программными проектами Язык программирования C++

Table of contents :
Предисловие……Page 20
Введение……Page 22
Немного истории……Page 23
Сотрудничество с Бучем……Page 24
Участие Бека в проекте……Page 25
Структура книги……Page 27
Если вы разработчик………Page 28
Если хочется повеселиться………Page 29
Если вы хотите изучить шаблоны проектирования………Page 29 Если вы хотите изучить принципы
Благодарности……Page 30
Источники……Page 31
Роберт С. Косс (Robert S. Koss)……Page 32
Перечень шаблонов проектирования……Page 33
Часть I. Быстрая разработка ПО……Page 35
Глава 1. Быстрая разработка ПО……Page 37
Манифест альянса специалистов по быстрой разработке ПО……Page 39
Принципы быстрой разработки ПО……Page 44
Резюме……Page 47
Литература……Page 48
Глава 2. Основы экстремального программирования……Page 49
Заказчик — член команды разработчиков……Page 50
Короткие рабочие циклы……Page 51
Приемочные тесты……Page 52
Методика пробных испытаний (тест-драйв)……Page 53
Коллективное владение……Page 54
Равномерная работа……Page 55
Игра в планирование……Page 56
Простая структура проекта……Page 57
Рефакторинг……Page 58
Метафора……Page 59
Литература……Page 60
Глава 3. Планирование……Page 62
Соединение, разделение и скорость проектирования……Page 63
Планирование рабочих циклов……Page 65
Планирование выполняемых задач……Page 66
На полпути……Page 67
Литература……Page 68
Глава 4. Тестирование……Page 70
Методика пробных испытаний (тест-драйв)……Page 71
Пример проекта, основанного на результатах тестирования……Page 72
Изоляция теста……Page 73
Вероятностная изоляция……Page 75
Приемочные тесты……Page 76
Пример приемочного теста……Page 77
Вероятностная архитектура……Page 79
Литература……Page 80
Глава 5. Рефакторинг……Page 81
Генерирование простых чисел: простой пример использования рефакторинга……Page 82
Заключительный просмотр……Page 91
Резюме……Page 95
Литература……Page 96
Глава 6. Пример из практики программирования……Page 97
Игра в боулинг……Page 98
Резюме……Page 144
Признаки плохого проекта……Page 147
Литература……Page 148
Глава 7. Быстрое проектирование. Краткое введение……Page 149
Процесс разработки ПО……Page 150
Признак плохого проекта……Page 151
Чем вызвано “загнивание” программы?……Page 154 “Загнивание” программ исключается в случае применения
Первоначальный проект……Page 155
Изменение требований……Page 157
Последний шаг, он трудный самый………Page 158
В ожидании изменений……Page 159
Пример быстрого проектирования для программы Copy……Page 160
Как разработчики программ, создаваемых в соответствии с технологией быстрого проектирования, узнали о том, что нужно делать?……Page 161
Резюме……Page 162
Литература……Page 163
Глава 8. Принцип персональной ответственности……Page 164
Принцип персональной ответственности……Page 165
Определение ответственности……Page 167
Устойчивость……Page 168
Литература……Page 169
Глава 9. Принцип открытия-закрытия……Page 170
Описание……Page 171
Ключ к решению проблемы — абстракция……Page 172
Нарушение принципа открытия-закрытия……Page 173
Соответствие принципу открытия-закрытия……Page 176
Предположение и “естественная” структура……Page 178
“Забрасывание удочек”……Page 179
Использование абстракции в целях явного закрытия……Page 180
Использование подхода, управляемого данными, в целях достижения завершения……Page 182
Литература……Page 184
Глава 10. Принцип подстановки Лискоу……Page 185
Простой пример нарушения принципа LSP……Page 186
Классы Square и Rectangle: примеры менее заметных нарушений……Page 188
Реальная проблема……Page 191
Адекватность модели……Page 192
Проектирование на контрактной основе……Page 193
Мотивация……Page 195
Проблема……Page 197
Решение, не нарушающее принцип LSP……Page 199
Факторинг вместо вычисления производных классов……Page 200
Удаление исключений из производных классов……Page 204
Литература……Page 205
Принцип DIP: принцип инверсии зависимостей……Page 206
Разбиение на слои……Page 207
Зависимость от абстракций……Page 209
Простой пример……Page 210
Поиск основополагающих абстракций……Page 212
Пример с электроплиткой……Page 213
Динамический и статический полиморфизм……Page 215
Резюме……Page 216
Литература……Page 217
Проблемы, возникающие при формировании интерфейса……Page 218
Обратное влияние клиентов на интерфейсы……Page 220
Отделение путем делегирования……Page 222
Отделение с помощью множественного наследования……Page 223
Пример пользовательского интерфейса: ATM……Page 224
Поливалентность и моновалентность……Page 230
Литература……Page 232
Часть III. Практическое занятие: программа расчета зарплаты……Page 233
Элементарная спецификация системы расчета зарплаты……Page 234
Вариант использования 1: добавление сведений о новом сотруднике……Page 235
Вариант использования 3: отсылка карточки табельного учета……Page 236
Вариант использования 6: изменение сведений о работнике……Page 237
Вариант использования 7: выполнение программы расчета зарплаты для одного платежного дня……Page 238
Глава 13. Шаблоны Command и Active Object……Page 239
Простые команды……Page 240
Транзакции……Page 242
Отмена действия (UNDO)……Page 244
Шаблон Active Object……Page 245
Литература……Page 251
Глава 14. Шаблоны Template Method и Strategy: наследование и делегирование……Page 252
Шаблон Template Method……Page 254
Не злоупотребляйте шаблонами……Page 257
Сортировка методом “пузырька”……Page 258
Шаблон Strategy……Page 261
И снова сортировка……Page 264
Литература……Page 267
Шаблон Facade……Page 268
Шаблон Mediator……Page 270
Литература……Page 272
Глава 16. Шаблоны Singleton и Monostate……Page 273
Шаблон Singleton……Page 274
Пример использования шаблона Singleton……Page 276
Шаблон Monostate……Page 278
Недостатки шаблона Monostate……Page 280
Пример использования шаблона Monostate……Page 281
Литература……Page 286
Глава 17. Объект Null……Page 287
Литература……Page 291
Глава 18. Практическое занятие: программа по расчету зарплаты (первая итерация)……Page 292
Спецификация……Page 293
Анализ по методу вариантов использования……Page 294
Добавление записи о работнике……Page 295
Проводка карточки табельного учета……Page 297
Проводка торговых квитанций……Page 298
Проведение оплаты за членство в организации……Page 299
Изменение сведений о работнике……Page 300
Платежный день……Page 302
В поисках базовых абстракций……Page 304
Абстракция, связанная с календарным планированием……Page 305
Взносы……Page 307
Литература……Page 308
Глава 19. Практическое занятие: реализация программы по расчету зарплаты……Page 309
Добавление записей о новых работниках……Page 310
База данных Payroll……Page 312
Использование шаблона Template Method при добавлении записей о работниках……Page 314
Удаление записей о работниках……Page 317
Ведение карточек табельного учета, торговых квитанций и поддержка сведений об оплате услуг……Page 319
Изменение записей о работниках……Page 328
Внесение изменений в классификацию……Page 332
Некоторые итоги……Page 338
Оплата труда работников……Page 344
Следует ли разработчикам принимать бизнес-решения?……Page 345
Оплата труда штатных сотрудников……Page 346
Оплата труда работников с почасовой ставкой……Page 349
Периоды выплат: трудности проектирования……Page 353
Основная программа……Page 361
База данных……Page 362
Историческая справка……Page 363
Литература……Page 364
Часть IV. Упаковка программы расчета зарплаты……Page 365
Глава 20. Принципы упаковки программных проектов……Page 366
Пакеты и проектирование……Page 367
Принцип эквивалентности повторно применяемых выпусков (REP, Reuse-Release Equivalence Principle)……Page 368
Принцип общего повторного использования (CRP, Common-Reuse Principle)……Page 370
Принцип общего закрытия (ССР, Common-Closure Principle)……Page 371
Принцип ацикличных зависимостей (ADP, Acyclic-Dependies Principle)……Page 372
Еженедельные выпуски……Page 373
Исключение циклов зависимостей……Page 374
Проявление циклического эффекта в графе, моделирующем взаимосвязи между пакетами……Page 376
Флуктуации……Page 378
Проектирование “сверху вниз”……Page 379
Устойчивость……Page 380
Метрики устойчивости……Page 381
Не все пакеты должны быть устойчивыми……Page 383
Область применения высокоуровневого проектирования……Page 385
Оценки абстракций……Page 386
Главная последовательность……Page 387
Оценка расстояния до главной последовательности……Page 389
Резюме……Page 391
Глава 21. Шаблон Factory……Page 392
Цикл зависимости……Page 395
Замещаемые фабрики……Page 396
Применение фабрик для формирования схем тестов……Page 398
Литература……Page 400
Глава 22. Практическое занятие: программа расчета зарплаты (часть 2)……Page 401
Структура пакетов и запись #402 Применение принципа общего закрытия (ССР, Common-Closure Principle)……Page 404
Принцип эквивалентности повторного использования и выпусков (REP, Reuse-Release Equivalency Principle)……Page 406
Связывание и инкапсуляция……Page 409
Метрики……Page 411
Применение метрик в программе по расчету зарплаты……Page 413
Фабрики объектов……Page 416
Инициализация фабрик……Page 417
Переосмысление ограничений на связывание……Page 418
Заключительная структура пакетов……Page 419
Литература……Page 422
Часть V. Практическое занятие: моделирование метеостанции……Page 423
Глава 23. Шаблон Composite……Page 424
Пример: составные команды……Page 426
Множественное и единственное число……Page 427
Глава 24. Обратно к шаблонам: Observer……Page 428
Электронные часы……Page 429
Шаблон Observer……Page 449
Каким образом шаблон Observer учитывает принципы ООП?……Page 451
Литература……Page 452
Глава 25. Некоторые примеры из практики: шаблоны Abstract Server, Adapter и Bridge……Page 453
Шаблон Abstract Server……Page 454
Кому принадлежит интерфейс?……Page 455
Шаблон Adapter……Page 456
Модемная проблема, шаблон Adapter и принцип LSP……Page 457
Шаблон Bridge……Page 462
Резюме……Page 464
Литература……Page 465
Глава 26. Шаблоны Proxy и Stairway to Heaven: управление API от независимых производителей……Page 466
Шаблон Proxy……Page 467
Применение шаблона Proxy в приложении “тележка для закупок”……Page 472
Резюме: шаблон Proxy……Page 487
Обработка баз данных, промежуточного ПО и других интерфейсов от сторонних производителей……Page 488
Шаблон Stairway to Heaven……Page 490
Пример использования шаблона Stairway то Heaven……Page 492
Другие шаблоны, применяемые при работе с базами данных……Page 498
Литература……Page 500
Глава 27. Практическое занятие: метеостанция……Page 501
Фирма Cloud Company……Page 502
Программа WMS-LC……Page 504
Разработка проекта Nimbus-LC……Page 505
Литература……Page 535
Установка пользователем……Page 536
Исполнители……Page 537
Администрирование……Page 538
Версия I……Page 539
Версия II……Page 540
Реализованные варианты использования……Page 541
Поставляемые модули……Page 542
Часть VI. Практическое занятие: система ETS……Page 543
Глава 28. Шаблон Visitor……Page 544
Шаблон Visitor……Page 545
Шаблон Acyclic Visitor……Page 549
Применение Visitor в генераторах отчетов……Page 554
Шаблон Decorator……Page 562
Множественные декораторы……Page 567
Шаблон Extension Object……Page 568
Литература……Page 579
Глава 29. Шаблон State……Page 580
Автомат с конечным числом состояний……Page 581
Вложенные операторы Switch/Case……Page 583
Интерпретация таблиц переходов……Page 587
Шаблон State……Page 589
Компилятор машины состояний (SMC, State-Machine Compiler)……Page 593
Область применения машин состояний……Page 596
Политики высокоуровневых приложений для GUI……Page 597
Контроллеры, обеспечивающие взаимодействие GUI……Page 598
Резюме……Page 600
Применение табличной интерпретации: turnstile.java……Page 601
Генерация с помощью SMC и другие вспомогательные файлы: turnstile.java……Page 603
Глава 30. Схема ETS……Page 609
Обзор проекта……Page 610
Начало работы……Page 612
Команда образца 1994 года……Page 613
Стратегия……Page 614
Результаты……Page 615
Общие требования к вычислительным приложениям……Page 617
Разработка схемы оценивания……Page 620
Использование шаблона Template Method……Page 624
Однократная запись цикла……Page 625
Общие требования к разрабатываемым приложениям……Page 629
Разработка схемы поставки версий……Page 630
Архитектура мастера задач (Taskmaster)……Page 637
Литература……Page 642
Часть VII. Приложения……Page 643
Приложение А. UML-запись I: CGI-пример……Page 644
Система записи на курсы: описание проблемы……Page 645
Варианты использования……Page 647
Модель предметной области……Page 653
Архитектура……Page 659
Абстрактные классы и интерфейсы в последовательных диаграммах……Page 674
Литература……Page 677
Определение статистического мультиплексора……Page 678
Программная среда……Page 679
Ограничения режима реального времени……Page 680
Служба обработки прерываний входа……Page 681
Стереотипы в окнах списка……Page 682
Состояния и внутренние переходы……Page 684
Вложенные состояния……Page 685
Служба обработки прерываний выхода……Page 687
Протокол связи……Page 689
Диаграммы действий……Page 693
Диаграммы объектов……Page 697
Интерфейсы……Page 698
Диаграммы сотрудничества……Page 700
Диаграммы последовательности сообщений……Page 703
Литература……Page 704
Крах проекта, фирма Rufus, Inc…….Page 705
Проект Альфа, фирма Rupert Industries……Page 715
Приложение Г. Исходный код — это уже проект……Page 723
Определение программного проекта……Page 724
Послесловие……Page 735
Предметный указатель……Page 738

Reviews

There are no reviews yet.

Be the first to review “Быстрая разработка программ: принципы, примеры, практика”
Shopping Cart
Scroll to Top