Репозитории проекта

Репозиторий – хранилище информации, связанной с проектом разработки программного продукта в течение всего его жизненного цикла.

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

1. Модельный.

2. Программного интерфейса.

3. Окружения.

Уровень моделирования достаточно хорошо может быть описан универсальным языком UML. Данный язык является абстрактным, не привязанным к конкретной модели. Язык дает возможность описать зависимости элементов, иерархию, взаимосвязи, свойства и т. п.

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

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

1. Языково-независимая группа:

- информация для отладчика;

- информация для анализатора исходных текстов.

2. Языково-зависимая группа:

- информация для шаблонов;

- коды встроенных функций;

- виртуальные функции.

3. Группа контроля репозитория:

- контроль информации о версиях;

- контроль отношения к проекту;

- тип параллельной обработки;

- тип управления репозиторием;

- проверка цифровой подписи.

Главными достоинствами применения репозиториев окружения являются:

- эффективность работы с информацией;

- использование информации для целей оптимизации;

- распределенность (из которой следуют доступность, параллелизм и специализация);

- модульность, включающая независимость от конкретных инструментов (например, компиляторов);

- возможность работы с репозиторием как в архитектуре «клиент-сервер», так и в «связанном» с инструментом режиме.

Статистика отмечает, что около 80% ПО создается по уже имеющемуся. Следовательно, необходимо иметь электронную библиотеку, которая будет поддерживать архивы и интеллектуальный поиск нужных прототипов и фрагментов. Одним из наиболее известных репозиториев является Microsoft Repository.

36.2. Поддержка коллективной разработки:
системы управления версиями

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

Такие системы наиболее широко применяются при разработке программного обеспечения – для хранения исходных кодов программ. Однако могут с успехом применяться и в других областях, в которых ведётся работа с большим количеством непрерывно изменяющихся электронных документов (например, в САПР).

Система управления версиями позволяет хранить несколько версий одного и того же документа, при необходимости, возвращаться к более ранним версиям, определять, кто и когда сделал то или иное изменение и т.д.

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

Системы контроля версий, как правило, отслеживают только изменения (дельты) между версиями файлов (а не сами полные версии), что позволяет эффективно использовать дисковое пространство.

Часто бывает, что над одним проектом одновременно работают несколько человек. Если два человека изменяют один и тот же файл, то один из них может случайно отменить изменения, сделанные другим. Системы управления версиями отслеживают такие конфликты и предлагают средства их решения. Большинство систем может автоматически объединить (слить) изменения, сделанные разными разработчиками. Однако, такое автоматическое объединение изменений, обычно, возможно только для текстовых файлов и при условии, что изменялись разные (непересекающиеся) части этого файла. Такое ограничение связано с тем, что большинство систем управления версиями ориентированы на поддержку процесса разработки программного обеспечения, а исходные коды программ хранятся в текстовых файлах. Если автоматическое объединение выполнить не удалось, система может предложить решить проблему вручную.

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

Многие системы управления версиями предоставляют ряд других возможностей:

1. Позволяют создавать разные варианты одного документа, т. н. ветки, с общей историей изменений до точки ветвления и с разными – после неё.

2. Дают возможность узнать, кто и когда добавил или изменил конкретную строку кода в файле.

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

4. Контролируют права доступа пользователей, разрешая или запрещая чтение или изменение информации, в зависимости от того, кто запрашивает это действие.

На практике системы управления версиями рекомендуется использовать не только при коллективной, но и при индивидуальной (авторской) разработке ПО.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: