Лекция №16Управление изменениями и версиями ПО

Создание более-менее сложного программного обеспечения невозможно без управления процессом разработки. Утилиты, использующиеся для автоматизации управления разработкой, такие как системы управления версиями и средства автоматического построения, вполне пригодны и для малых индивидуальных проектов. Эти инструменты помогают организовать процесс создания ПО и, в некоторых случаях, заметно его ускорить.

Управление разработкой включаюет в себя четыре аспекта:

Управление изменениями

Изменения — неотъемлемая часть эволюции программной системы. Изменения, которые необходимо внести в ПО, оформляются в виде запросов (change request). Запросы связаны с исправлением ошибок в системе, расширением ее функциональности или адаптацией системы к новым условиям работы. Источником запроса могут быть пользователи ПО, его заказчик или сами разработчики.

Перед тем, как запрос реализуется в виде изменений в файлах программного проекта, он проходит несколько этапов:

Для организации запросов на изменение существуют специализированные приложения, например, Bugzilla (чаще всего такие программы построены по архитектуре «клиент — сервер» с серверной частью, расположенной на отдельном компьютере локальной сети). В других случаях обработка запросов входит в состав более общей системы управления разработкой. Например, такой функционал присутствует на сайтах хостинга программных проектов GitHub и Google Code.

Управление версиями

Системы управления версиями (СУВ) хранят всю историю продуктов разработки: исходных файлов, документации, используемых библиотек и так далее. Главное назначение СУВ — облегчение параллельной работы над приложением:

Выделяют два типа СУВ:

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

В распределенных системах рабочие копии равнозначны и содержат всю историю правок, информацию о ветвях и так далее. Обычно одна из рабочих копий находится на удаленном хостинге (например, GitHub в случае СУВ Git), однако ее может и не существовать. Есть мнение, что создание распределенных систем управления версиями в начале XXI века сыграло важную роль в развитии программного обеспечения.

Скачать презентацию