Системы контроля версий как инструмент управления проектами - Студенческий научный форум

XVI Международная студенческая научная конференция Студенческий научный форум - 2024

Системы контроля версий как инструмент управления проектами

Бурдыко В.М. 1
1ФГБОУ ВО "БРЯНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИМ. АК. И.Г. ПЕТРОВСКОГО"
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

Существуют разные представления о том, как ведётся творческая работа. Для многих людей творец – это личность (поэт, художник, изобретатель), которая создаёт своё творение в момент озарения. Тем не менее, задача управления творчеством во все времена была актуальна. Инвесторам, менеджерам, государству хотелось бы иметь предсказуемость на счёт того, когда будет выпущен разрабатываемый творческий продукт (будь это книга, самолёт, компьютерная программа или кинофильм). Творческая работа может вестись как индивидуально (одним творцом – учёным, художником, композитором или поэтом), так и коллективно (когда над созданием произведения работают коллективы людей разных специальностей).

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

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

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

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

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

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

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

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

В современном мире наблюдается постоянное развитие информационных технологий, который требует постоянного совершенствования существующих программных продуктов, с помощью которых происходит внедрение современных тенденций развития сферы ИТ. Одним из методов совершенствования является модификация существующих программ. Это в свою очередь порождает проблему отслеживания появления новых версий модификации и определённых изменении, которые происходят в пределах одной модификации. Эта проблема сводится к созданию систем контроля версий файлов, как программ, так и документов. До появления таких систем большинство разработчиков, чтобы управлять версиями, просто хранили копии предыдущих версий файлов. То есть без наличия этих систем разработчикам нужно было выполнять определенное количество рутинной работы по отслеживанию обновлений и модификаций программ и документов.

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

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

Системы контроля версий (их ещё называют системами управления версиями), один из инструментов, который использует в своей работе любой программист от первокурсника до опытного тим-лида (ведущий разработчик) с сотнями успешных проектов.

Основные принципы систем контроля версий (СКВ)

  1. Версионность: Каждое изменение в файле или наборе файлов сохраняется как отдельная версия. Это позволяет отслеживать историю изменений и возвращаться к предыдущим версиям при необходимости.

  2. Ветвление (Branching) и слияние (Merging): СКВ позволяют создавать отдельные ветки разработки, где могут вноситься изменения независимо от основной ветки. Позднее эти изменения могут быть объединены с основной веткой, обеспечивая параллельную разработку и управление изменениями.

  3. Резервное копирование: СКВ обеспечивают сохранение всех версий файлов, что делает их своего рода резервной копией текущего состояния проекта.

  4. Доступ к истории: Пользователи могут получить доступ ко всей истории изменений, включая информацию о том, кем, когда и в какой последовательности вносились изменения.

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

Эти принципы позволяют эффективно управлять изменениями, обеспечивать сотрудничество между участниками проекта и поддерживать целостность истории разработки.

Типы систем контроля версий

Существует два основных типа систем контроля версий (СКВ):

  1. Централизованные СКВ: В таких системах все версии файлов и история изменений хранятся на центральном сервере. Пользователи получают доступ к файлам и отправляют свои изменения на сервер. Примером централизованных систем контроля версий является Subversion (SVN).

  2. Децентрализованные СКВ: В децентрализованных системах каждый пользователь может иметь полную копию репозитория (хранилища), что позволяет работать независимо от подключения к центральному серверу. Примеры децентрализованных систем контроля версий включают Git и Mercurial.

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

Применение СКВ в управлении проектами

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

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

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

Лучшие практики использования СКВ

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

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

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

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

Заключение

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

К некоторым данным, таким как веб-трафик, другие данные только добавляются. Это означает, что данные добавляются, но редко изменяются. То есть версии данных, необходимых для создания воспроизводимых результатов, - это даты начала и окончания. Важно это отметить, поскольку в таких случаях, возможно, удастся избежать установки упомянутых выше инструментов. Но всё равно нужно будет управлять датами начала и окончания, чтобы убедиться, что тестируется система и модели на одних и тех же данных. Однако в таких случаях не обязательно фиксировать все данные в системе версионирования.

Управление версиями данных - необходимый шаг для команд, позволяющий избежать несоответствий выходных данных. Используется ли Git-LFS, DVC или другой обсуждаемый инструмент, потребуется некоторая версионность данных. Эти инструменты версионирования данных могут помочь сократить объем памяти, необходимый для управления наборами данных, а также помочь отслеживать вносимые членами команды изменения.

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

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

Основываясь на краткий обзор самых популярных систем управления версиями можно подвести итоги:

Несмотря на то, что CVS устарела и обладает серьезными недостатками, она все еще является одной из самых популярных систем контроля версий и отлично подходит для управления небольшими проектами, не требующих создания нескольких параллельных версий, которые надо периодически объединять.

Git – гибкая, удобная и мощная система контроля версий, способная удовлетворить абсолютное большинство пользователей.

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

Большой выбор систем контроля версий позволяет удовлетворить любые требования и организовать работу так, как необходимо. Однако, среди всего многообразия систем есть явные лидеры. Так, если необходимо управлять огромным проектом, состоящим из десятков тысяч файлов и над которым работу ведут тысячи человек, то лучше всего выбор остановить на Git или Mercurial. Если главное – удобный интерфейс, а разрабатываемый проект - не очень большой, то для предпочтительна система Bazaar. Для программистов-одиночек или небольших проектов, не требующих ветвления и создания множества версий, лучше всего подойдет Subversion.

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

Список литературы

  1. Сиротенко, Ф. Ф. Принципы работы и возможности системы управления версиями – Текст электронный // Наукоемкие технологии в космических исследованиях Земли. – 2010 - №1 - URL: http://cyberleninka.ru/article/n/printsipy raboty i vozmozhnosti sistemy upravleniya versiyami (дата обращения: 15.12.2023).

  2. C# Справочник. Полное описание языка / Албахари Д. А., Албахари Б. А.; под ред. М. Ю. Жернева. – Уильямс: Вильямс, 2016. – 1040 с. - ISBN978-5-699-12014-7. – Текст: непосредственный.

  3. VCS. Руководство для начинающих / Фьючерд У. С.; под ред. В. Е. Морте. – Колумбус: ДМК Пресс, 2016. – 518 с. - ISBN972-2327-212-428-5. – Текст: непосредственный.

  4. Алдашов, Д. А., Валбахари, Б. А.VCS Справочник. / Алдашов Д. А., Валбахари Б. А.; под ред. М. Г. Жердева. – Уильямс: Вильямс, 2017. – 540 с. - ISBN979-5-699-15714-7. – Текст: непосредственный.

  5. Алексеевский, П. И. Применение средств управления версиями для коллективной работы студентов над проектом компьютерной игры. – Текст электронный // Педагогическое образование в России - 2012 - №6. - URL: http://cyberleninka.ru/article/n/primenenie sredstv upravleniya versiyami dlya kollektivnoy raboty studentov nad proektom kompyuternoy igry (дата обращения: 15.12.2023).

  6. Архипов, Л. В. Концепция ветвления процесса разработки проекта в системах контроля версий. – Текст электронный //Научная статья. - 2015 –№12 2 - URL: http://elibrary.ru/item.asp?id=25429187 (дата обращения:16.12.2023).

  7. Боховко, Л.К. Инструментарий разработки баз данных и приложений / Л.К. Боховко; под ред. К. В. Пларта. – Санкт-Петербург: СПб, 2017. – 415 с. - ISBN821-422-6732-47-3. – Текст: непосредственный.

  8. Брайн, Р. Разработка приложений // Wikipedia / Р. Брайн. – Текст: электронный // Социальные науки: [сайт]. – 2021 – № 5 – URL: https://en.wikipedia.org/wiki/Make_prg (дата обращения: 16.12.2023).

Просмотров работы: 72