Управление конфигурацией
В процессе разработки ПО элементы разрабатываемого или сопровождаемого продукта находятся в разных состояниях. Различные версии и их составляющие находятся в разной степени готовности. В связи с этим при коллективной работе над проектом, в особенности при сборке и тестировании, чрезвычайно важна координация и синхронизация разных версий и отдельных компонент. Необходимо быть уверенным, что в сборке участвует именно та компонента, которая необходима. Деятельность по систематическому учету и контролю внесения обоснованных изменений в программный продукт называется управлением конфигурацией (УК).
Процесс УК подробно описан в стандарте ISO/IEC 12207-2 и в ряде других международных стандартов. Он реализуется через процедуры УК, которые включают идентификацию объектов кУК, учет и контроль состояния ПО, контроль прохождения поступающих требований, рекомендаций и замечаний, аудиторские проверки.
Управление изменениями включает регистрацию изменения, его анализ и оценку влияния предлагаемого изменения на базовую конфигурацию, анализ стоимостных затрат по внесению изменений, решение вопроса о принятии, откладывании или неприятии предлагаемого изменения. Контроль за внесением изменений предполагает отслеживание состояния вносимого изменения по фазам проекта, исполнителям, времени и т. п.
Учет конфигурационного состояния и аудит подразумевают наличие информации, по которой можно судить о состоянии объектов управления и вносимых в них изменениях. Данная информация позволяет получать разнообразные сводки и формировать отчеты о происходящих изменениях и предполагаемых изменениях и помогает в принятии управленческих решений.
Функции УК призваны обеспечить организацию хранения версий, наблюдаемость и управляемость процессов разработки ПО, что достигается путем отслеживания состояния основных ресурсов разработки, развития и сопровождения.
Система УК дает возможность отследить, какие существуют объекты в проекте и в каких состояниях они находятся, как загружены исполнители, как выполняются его задания и т. д.. Тем самым руководители работ получают в свое распоряжение достаточный объем информации, чтобы оценить имеющиеся ресурсы принять необходимые решения.
С позиций УК управление ходом проекта осуществляется на основе формирования и выдачи исполнителям формализованных заданий (запрос на изменение, извещение об ошибке, производственное задание и т. п.). В таком формализованном документе отражается вся история движения запроса на изменение от его возникновения до закрытия проблемы с ним связанной. Информация, содержащаяся в таком документе, обеспечивает наблюдаемость процессов путем фиксации изменения состояний. В документ включаются реквизиты по которым можно организовать контроль исполнения и учет текущего состояния.
В процессе разработки под версионным контролем находятся составные части программного продукта во всех формах представления, включая спецификации, модели, программные компоненты, тесты, рабочую документацию и др. УК здесь направлено на поддержку группового характера разработки, контроль исполнения производственных заданий, оперативную оценку загруженности исполнителей.
В процессе сопровождения на контроль ставится версия в целом. Здесь на первый план выходят процедуры регистрации запросов на изменение и принятие решения о возможности и целесообразности реализации предлагаемого изменения или ошибок, выявленных при эксплуатации
Все основные процедуры КУ выполняются на любой фазе жизненного цикла: устанавливается версионный контроль над компонентами ПО, выдаются и утверждаются задания на изменения, назначаются сроки и ответственные, отслеживаются изменяющиеся состояния, формируются отчеты, проводятся формальные процедуры контроля.
Эффективность УК зависит от степени его автоматизации. Современное инструментальное обеспечивают необходимую степень автоматизации для всех этапов, включая координацию групповой работы, создание электронных архивов, в которых есть возможность приписывать файлам принадлежность к определенным версиям, указывать автора, дату и время создания модуля, хранить историю развития модуля, организовывать доступ к последней модифицированной версии модуля, регламентировать права доступа к каждому из модулей. Средства автоматической сборки обеспечивают гарантированную повторяемость формирования версии. Должны быть механизмы автоматического уведомления по электронной почте или через Интернет о выданных заданиях, внесенных изменениях, принятых решениях.