Статья опубликована в рамках: XXIII-XXIV Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 18 сентября 2014 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Пономарев Е. СИСТЕМЫ УПРАВЛЕНИЯ ВЕРСИЯМИ ПРИ КОЛЛЕКТИВНОЙ РАЗРАБОТКЕ ПО // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. XXIII-XXIV междунар. студ. науч.-практ. конф. № 8-9(23). URL: http://sibac.info/archive/technic/8-9(23).pdf (дата обращения: 23.09.2019)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

 

СИСТЕМЫ  УПРАВЛЕНИЯ  ВЕРСИЯМИ  ПРИ  КОЛЛЕКТИВНОЙ  РАЗРАБОТКЕ  ПО

Пономарев  Евгений

магистрант  1-го  курса,  факультета  «Академия  кино  и  телевидения»,  кафедра  «Компьютерной  и  программной  инженерии»  университет  «Туран»,  Республика  Казахстан,  г.  Алматы

E-mail: 

 

Коллективная  разработка  —  это  бизнес-стратегия,  рабочий  процесс  и  набор  программного  обеспечения,  способствующие  совместной  работе  различных  организаций,  программистов  над  одним  изделием  [4].

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

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

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

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

Коллективная  разработка  программного  обеспечения  включает  как  минимум  следующие  процессы:

·     Разработка

·     Тестирование

·     Сборка

·     Развёртывание

·     Выпуск  продукта

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

Термин  «collaborate»  (с  англ.  коллективная  работа)  в  XXI  веке,  веке  технологий,  популярен  как  никогда.  Он  означает,  что  сервис  предоставляет возможность  одновременной  работы  сразу  для  нескольких  пользователей,  которые  трудятся  над  решением  общей  задачи.

У  одних  сервисов  коллективный  труд  является  лишь  одной  из  опций,  а  у  других  —  основной  функцией.  Основной  проблемой  является  то,  что  термин  “collaborate”  не  всегда  обозначает  «командную  работу»,  а  среди  сервисов,  по-настоящему  поддерживающих  совместную  работу,  бесплатны  лишь  некоторые.

Система  управления  версиями  представляет  собой  программное  обеспечение,  для  работы  с  постоянно  изменяющейся  информацией.  Она  даёт  возможность  хранить  несколько  версий  одного  и  того  же  документа,  при  необходимости  возвращаться  к  более  ранним,  а  также  определять,  кто  и  когда  сделал  то  или  иное  изменение,  и  многое  другое  [2,  c.  367].

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

Проведём  мониторинг  работоспособности  некоторых  из  них.

·     Bazaar,  ранее  известная  как  Bazaar-NG,  утилита  командной  строки  bzr,  —  это  распределённая  система  управления  версиями,  разработка  которой  спонсируется  фирмой  Canonical  Ltd,  в  последнюю  версию  по  сравнению  с  предыдущей  было  внесено  более  50  изменений.  Данная  система  разработана  в  целях  облегчения  создания  и  развития  проектов  для  пользователей  [1,  c.  257].

·     Mercurial,  в  переводе  с  англ.  «подвижный»,  —  распределённая  система  управления  версиями,  способная  функционировать  на  многих  операционных  системах  и  различных  аппаратных  платформах,  разработанная  для  эффективной  работы  с  очень  большими  кодами.

·     Git  —  распределённая  система  управления  версиями  файлов.  Код  программы  был  написан  на  языке  «С»,  проект  создан  Линусом  Торвальдсом  в  2005  году  для  управления  разработкой  ядра  Linux,  является  общедоступным  программным  обеспечением.  Данная  система  была  введена  многими  ведущими  разработчиками,  используется  в  известных  Linux-сообществу  проектах  [3].

·     Concurrent  Versions  System  (или  CVS,  в  переводе  «Система  Одновременных  Версий»)  —  представляет  собой  программный  продукт,  который  относится  к  разряду  систем  управления  версиями.  Программа  хранит  историю  изменений  исходного  кода  программного  обеспечения,  тем  самым  облегчая  совместную  работу  программистов  над  одним  проектом.  CVS  популярна  в  мире  открытого  программного  обеспечения.

Для  более  подробного  анализа  сравним  характеристики  программ  в  таблице  1

Таблица  1.

Анализ  программ  по  коллективной  разработке  ПО

Название

Преимущества

Недостатки

Bazaar

·                   не  требует  использования  специального  сервера,  поддерживает  работу  как  с  ним,  так  и  без  него;

·                   возможность  создавать  новые  ветки  на  основе  репозиториев  других  систем;

·                   поддерживает  полный  набор  символов  Unicode  в  именах  файлов

·                   кроссплатформенная  поддержка.

·                более  низкая  скорость  работы,  по  сравнению  с  Git  и  Mercurial;

·                необходима  установка  большого  количества  плагинов, 

Mercurial

·               кроссплатформенная  поддержка.

·               возможность  работы  с  несколькими  ветками  проекта.

·               быстрая  обработка  данных.

·               проста  в  обращении.

·               возможность  конвертирования  репозиториев  иных  систем  поддержки  версий,  таких  как  CVS,  Subversion,  Git,  Darcs,  GNU  Arch,  Bazaar  и  др.

·                возможны  совпадения  хеш-кода  отличных  по  содержанию  ревизий.

·                Ориентирована  только  на  работу  в  консоли.

Git

·               надёжная  система  сравнения  ревизий  и  проверки  корректности  данных;

·               эластичная  система  ветвления  проектов  и  слияния  веток  между  друг  другом.

·               наличие  локального  репозиториев  позволяет  вести  полноценный  локальный  контроль  изменений

·               высокая  производительность  и  скорость  работы;

·               удобный  и  интуитивно  понятный  интерфейс;

·               множество  графических  оболочек;

·               возможность  делать  контрольные  точки,  в  которых  данные  сохраняются  полностью;

·               широкая  распространённость,  лёгкая  доступность  и  качественная  документация.

·               гибкость  системы  позволяет  удобно  её  настраивать  и  создавать  специализированные  контроль-системы  или  пользовательские  интерфейсы  на  базе  Git.

·               универсальный  сетевой  доступ  с  использованием  протоколов  http,  ftp,  rsync,  ssh  и  др.

·                отсутствует  зрелая  реализация  Git,  совместимая  с  иными  операционными  системами;

·                совпадения  хеш-кода  отличных  по  содержанию  ревизий;

·                не  отслеживается  изменение  отдельных  файлов,  а  только  всего  проекта  целиком;

·                требуется  достаточно  длительное  время  для  скачивания  данных,  особенно,  если  проект  большой.

CVS

·               несколько  клиентов  могут  одновременно  работать  над  одним  и  тем  же  проектом.

·               позволяет  управлять  не  одним  файлом,  а  целыми  проектами.

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

·               широко  распространена  и  поставляется  по  умолчанию  с  большинством  операционных  систем  Linux.

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

·           при  перемещении  или  переименовании  файла,  директории,  теряются  все  привязанные  изменения.

·           сложности  при  ведении  нескольких  параллельных  веток  одного  и  того  же  проекта.

·           ограниченная  поддержка  шрифтов.

·           для  каждого  изменения  бинарного  файла  сохраняется  вся  версия  файла,  а  не  только  внесённые  изменение.

·           с  клиента  на  сервер  изменённый  файл  всегда  передаётся  полностью.

·           ресурсоёмкие  операции,  так  как  требуют  частого  обращения  к  репозиториев,  и  сохраняемые  копии  имеют  некоторую  избыточность.

 

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

Говоря  о  Mercurial  следует  отметить,  что  простой  и  отточенный  интерфейс,  и  набор  команд,  возможность  импортировать  репозиториев  с  других  систем  контроля  версий,  —  сделают  переход  на  данную  программу  безболезненным  и  быстрым,  а  её  надёжность  и  скорость  работы  позволяют  пользоваться  им  для  контроля  версий  огромных  проектов.  Все  это  позволяет  Mercurial  стать  достойным  конкурентом  git’а.

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

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

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

Однако,  выбор  —  это  всегда  «дело  вкуса»,  системы  контроля  версий  —  представляет  собой  программное  обеспечения  необходимое  для  каждого  разработчика  и  не  только,  они  позволяют  хранить  несколько  версий  одного  и  того  же  документа,  и  при  необходимости  возвращаться  к  более  ранним  версиям.

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

Конкуренция  на  рынке  также  достаточна  высока,  в  связи  с  чем  компании  по  выпуску  программ  для  коллективных  разработок  проектов,  с  каждом  годом  выпускают  усовершенствованные  версии  своих  «детищ».

 

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

  1. Избачков  Ю.,  Петров  В.  Информационные  системы  [Текст]:  учеб.  пособие,  II  издание  Спб:  издательская  программа,  2006.  —  667  с.
  2. Одинцов  И.О.  Профессиональное  программирование.  Системный  подход  [Текст]:  учеб.  пособие,  II  издание  Спб:  издательская  программа,  2004.  —  624  с.
  3. Свободная  библиотека  //  Git.  [Электронный  ресурс]  —  Режим  доступа.  —  URL:  https://ru.wikipedia.org,  URL:  https://ru.wikipedia.org/wiki/Git  (Дата  обращения:  10.08.2014).
  4. Электронная  энциклопедия  PLM  [Электронный  ресурс]  Коллективная  разработка  изделия.  [Электронный  ресурс]  —  Режим  доступа.  —  URL:  https://  http://plmpedia.ru/,URL:  http://plmpedia.ru/wiki/коллективная_разработка_изделия  (Дата  обращения:  6.08.2014).

 

Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий