УДК 004.4
ББК 32.973.26-018.2
Б43
Б43
Белладжио, Дэвид.
Разработка программного обеспечения: управление изменениями / Д. Белладжио,
Т. Миллиган ; пер. с англ. Н. А. Мухина. — 2-е изд., эл. — 1 файл pdf :
385 с. — Москва : ДМК Пресс, 2023. — Систем. требования: Adobe Reader XI либо
Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный.
ISBN 978-5-89818-614-2
Эта книга об инженерной дисциплине, которая называется управлением конфигурацией
программного обеспечения (software configuration management — SCM), а также о
широко используемом продукте SCM — ClearCase, который автоматизирует и поддерживает
практическое применение SCM посредством модели, называемой унифицированным
управлением изменениями (Unified Change Management — UCM).
Настоящая книга раскрывает базовые концепции, типичные проблемы SCM, возникающие
по мере роста и усложнения программных систем, а также способы применения
инструментов и процессов SCM для решения этих проблем. Также обсуждаются расширенные
темы SCM, включая управление географически разделенными командами разработчиков,
и сочетания SCM с управлением запросами на изменение (или отслеживанием
дефектов).
УДК 004.4
ББК 32.973.26-018.2
Электронное издание на основе печатного издания: Разработка программного обеспечения: управление
изменениями / Д. Белладжио, Т. Миллиган ; пер. с англ. Н. А. Мухина. — Москва : ДМК Пресс,
2016. — 384 с. — ISBN 978-5-97060-341-3. — Текст : непосредственный.
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме
и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок
все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых
сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием
книги.
В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты
авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации.
ISBN 978-5-89818-614-2
© by International Business Machines Corporation.
© Перевод на русский язык, оформление, издание,
ДМК Пресс
Стр.5
Содержание
Благодарности ........................................................................... 15
Похвалы второй редакции SCM и IBM® Rational®
ClearCase®: Практическое представление......................... 16
Об авторах................................................................................... 17
Дэвид Белладжио (David E. Bellagio) .......................................... 17
Том Миллиган (Tom J. Milligan) ................................................... 17
Предисловие ко второму изданию ........................................ 19
О чем эта книга ............................................................................. 19
Что необходимо знать, прежде чем приступить к чтению
этой книги ..................................................................................... 20
Кто вы и почему вам нужно прочесть эту книгу ......................... 20
Для разработчика программного обеспечения........................ 20
Для менеджера программного проекта или технического
руководителя ........................................................................... 21
Для специалиста по инструментальным средствам ................. 21
Для тех, кто оценивает возможности ClearCase....................... 21
Для опытных пользователей ClearCase .................................... 22
Как организована эта книга ........................................................ 22
Используемые соглашения ......................................................... 24
Команды и примечания, предупреждения и подсказки ............ 24
Формат диаграмм UML ............................................................ 25
Глава 1
Что такое управление конфигурацией
программного обеспечения? .................................................. 27
1.1 Практика применения SCM .................................................. 29
1.1.1 Идентификация и хранение рабочих продуктов
в защищенном репозитории ......................................... 30
Стр.6
6
Разработка программного обеспечения: управление изменениями
1.1.2 Контроль и аудит изменений рабочих продуктов .......... 31
1.1.3 Организация версий рабочих продуктов
в версии компонентов ................................................... 31
1.1.4 Организация версий компонентов и подсистем
в новые версии подсистем ............................................ 33
1.1.5 Создание базовых линий в контрольных точках
проекта ......................................................................... 33
1.1.6 Запись и отслеживание запросов на изменение ........... 35
1.1.7 Организация и интеграция согласованных наборов
версий посредством видов деятельности ..................... 35
1.1.8 Сопровождение стабильных и согласованных
рабочих пространств .................................................... 38
1.1.9 Поддержка параллельных изменений в рабочих
продуктах и компонентах .............................................. 38
1.1.10 Раннее начало интеграции системы и частое
ее повторение ............................................................... 39
1.1.11 Обеспечение воспроизводимости сборок
программного обеспечения .......................................... 40
1.2 Инструменты SCM и процесс SCM ...................................... 40
1.2.1 Инструменты SCM ........................................................ 40
1.2.2 Процесс SCM ................................................................ 41
1.3 Итоги .............................................................................. 41
Глава 2
Применение решений SCM ..................................................... 42
2.1 Как справиться с изменениями требований в проекте ..... 42
2.1.1 Возрастание сложности разрабатываемой
программной системы .................................................. 44
2.1.2 Возрастание сложности среды разработки проекта ..... 46
2.1.3 Изменение фазы жизненного цикла.............................. 47
2.1.4 Изменение процессов и персонала .............................. 48
2.2 Эволюция инструментов SCM.............................................. 50
2.2.1 Пять категорий проектных команд ................................ 52
2.2.2 Что делать при отсутствии инструментов SCM ............. 54
2.2.3 Ранняя поддержка инструментов SCM.......................... 59
2.2.4 Поддержка современных инструментов SCM ............... 65
2.2.5 Расширенная поддержка инструментов SCM ............... 75
2.3 Итоги ....................................................................................... 77
Стр.7
Содержание
7
Глава 3
Обзор модели унифицированного управления
изменениями (UCM).................................................................. 78
3.1 Что такое UCM? ..................................................................... 78
3.2 Значение UCM ....................................................................... 79
3.2.1 Абстракция ................................................................... 80
3.2.2 Стабильность ................................................................ 80
3.2.3 Контроль ....................................................................... 81
3.2.4 Коммуникации .............................................................. 81
3.3 Что такое ClearCase? ............................................................. 82
3.3.1 Модель UCM ClearCase ................................................. 82
3.3.2 Модель UCM «Базовая линия + Изменение» ................. 83
3.4 Что такое ClearQuest? ........................................................... 86
3.5 Обзор процесса UCM ClearCase .......................................... 86
3.5.1 Архитектор .................................................................... 88
3.5.2 Менеджер по управлению конфигурацией.................... 88
3.5.3 Менеджер проекта ........................................................ 88
3.5.4 Разработчик .................................................................. 89
3.5.5 Интегратор ................................................................... 89
3.6 Архитектор: определение модели реализации .................. 89
3.6.1 Компоненты ClearCase .................................................. 91
3.6.2 Компоненты в унифицированном языке моделирования .. 92
3.7 Менеджер по управлению конфигурацией:
настройка среды SCM ........................................................... 93
3.8 Менеджер проекта: управление проектом ......................... 94
3.9 Разработчик: подключение к проекту и разработка .......... 96
3.10 Интегратор: интеграция, сборка и выпуск версии............ 98
3.10.1 Выпуск компонента ....................................................... 98
3.10.2 Интеграция системы ..................................................... 99
3.10.3 Выпуск систем и подсистем .......................................... 99
3.11 Итоги ................................................................................... 100
Глава 4
Функциональный обзор объектов ClearCase..................... 101
4.1 Репозиторий: база версионных объектов ......................... 101
4.2 Рабочие пространства: снимки и динамические
представления ..................................................................... 103
Стр.8
8
Разработка программного обеспечения: управление изменениями
4.2.1 Представленияснимки............................................... 104
4.2.2 Webпредставления .................................................... 106
4.2.3 Динамические представления .................................... 106
4.2.4 Различия между снимками и динамическими
представлениями........................................................ 109
4.3 Управление проектами: проекты, потоки
и деятельности .................................................................... 110
4.3.1 Проекты ...................................................................... 110
4.3.2 Потоки ........................................................................ 111
4.3.3 Деятельности .............................................................. 116
4.4 Версионные объекты: элементы, ветви и версии ............ 119
4.4.1 Версионность директориев ........................................ 121
4.4.2 Типы элементов .......................................................... 122
4.5 Управление компонентами: компоненты и базовые
линии .................................................................................... 124
4.5.1 Компоненты ................................................................ 124
4.5.2 Базовые линии ............................................................ 124
4.6 Процессы: метки, атрибуты, гиперссылки, триггеры ...... 130
4.6.1 Метки .......................................................................... 130
4.6.2 Атрибуты ..................................................................... 131
4.6.3 Гиперссылки ............................................................... 131
4.6.4 Триггеры ..................................................................... 132
4.6.5 Создание и управление типами .................................. 132
4.7 Сборка: Clearmake, порожденные объекты,
конфигурационные записи ................................................. 133
4.7.1 Аудит сборок ............................................................... 134
4.7.2 Разделение объектов .................................................. 134
4.7.3 Параллельные и распределенные сборки ................... 135
4.7.4 Clearmake против классического Make ....................... 135
4.8 Итоги..................................................................................... 136
Глава 5
Установка начальной среды SCM ........................................ 137
5.1 Основы архитектуры ClearCase.......................................... 137
5.1.1 Сервер лицензий и сервер регистрации ..................... 138
5.1.2 Сервер VOB и сервер представлений ......................... 139
5.1.3 Сервер ALBD и клиентские процессы.......................... 141
5.1.4 Многоверсионная файловая система ......................... 142
Стр.9
Содержание
5.1.5 Пример аппаратной конфигурации ............................. 143
9
5.2 Требования ClearCase к аппаратным ресурсам ............... 145
5.2.1 Требования к памяти................................................... 147
5.2.2 Требования к дисковому вводу/выводу ...................... 148
5.2.3 Пропускная способность и надежность сети ............... 148
5.2.4 Центральный процессор ............................................. 149
5.2.5 Прочие требования ..................................................... 149
5.2.6 Ограничения числа пользователей, VOB
и представлений ......................................................... 152
5.2.7 Соображения о размере VOB ...................................... 152
5.3 Мониторинг и настройка производительности
ClearCase .............................................................................. 153
5.3.1 Измерения на низшем уровне..................................... 156
5.3.2 Измерения на среднем уровне ................................... 157
5.3.3 Измерение на верхнем уровне .................................... 158
5.4 Определение модели реализации..................................... 159
5.5 Создание репозиториев VOB ............................................. 160
5.5.1 Создание PVOB в интерфейсе командной строки ....... 160
5.5.2 Создание PVOB в графическом интерфейсе
пользователя .............................................................. 161
5.5.3 Использование VOB администратора ......................... 162
5.5.4 Использование более одного PVOB ............................ 164
5.5.5 Создание VOB’ов и компонентов в интерфейсе
командной строки ....................................................... 164
5.5.6 Создание VOB’ов и компонентов в графическом
интерфейсе пользователя .......................................... 166
5.5.7 Импорт существующего кода ...................................... 168
5.6 Уровни продвижения базовых линий ................................ 169
5.7 Итоги..................................................................................... 171
Глава 6
Управление проектами в ClearCase .................................... 172
6.1 Что такое проект ClearCase? .............................................. 172
6.1.1 Кто проводит изменения? ........................................... 172
6.1.2 Что изменяется? ......................................................... 174
6.1.3 Как выполняются изменения? ..................................... 174
6.1.4 Как формируется и интегрируется поток изменений? ... 174
6.2 Создание проекта ClearCase .............................................. 175
Стр.10
10
Разработка программного обеспечения: управление изменениями
6.2.1 Идентификация менеджера проекта ........................... 175
6.2.2 Идентификация компонентов и базовых линий........... 176
6.2.3 Определение правил вашего проекта ......................... 176
6.2.4 Определение свойств вашего проекта UCM ............... 184
6.2.5 Выбор местонахождения вашего проекта ................... 190
6.2.6 Создание вашего проекта ........................................... 190
6.3 Итоги..................................................................................... 195
Глава 7
Управление и организация проектов ClearCase ............... 197
7.1 Координация множества параллельных версий .............. 197
7.1.1 Проектдоработка ....................................................... 198
7.1.2 Проект главной линии ................................................. 198
7.1.3 Завершение проекта ................................................... 199
7.1.4 Создание проекта ....................................................... 200
7.1.5 Множественные параллельные проекты ..................... 201
7.2 Организация масштабной многопроектной разработки .... 202
7.2.1 Архитектурно ориентированные команды
разработчиков ............................................................ 202
7.2.2 Функционально ориентированные команды
разработчиков ............................................................ 206
7.3 Координация взаимодействующих проектов:
независимые компоненты .................................................. 208
7.3.1 Создание проекта ....................................................... 208
7.3.2 Планирование итераций ............................................. 208
7.3.3 Интеграция ................................................................. 210
7.4 Координация взаимодействующих проектов:
совместно используемые компоненты ............................. 211
7.4.1 Создание проекта ....................................................... 211
7.4.2 Планирование итераций ............................................. 212
7.4.3 Интеграция ................................................................. 213
7.5 Координация проектов разработки IT/IS .......................... 213
7.5.1 Выбор функций, над которыми нужно работать .......... 216
7.5.2 Реализация процесса утверждения ............................ 216
7.5.3 Срочное исправление ошибок .................................... 217
7.5.4 Планирование главной версии.................................... 217
7.6 Координация проектов документации или малых команд.... 218
7.6.1 Создание проекта ....................................................... 219
7.6.2 Подключение к проекту ............................................... 220
Стр.11
Содержание
11
7.6.3 Доставка изменений ................................................... 220
7.6.4 Обновление рабочего пространства ........................... 221
7.6.5 Создание базовых линий ............................................ 221
7.7 Итоги..................................................................................... 221
Глава 8
Разработка с применением модели UCM ClearCase ....... 222
8.1 Взгляд разработчика на UCM ............................................. 222
8.2 Работа с проектом............................................................... 223
8.3 Внесение изменений .......................................................... 227
8.3.1 Работа с деятельностями ............................................ 227
8.3.2 Модификация файлов и директориев ......................... 229
8.3.3 Работа из командной строки ....................................... 231
8.4 Доставка изменений в проект ............................................ 232
8.4.1 Checkin всех элементов, полученных checkout ......... 232
8.4.2 Смена базы от последних рекомендованных
базовых линий проекта ............................................... 234
8.4.3 Запуск команды ClearCase Deliver ............................... 234
8.4.4 Сборка и тестирование доставки ................................ 236
8.4.5 Завершение или отмена доставки .............................. 237
8.5 Смена базы потока разработки ......................................... 237
8.5.1 Запуск операции Rebase ............................................. 238
8.5.2 Сборка и тестирование ............................................... 239
8.5.3 Завершение или отмена смены базы .......................... 240
8.6 Обработка конфликтующих изменений ............................ 240
8.6.1 Сценарий доставки 1 (конфликтов нет) ....................... 240
8.6.2 Сценарий доставки 2 (конфликтов нет) ....................... 241
8.6.3 Сценарий доставки 3 (с конфликтами) ........................ 241
8.6.4 Сценарий смены базы 1 (без конфликтов) .................. 242
8.6.5 Сценарий смены базы 2 (с конфликтами) ................... 243
8.6.6 Инструменты слияния ClearCase ................................. 243
8.7 Бесшовная интеграция в IDE разработчика ...................... 245
8.8 Итоги..................................................................................... 247
Глава 9
Интеграция................................................................................ 250
9.1 Интеграция программного обеспечения .......................... 251
9.1.1 Интеграция слиянием ................................................. 251
Стр.12
12
Разработка программного обеспечения: управление изменениями
9.1.2 Интеграция сборкой ................................................... 251
9.1.3 Сценарии интеграции для команд разного размера ... 252
9.2 Изоляция и интеграция с ClearCase .................................. 254
9.2.1 Разделяемое представление: никакой изоляции ........ 256
9.2.2 Разработка «ветвь/ПОСЛЕДНЯЯ»: максимизация
интеграции ................................................................. 257
9.2.3 Применение ветвей для изоляции и интеграции ......... 261
9.2.4 Интеграция с UCM ...................................................... 265
9.3 Итоги..................................................................................... 279
Глава 10
Построение, создание базовых линий
и развертывание версий........................................................ 280
10.1 Создание базовых линий и сборка с UCM ....................... 281
10.1.1 Блокировка потока интеграции ................................... 282
10.1.2 Создание базовых линий программных компонентов .... 283
10.1.3 Сборка программных компонентов ............................. 286
10.1.4 Выполнение поверхностных тестов ............................ 287
10.1.5 Использование стабилизационных сборочных
потоков ....................................................................... 287
10.1.6 Продвижение и рекомендация базовых линий
программных компонентов ......................................... 288
10.1.7 Разблокирование потока интеграции ......................... 292
10.1.8 Автоматизация ночного процесса сборки ................... 293
10.2 Установка, развертывание и выпуск ................................ 293
10.2.1 Устанавливаемые компоненты.................................... 295
10.2.2 Применение сборочного проекта
для развертывания версий ......................................... 295
10.2.3 Моделирование стадий развертывания версии
с помощью потоков ..................................................... 297
10.2.4 Роль ClearQuest в развертывании ............................... 298
10.3 Итоги ................................................................................... 305
Глава 11
Географически распределенная разработка ................... 306
11.1 Проблемы распределенной разработки.......................... 307
11.1.1 Организация ............................................................... 307
Стр.13
Содержание
13
11.1.2 Коммуникации ............................................................ 308
11.1.3 Технология .................................................................. 308
11.2 Как ClearCase поддерживает распределенную
разработку ........................................................................... 311
11.2.1 Удаленный терминальный, или настольный, доступ ... 311
11.2.2 Удаленный клиентский доступ .................................... 312
11.2.3 Webдоступ ................................................................. 313
11.2.4 Автономная работа ..................................................... 314
11.2.5 Локальный доступ ....................................................... 314
11.2.6 Что такое ClearCase Remote Client (CCRC)? ................ 315
11.2.7 Что такое ClearCase MultiSite? ..................................... 317
11.2.8 Что такое ClearQuest MultiSite?.................................... 319
11.2.9 Совместное использование ClearCase MultiSite
и ClearQuest MultiSite .................................................. 321
11.3 Множество команд: сценарий
«поставщик/потребитель» .................................................. 323
11.3.1 Поддержка команд поставщиков/потребителей ......... 326
11.3.2 Как UCM поддерживает модель
«Поставщик/потребитель» .......................................... 326
11.3.3 Как базовый ClearCase поддерживает модель
«Поставщик/потребитель» .......................................... 327
11.3.4 Итоги о модели «поставщик/потребитель» ................. 329
11.4 Множество команд: cценарий с совместно
используемым кодом .......................................................... 329
11.4.1 Как UCM поддерживает разделяемый исходный код .. 332
11.4.2 Как базовый ClearCase поддерживает разделяемый
исходный код .............................................................. 333
11.4.3 Итоги по разделяемому коду ...................................... 334
11.5 Единая команда: сценарий с распределенными членами .. 334
11.5.1 Как модель UCM поддерживает локальный доступ ..... 335
11.5.2 Как базовый ClearCase поддерживает локальное
использование ............................................................ 336
11.5.3 Ветвление по деятельности ........................................ 339
11.5.4 Единая команда: итоги по работе с распределенными
членами ...................................................................... 341
11.6 Другие применения ClearCase MultiSite ........................... 341
11.6.1 MultiSite для резервного копирования ........................ 341
11.6.2 MultiSite для доставки ................................................. 341
11.6.3 MultiSite для межплатформенного взаимодействия.... 342
11.7 Итоги ................................................................................... 342
Стр.14
14
Разработка программного обеспечения: управление изменениями
Глава 12
Управление запросами на изменение и ClearQuest ........ 343
12.1 Что такое управление запросами на изменение?........... 343
12.2 Что такое запросы на изменение? ................................... 344
12.3 Процесс управления запросами на изменение .............. 345
12.3.1 Регистрация ................................................................ 346
12.3.2 Оценка ........................................................................ 346
12.3.3 Решение ..................................................................... 347
12.3.4 Реализация ................................................................. 348
12.3.5 Верификация .............................................................. 348
12.3.6 Завершение ................................................................ 349
12.4 Что такое ClearQuest? ........................................................ 349
12.5 Как использовать данные ClearQuest? ............................. 351
12.5.1 Запросы ...................................................................... 353
12.5.2 Отчеты ........................................................................ 354
12.5.3 Графики ...................................................................... 356
12.6 Как ClearQuest поддерживает UCM .................................. 359
12.7 ClearQuest MultiSite ............................................................ 361
12.8 Итоги ................................................................................... 361
Приложение A
Повторное проведение и отмена наборов
изменений с UCM .................................................................... 363
A.1 Нахождение скрипта ........................................................... 363
A.2 Ограничьте применение скрипта только от имени роли
Integrator ............................................................................... 364
A.3 Интерфейс скрипта ............................................................. 364
A.4 В чем его польза? ................................................................ 364
A.5 Повторное проведение деятельности в другом потоке... 365
В чем его польза? .................................................................. 365
A.6 Отмена доставки или деятельности .................................. 367
Глоссарий.................................................................................. 368
Список литературы .................................................................... 382
Стр.15