Модель синхронизации
- При управлении конфигурацией (CM) необходимо контролировать (помимо прочего) изменения, вносимые в программное обеспечение и документацию. Это называется контролем версий , который управляет несколькими версиями одной и той же единицы информации. Хотя контроль версий важен для CM, он не равен ему.
Модели синхронизации , также известные как модели управления конфигурацией (Фейлер, 1991), описывают методы, обеспечивающие контроль версий посредством одновременного и одновременного внесения изменений в отдельные файлы.
Модели синхронизации
[ редактировать ]Фейлер (1991) сообщает о четырех различных моделях синхронизации, кратко описанных ниже.
Выезд/заезд
[ редактировать ]В модели извлечения/возврата файлы хранятся индивидуально в репозитории, из которого они извлекаются при каждом обращении к файлам и возвращаются при их изменении. В этом репозитории можно хранить несколько версий файлов. Поскольку эти файлы могут представлять собой документацию или исходный код , но также могут представлять собой набор файлов, термин «элемент конфигурации» с этого момента будет использоваться (CI). Основным механизмом, используемым для предотвращения конфликтов при одновременных изменениях, является механизм блокировки .
Состав
[ редактировать ]Композиционная модель является расширением модели оформления/регистрации. Эта модель позволяет разработчикам думать о конфигурациях, а не об отдельных файлах. Хотя полная модель извлечения/возврата представлена в композиционной модели, она позволяет использовать различные стратегии обновления за счет использования улучшенной поддержки управления конфигурациями. Конфигурация определяется как построенная на основе модели системы и правил выбора версии. Модель системы определяет, какие файлы используются, а правила выбора версии определяют, какая версия файлов (например, последние версии или определенная стадия разработки ).
Длинные транзакции
[ редактировать ]Модель длинных транзакций использует более широкий подход, предполагая, что система построена из логических изменений. Основное внимание уделяется координации и интеграции этих изменений. По сути, он использует версии конфигураций и версии файлов. Конфигурация создается на основе запроса на изменение , который хранится отдельно. Файлы в этой конфигурации можно синхронизировать с использованием модели извлечения/возврата. После завершения изменения полная конфигурация сохраняется обратно в репозиторий и интегрируется с другими изменениями.
Изменить набор
[ редактировать ]Модель набора изменений также работает на основе запросов на изменения и имеет много общего с моделью длинных транзакций. Однако все начинается с определенной конфигурации как основы для изменений. Затем это изменяется в соответствии с поступающими независимыми запросами на изменение. Затем создаются новые конфигурации продукта путем применения наборов независимо сохраненных изменений к базовой версии.
В этой записи рассматривается модель синхронизации извлечения/возврата, включая метамодель ( диаграмму данных процесса ). Поскольку модель выезда/регистрации также включена в состав других моделей, обсуждавшихся выше, поэтому она дополнительно разрабатывается. Вопросы, которые не обсуждаются подробно, — это три оставшиеся модели синхронизации и собственно редактирование ЭК вместе со связанными с этим методами.
Словарный запас
[ редактировать ]Концепция | Определение |
---|---|
Версия | Версия — это состояние объекта или концепции, которое отличается от его предыдущего состояния или состояния. |
Элемент конфигурации | Элемент программного обеспечения или документ, находящийся под контролем версий. Группу КИ также можно определить как КИ (Crnkovic et al., 2003). |
История элемента конфигурации | Концепция, облегчающая штамповку версий. Разделяет атрибуты, специфичные для версии, от атрибутов, общих для всех версий (Ван де Веерд, 2005). |
Документ | Многие типы документации являются частью разработки программного обеспечения. Рассмотрите документы, описывающие архитектуру программного обеспечения, техническую документацию, руководства пользователя и т. д. |
исходного кода Файл | Файл исходного кода содержит любую серию операторов, написанную на каком-либо удобочитаемом языке компьютерного программирования . Исходный код компьютерной программы — это набор файлов, которые можно преобразовать из удобочитаемой формы в эквивалентную форму, исполняемую компьютером. |
Репозиторий | Репозиторий также называют хранилищем. Репозиторий содержит только одну полную версию элемента конфигурации. Различия между версиями обычно сохраняются с использованием дельта-алгоритма (Crnkovic, Asklund & Persson-Dahlqvist, 2003). |
Организация версий | Версии ЭК могут быть организованы различными способами. Это родительский элемент концепций, описывающих организацию версий (Crnkovic et al., 2003). |
Ветвь | Версии организованы в виде параллельных линий разработки (Crnkovic et al., 2003). |
Редакция | Версии организованы в последовательность (Crnkovic et al., 2003). |
Состояние развития | Показывает, как продвигалась разработка программного обеспечения и какой объем дальнейшей разработки может потребоваться. Каждая основная версия продукта обычно проходит этап добавления новых функций (альфа-стадия/состояние), затем этап активной отладки (бета-стадия/состояние) и, наконец, этап, когда все важные ошибки устранены ( стабильная стадия/состояние). |
Проработка модели выезда/заселения
[ редактировать ]В этом разделе подробно описана модель синхронизации выезда/регистрации.
Диаграмма данных процесса
[ редактировать ]Приведенная выше диаграмма данных процесса описывает различные концепции, применимые в модели синхронизации выезда/регистрации, и их связь с происходящими действиями. Центральным элементом модели метаданных (правая часть рисунка) является элемент конфигурации. Он хранится в одном или нескольких репозиториях и может представлять собой, например, файл исходного кода или набор других ЭК. Репозиторий может содержать несколько веток и ревизий файлов. Они, в свою очередь, состоят из элементов конфигурации.
Модель метапроцесса (левая часть рисунка) описывает процесс оформления и возврата товаров. Действия описаны в таблице действий ниже.
Активность | Подвид деятельности | Определение |
---|---|---|
Проверить | Файлы не читаются и не изменяются непосредственно из репозитория. Проверка описывает эти действия. | |
Копируйте ЗДЕСЬ | Из репозитория копируется определенная версия ЭК. | |
Блокировка CI | Если требуется доступ для записи и если ЭК еще не заблокирован кем-то другим, ЭК блокируется. В противном случае ЭК не может быть записан обратно в репозиторий (доступ только для чтения). | |
Изменить ЭК | Лицо, редактирующее ЭК, вносит в него изменения. Это выходит за рамки текущей метамодели управления версиями. | |
Регистрироваться | CI необходимо поместить обратно в репозиторий. Регистрация описывает эти действия. | |
Выберите стратегию управления версиями | Новый ЭК необходимо поместить обратно в репозиторий, используя стратегию управления версиями. Здесь описывается выбор стратегии, используемой для помещения ЭК обратно в репозиторий. | |
Создать ветку | ЭК выбран в качестве начала новой ветки. | |
Создать редакцию | ЭК выбран как ревизия другого ЭК. | |
Выберите состояние разработки | Определено, что CI находится на определенном уровне развития. | |
Напишите IN | CI хранится в репозитории. | |
Разблокировать CI | CI разблокирован. |
Оценка
[ редактировать ]Фейлер (1991) оценил модель синхронизации выезда/регистрации. Его явное преимущество заключается в простоте использования и понимания. Однако эта простота приводит к отсутствию управления конфигурациями, такого как отслеживание версий продукта и проверка истории версий в нескольких логически связанных файлах.
Механизм блокировки с очередностью также является настоящей проблемой при работе со многими разработчиками, поскольку после блокировки эти файлы не могут быть отредактированы другими.
Пример
[ редактировать ]Чтобы проиллюстрировать модель синхронизации выезда/регистрации, в этом разделе приведен пример того, как работает этот процесс. На рисунке ниже представлена диаграмма перехода состояний CI.
При первом создании ЭК он модифицируется и сохраняется в репозитории. Когда кто-то запрашивает открытие CI, он сначала копируется на локальный компьютер разработчика (примечание: существуют системы, в которых редактирование происходит непосредственно в репозитории. Однако этап копирования представляет собой классический способ извлечения/возврата). Когда этот разработчик также хочет отредактировать ЭК, он запрашивает блокировку. Это можно сделать как непосредственно по запросу открытия КИ, так и через некоторое время после его чтения. Если ЭК еще не заблокирован, применяется блокировка, которую разработчик может изменить. После внесения изменений он сохраняется обратно в репозитории и разблокируется. Теперь предположим, что разработчик, о котором только что говорилось, находится в процессе редактирования ЭК, который уже находится в репозитории. Вы хотите открыть ЭК из репозитория, поэтому он копируется на ваш локальный диск. Вы начинаете читать его и обнаруживаете, что кое-что хотите изменить, поэтому просите отредактировать его. Однако CI уже заблокирован и вам придется дождаться его разблокировки или закрыть файл и перейти к другому.
См. также
[ редактировать ]- Управление конфигурацией
- Контроль версий
- Процесс управления изменениями
- Управление релизами
- Моделирование структуры продукта
- Разработка семейства продуктов
- Управление жизненным циклом продукта
- Список программного обеспечения для контроля версий
Ссылки
[ редактировать ]- Црнкович И.; Аскланд, У.; Перссон-Дальквист, А. (2003), Внедрение и интеграция управления данными о продуктах и управления конфигурацией программного обеспечения , Лондон: Artech House Publishers.
- Фейлер, PH (1991), «Модели управления конфигурацией в коммерческих средах», Технический отчет CMU / SEI-91-TR-7 , Институт разработки программного обеспечения, Университет Карнеги-Меллон.
- Ван де Верд, И. (2005), Техника метамоделирования - черновой вариант курса «Методная инженерия» 05/06.