Лекция №17Управление построением и выпусками

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

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

Использование IDE — более простое решение, которое подходит для малых проектов, но при увеличении масштаба становятся очевидными его недостатки:

Средства автоматизации построения можно классифицировать в зависимости от положения на шкале «Явная конфигурация — соглашение о структуре проекта»:

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

На частоту выпусков влияет много факторов: обнаруженные ошибки, изменение среды выполнения, конкуренция и так далее. Согласно законам эволюции ПО, частота выпусков на протяжении всего жизненного цикла программной системы остается приблизительно одинаковой.

Выпуски ПО необходимо идентифицировать, например, чтобы определять совместимость между приложениями. Существует много способов нумерации выпусков; один из наиболее популярных на сегодняшний день — семантическая нумерация (semantic versioning).

Непрерывная интеграция

Все аспекты управления конфигурацией ПО эффективно используются в рамках непрерывной интеграции (continuous integration, CI) — методологии разработки, придуманной Гради Бучем и развитой Мартином Фоулером. Основная идея состоит в том, чтобы при помощи управления версиями и инструментов автоматизации построения тестировать все изменения, вносимые разработчиками. Согласно практике непрерывной интеграции, каждый разработчик фиксирует свои изменения не реже раза в день; после каждой операции фиксации проект строится на выделенном сервере построения, схожем по своей архитектуре на целевую систему. Один из последних этапов построения — прогонка исчерпывающего набора модульных тестов. Это позволяет быстро исправлять ошибки интеграции, которые неизбежно возникают при коллективной разработке.

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