Анализ систем ведения проектов и багтрекинга для последующей интеграции

NovaInfo 46, с.46-57, скачать PDF
Опубликовано
Раздел: Технические науки
Просмотров за месяц: 1
CC BY-NC

Аннотация

В работе представлено сравнение систем багтрекинга и систем ведения проектов для выбора лучшей из них для дальнейшей интеграции. Рассмотрены следующие системы: Jira,Redmine,Bugzilla Также работе предоставлено сравнение СУБД (MYSQL, PostrgreSQL, SQLite)

Ключевые слова

ПРОЕКТИРОВАНИЕ ПО, СУБД, ЖИЗНЕНЫЙ ЦИКЛ, ВЕДЕНИЕ ПРОЕКТОВ, БАГТРЕКИНГ

Текст научной работы

Введение

В данной работе пойдет речь о создании системы полной интеграции между системами project manager/bugtracker и другими внешними системами для предоставления данных из этих систем через API.

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

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

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

Самые популярные системы — jira, redmine,bugzilla.

Jira — коммерческая система отслеживания ошибок, предназначена для организации взаимодействия с пользователями, хотя в некоторых случаях используется и для управления проектами. Разработана компанией Atlassian, является одним из двух её основных продуктов (наряду с вики-системой Confluence). Имеет веб-интерфейс.

Название системы получено путём усечения слова «Gojira» — японского имени монстра Годзилла, что, в свою очередь, является отсылкой к названию конкурирующего продукта — Bugzilla; создавалась в качестве замены Bugzilla и во многом повторяет её архитектуру. Система позволяет работать с несколькими проектами. Для каждого из проектов создаёт и ведёт схемы безопасности и схемы оповещения.

(Логотип компании Atlassian)
Рисунок 1. Логотип компании Atlassian

Реализация

Система основана на Java EE и работает на нескольких популярных системах управления базами данных и операционных системах.

Основной элемент учёта в системе — задача (англ. ticket или issue). Задача содержит название проекта, тему, тип, приоритет, компоненты и содержание. Задача может быть расширена дополнительными полями (также и новые пользовательские поля могут быть определены), приложениями (например — фотографиями, скриншотами) или комментариями. Задача может редактироваться или просто изменять статус, например, из «открыт» в «закрыт». Какие переходы между состояниями возможны, определяется через настраиваемый поток операций. Любые изменения в задаче протоколируются в журнал.

(Интерфейс Jira)
Рисунок 2. Интерфейс Jira

Jira имеет большое количество возможностей конфигурации: для каждого приложения может быть определен отдельный тип задачи с собственным workflow, набором статусов, одним или несколькими видами представления (англ. screens). Кроме того, с помощью так называемых «схем» можно определить для каждого индивидуального Jira-проекта собственные права доступа, поведение и видимость полей и многое другое.

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

Для интеграции с внешними системами поддерживает интерфейсы SOAP, XML-RPC и REST. Поставляется со средствами интеграции с такими системами управления версиями, как Subversion, CVS, Git, Clearcase, Team Foundation Server, Mercurial и Perforce. Существуют дополнения, позволяющие встроить Jira в интегрированные среды разработки, в том числе Eclipse и IntelliJ IDEA. Переведена на многие языки, включая русский, английский, японский, немецкий, французский, испанский.

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

redmine

(Логотип redmine)
Рисунок 3. Логотип redmine

Redmine [Рэдмайн] — открытое серверное веб-приложение для управления проектами и задачами (в том числе для отслеживания ошибок). Redmine написан на Ruby и представляет собой приложение на основе широко известного веб-фреймворка Ruby on Rails. Распространяется согласно GNU General Public License.

Функциональные возможности

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

  • ведение нескольких проектов;
  • гибкая система доступа, основанная на ролях;
  • система отслеживания ошибок;
  • диаграммы Ганта и календарь;
  • ведение новостей проекта, документов и управление файлами;
  • оповещение об изменениях с помощью RSS-потоков и электронной почты;
  • вики для каждого проекта;
  • форумы для каждого проекта;
  • учёт временных затрат;
  • настраиваемые произвольные поля для инцидентов, временных затрат, проектов и пользователей.
(Интерфейс redmine)
Рисунок 4. Интерфейс redmine
  • лёгкая интеграция с системами управления версиями (SVN, CVS, Git, Mercurial, Bazaar и Darcs);
  • создание записей об ошибках на основе полученных писем;
  • поддержка множественной аутентификации LDAP;
  • возможность самостоятельной регистрации новых пользователей;
  • многоязычный интерфейс (в том числе русский);
  • поддержка СУБД MySQL, Microsoft SQL Server[1], PostgreSQL, SQLite, Oracle.

Bugzilla

(Логотип Bugzilla)
Рисунок 5. Логотип Bugzilla

Bugzilla (Багзилла) — свободная система отслеживания ошибок (багтрекинга) с веб-интерфейсом.

В 1998 году Bugzilla была выпущена как открытое программное обеспечение компанией Netscape. По состоянию на 2012 год разрабатывается фондом Mozilla Foundation.

С одной стороны, Bugzilla довольно проста, с другой стороны, там есть всё, что нужно для багтрекинга типичного проекта. Сейчас Bugzilla используют более тысячи компаний и организаций по всему миру, среди них — такие организации и компании, как: NASA, Id Software, IBM, Novell и софтверные проекты: Mozilla Firefox, Linux, GNOME, KDE, Apache Project, OpenOffice.org, Фонд Wikimedia.

По функциональности Bugzilla в 2007 году отставала от многих современных багтрекеров. Разработчики считали, что одна из причин этого — выбор Perl в качестве языка реализации Bugzilla, рассматривалась возможность переписать её на каком-нибудь другом языке программирования.

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

Описание предметной области

IT проект — это деятельность, приводящую к созданию определенного продукта или услуги. Для создания проекта требуется участие большого количества специалистов, начиная от програмистов и заканчивая администраторов, адмитристраторов баз данных, dev ops и многих других специалистов.

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

Для построения единой платформы стоит использовать системы рассмотренные во введении. Они обладают свободными лицензиями или же предлагают бесплатный доступ (jira) при разработке открытых проектов (opensource).

Постановка задачи

Задачей данной работы является разработка платформы взаимодействия между проектной системой и багтрекером и создания API для внешнего управления.

Если рассмотреть эту область подробнее, то становится понятно, что для решения задачи нам потребуется:

  1. Выбрать систему багтрекера;
  2. Выбрать СУБД;
  3. Выбрать проектную систему;
  4. Сделать общие методы синхронизации и взаимодействия;
  5. Документировать API;
  6. Протестировать связку.

Выбрать СУБД

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

При выборе базы данных я решил рассмотреть следующие варианты:

  • SQLite;
  • MySQL;
  • PostgreSQL.

Реляционная система управления базами данных (РСУБД)

СУБД должна обеспечивать реляционную модель работы с данными. Сама модель подразумевает определенный тип связи между сущностями из разных таблиц. Чтобы хранить и работать с данными, такой тип СУБД должен иметь определенную структуру (таблицы). В таблицах каждый столбец может содержать данные разного типа. Каждая запись состоит из множества атрибутов (столбцов) и имеет уникальный ключ, хранящейся в той же таблице — все эти данные взаимосвязаны между собой, как описано в реляционной модели.

Типы данных и отношений между ними

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

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

  • SQLite — очень мощная встраиваемая система управления;
  • MySQL — самая популярная и распространённая СУБД;
  • PostgreSQL — наиболее продвинутая СУБД.

SQLite

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

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

  • Файловая структура — вся база данных состоит из одного файла, поэтому её очень легко переносить на разные машины;
  • Используемые стандарты — хотя может показаться, что эта СУБД примитивная, но она использует SQL. Некоторые особенности опущены (RIGHT OUTER JOIN или FOR EACH STATEMENT), но основные все-таки поддерживаются;
  • Отличная при разработке и тестировании — в процессе разработки приложений часто появляется необходимость масштабирования. SQLite предлагает всё что необходимо для этих целей, так как состоит всего из одного файла и библиотеки написанной на языке C.

Недостатки SQLite

  • отсутствие системы пользователей — более крупные СУБД включают в свой состав системы управления правами доступа пользователей. Обычно применения этой функции не так критично, так как эта СУБД используется в небольших приложениях;
  • отсутствие возможности увеличения производительности — опять, исходя из проектирования, довольно сложно выжать что-то более производительное из этой СУБД.

MySQL

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

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

  • Простота в работе — установить MySQL довольно просто. Дополнительные приложения, например GUI, позволяет довольно легко работать с БД;
  • Богатый функционал — MySQL поддерживает большинство функционала SQL;
  • Безопасность — большое количество функций обеспечивающих безопасность, которые поддерживается по умолчанию;
  • Масштабируемость — MySQL легко работает с большими объемами данных и легко масштабируется;
  • Скорость — упрощение некоторых стандартов позволяет MySQL значительно увеличить производительность.

Недостатки MySQL

  • Известные ограничения — по задумке в MySQL заложены некоторые ограничения функционала, которые иногда необходимы в особо требовательных приложениях;
  • Проблемы с надежностью — из-за некоторых способов обработки данных MySQL (связи, транзакции, аудиты) иногда уступает другим СУБД по надежности;
  • Медленная разработка — Хотя MySQL технически открытое ПО, существуют жалобы на процесс разработки. Стоит заметить, что существуют другие довольно успешные СУБД созданные на базе MySQL, например MariaDB.

PostgreSQL

PostgreSQL является самым профессиональным из всех трех рассмотренных нами СУБД. Она свободно распространяемая и максимально соответствует стандартам SQL. PostgreSQL или Postgres стараются полностью применять ANSI/ISO SQL стандарты своевременно с выходом новых версий.

От других СУБД PostgreSQL отличается поддержкой востребованного объектно-ориентированного и/или реляционного подхода к базам данных. Например, полная поддержка надежных транзакций, т.е. атомарность, последовательность, изоляционность, прочность (Atomicity, Consistency, Isolation, Durability (ACID).) Благодаря мощным технологиям Postgre очень производительна. Параллельность достигнута не за счет блокировки операций чтения, а благодаря реализации управления многовариантным параллелизмом (MVCC), что также обеспечивает соответствие ACID. PostgreSQL очень легко расширять своими процедурами, которые называются хранимые процедуры. Эти функции упрощают использование постоянно повторяемых операций.

Хотя PostgreSQL и не может похвастаться большой популярностью в отличии от MySQL, существует довольно большое число приложений облегчающих работу с PostgreSQL, несмотря на всю мощность функционала. Сейчас довольно легко установить эту СУБД используя стандартные менеджеры пакетов операционных систем.

Достоинства PostgreSQL

  • Открытое ПО соответствующее стандарту SQL — PostgreSQL — бесплатное ПО с открытым исходным кодом. Эта СУБД является очень мощной системой;
  • Большое сообщество — существует довольно большое сообщество в котором вы запросто найдёте ответы на свои вопросы;
  • Большое количество дополнений — несмотря на огромное количество встроенных функций, существует очень много дополнений, позволяющих разрабатывать данные для этой СУБД и управлять ими;
  • Расширения — существует возможность расширения функционала за счет сохранения своих процедур;
  • Объектность — PostrgreSQL это не только реляционная СУБД, но также и объектно-ориентированная с поддержкой наследования и много другого.

Недостатки PostgreSQL

  • Производительность — при простых операциях чтения PostgreSQL может значительно замедлить сервер и быть медленнее своих конкурентов, таких как MySQL;
  • Популярность — по своей природе, популярностью эта СУБД похвастаться не может, хотя и присутствует довольно большое сообщество;
  • Хостинг — в силу выше перечисленных факторов иногда довольно сложно найти хостинг с поддержкой этой СУБД.

Сравнение систем

Сравнение систем
Рисунок 6. Сравнение систем

Вывод

Все рассмотренные системы имеют API и обладают возможностью интегрироватся с другим ПО, различие между ними незначительные, в основном в организации workflow и интерфейсе.

Таким образом, если нет ограничение на выбор платного ПО, то следует выбрать Jira, если рассматривать варианты бесплатного ПО, то стоит остановится на Redmine.

Читайте также

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

  1. Jira — Википедия https://ru.wikipedia.org/wiki/Jira (дата обращения 31.05.2016)
  2. JIRA Software - Issue Tracking for Software Teams | Atlasssian https://www.atlassian.com/software/jira (дата обращения 31.05.2016)
  3. Jira для "чайников" - YouTube https://www.youtube.com/watch?v=yYLaL9h2UaU (дата обращения 31.05.2016)
  4. Atlassian JIRA 6.2: Быть лучше, чем вчера / Хабрахабр https://habrahabr.ru/post/213867/ (дата обращения 31.05.2016)
  5. Оперативное планирование в Redmine / Хабрахабр https://habrahabr.ru/post/245065/ (дата обращения 31.05.2016)
  6. Что мне нравится в Redmine / Хабрахабр https://habrahabr.ru/post/63724/ (дата обращения 31.05.2016)
  7. Overview - Redmine http://www.redmine.org (дата обращения 31.05.2016)
  8. Redmine — Википедия https://ru.wikipedia.org/wiki/Redmine (дата обращения 31.05.2016)
  9. Home :: Bugzilla :: bugzilla.org https://www.bugzilla.org (дата обращения 31.05.2016)
  10. Bugzilla | Mozilla Россия https://mozilla-russia.org/products/bugzilla/ (дата обращения 31.05.2016)
  11. Чем плох Bugzilla по сравнению с другими таск-трекерами? — toster.ru https://toster.ru/q/11207 (дата обращения 31.05.2016)
  12. BugZilla как система постановки задач и контроля работы. Реальный опыт использования / Блог компании WebCanape / Хабрахабр https://habrahabr.ru/company/twins/blog/92769/ (дата обращения 31.05.2016)

Цитировать

Славков, С.А. Анализ систем ведения проектов и багтрекинга для последующей интеграции / С.А. Славков. — Текст : электронный // NovaInfo, 2016. — № 46. — С. 46-57. — URL: https://novainfo.ru/article/6377 (дата обращения: 19.08.2022).

Поделиться