Научная статья на тему 'REDMINE-ОРИЕНТИРОВАННЫЙ ПОДХОД ДЛЯ АВТОМАТИЧЕСКОГО РАСПРЕДЕЛЕНИЯ ЗАДАЧ В ОБЛАСТИ АВТОМАТИЗАЦИИ ПРОМЫШЛЕННЫХ ПРОЕКТОВ'

REDMINE-ОРИЕНТИРОВАННЫЙ ПОДХОД ДЛЯ АВТОМАТИЧЕСКОГО РАСПРЕДЕЛЕНИЯ ЗАДАЧ В ОБЛАСТИ АВТОМАТИЗАЦИИ ПРОМЫШЛЕННЫХ ПРОЕКТОВ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
379
54
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
SCRUM / ПРОИЗВОДСТВЕННЫЙ ПЛАН / УПРАВЛЕНИЕ ПРОЕКТОМ / REDMINE / РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ / ПЛАНИРОВАНИЕ ЗАДАЧ / ПРОЕКТНАЯ ДЕЯТЕЛЬНОСТЬ / АВТОМАТИЗАЦИЯ БИЗНЕС-ПРОЦЕССОВ / УПРАВЛЕНИЕ РЕСУРСАМИ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Кравец Алла Григорьевна, Сальникова Наталия Анатольевна, Силантьев Алексей Иванович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Кравец Алла Григорьевна, Сальникова Наталия Анатольевна, Силантьев Алексей Иванович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

REDMINE-BASED APPROACH FOR AUTOMATIC TASKS DISTRIBUTION IN THE INDUSTRIAL AUTOMATION PROJECTS

The Scrum methodology is analyzed as a method of managing the product development process using the Redmine tool. When analyzing the business processes of the Scrum methodology, the need to automate some of the processes was identified. The algorithms for automatic tasks distribution in Redmine system and their implementation in the form of plugin were developed.

Текст научной работы на тему «REDMINE-ОРИЕНТИРОВАННЫЙ ПОДХОД ДЛЯ АВТОМАТИЧЕСКОГО РАСПРЕДЕЛЕНИЯ ЗАДАЧ В ОБЛАСТИ АВТОМАТИЗАЦИИ ПРОМЫШЛЕННЫХ ПРОЕКТОВ»

УДК 004.896

Alla G. Kravets12, Natalia A. Salnikova3, Alexey I. Silantiev1

REDMINE-BAS ED APPROACH FOR AUTOMATIC TASKS DISTRIBUTION IN THE INDUSTRIAL AUTOMATION PROJECTS

Volgograd State Technical University, Volgograd, Russia agk@gde.ru

2Dubna State University, Moscow region, Dubna, Russia "Volgograd Institute of Management - branch of the Russian Presidential Academy of National Economy and Public Administration, Volgograd, Russia. ns3112@mail.ru

The Scrum methodology is analyzed as a method of managing the product development process using the Redmine too. When analyzing the business processes of the Scrum methodology, the need to automate some of the processes was identified. The algortthms for automatic tasks distribution in Redmine system and their implementation in the form ofplugin were developed.

Keywords: Scrum, production plan, project management, Redmine, software design, tasks planning, project activities, business processes automation, resource management.

001: 10.36807/1998-9849-2021-59-85-113-120

Введение

Прежде чем начать какое-либо дело, необходимо тщательно продумать, что, на какую дату и какими средствами это необходимо делать. В противном случае намерения могут быть не реализованы. Поэтому первым и фундаментальным этапом управления любым видом целесообразной деятельности всегда является процесс постановки целей и поиска путей их достижения [1, 2]. Это на стадии постановки целей, которые включают в себя предвидение, прогнозирование, планирование [3]. Конечным результатом этого этапа является построение идеальной модели производственного процесса, направленной на достижение основной цели предприятия. Автоматизация промышленных приложений имеет решающее значение для всего процесса планирования [4, 5]. В конце концов, основой успеха и процветания любого производства является тщательно разработанный, информированный план [6].

При разработке программного обеспечения существует множество подходов к разработке. Одна из

Кравец А.Г. 12, Сальникова Н.А.3, Силантьев А.И.1

REDMINE-

ОРИЕНТИРОВАННЫИ ПОДХОД ДЛЯ АВТОМАТИЧЕСКОГО РАСПРЕДЕЛЕНИЯ ЗАДАЧ В ОБЛАСТИ АВТОМАТИЗАЦИИ ПРОМЫШЛЕННЫХ ПРОЕКТОВ

1 Волгоградский государственный технический университет, Волгоград, Россия. agk@gde.ru Государственный университет «Дубна», Россия, Московская область, Дубна

3Волгоградский институт управления - филиал Российской академии народного хозяйства и государственной службы при Президенте РФ, Волгоград, Россия ns3112@mail.ru

Анализируется методология Scrum, как метод управления процессом разработки продукта с помощью инструмента Redmine. При анализе гибкой разработки по методологии Scrum выявлена потребность в автоматизации некоторых процессов. Разработаны/ алгоритмы/ для автоматического распределения задач в системе Redmine и их реализация в виде плагина.

Ключевые слова/ Scrum, производственный план, управление проектом, Redmine, разработка программного обеспечения, планирование задач, проектная деятельность, автоматизация бизнес-процессов, управление ресурсами.

Дата поступления - 9 июля 2021 года

наиболее распространенных методологий гибкой разработки промышленных приложений - Scrum. Методология Scrum обеспечивает циклическое наращивание функциональности продукта в короткие сроки. Концепция основана на спринтах. Спринт - короткая итерация, строго ограниченная во времени, обычно 2-4 недели. В это время продолжительность встреч сводится к минимуму, но их частота увеличивается. Благодаря этому контроль над исполнением становится более гибким, и разработчики быстрее реагируют на возникающие проблемы [7, 8]. Традиционное планирование отходит на второй план, его место занимает журнал спринт [9].

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

Целью работы является разработка программного обеспечения для автоматического распределения задач в системе Redmine, которое обеспечивает сокращение временных и финансовых затрат при планировании.

Обзор методологии Скрам и системы Redmine

Скрам-методология. В большинстве случаев программирование является сложным, плохо определенным процессом, который требует от разработчиков творческого подхода. Различные гибкие технологии позволяют организовать процесс постепенного приближения к цели проекта путем проведения тестовых циклов с настройкой последующих на основе анализа результатов предыдущих. Методология Scrum является одной из первых методологий для циклического увеличения функциональности и корректировки прогресса проекта на основе анализа отзывов пользователей. Методология Scrum устанавливает правила для управления процессом разработки и позволяет использовать существующие методы кодирования, корректировки требований или внесения тактических изменений. Использование этой методологии позволяет выявлять и устранять отклонения от желаемого результата на более ранних этапах разработки программного продукта. Основой методологии Скрама является теория эмпирического контроля - эмпиризм. Согласно этой теории, опыт является источником знаний, а реальные данные - это решение. Для повышения предсказуемости и эффективности управления рисками в методологии Scrum используется итеративный и поэтапный подход [11]. Процесс эмпирического управления основан на «трех столпах»:

1) прозрачность, важные элементы процесса должны быть доступны тем, кто несет ответственность за его результат. Кроме того, эти аспекты системы могут быть включены в общие стандарты, которые позволят всем участникам иметь общее понимание;

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

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

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

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

ставления задач предусмотрен единый стандарт управления проектами в организации [13].

Гибкая отчетность по проекту: кто, Видимость использования ресурсов, контроль времени, история задач. Автоматическое построение диаграммы Ганта и отображение задач в календарном плане.

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

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

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

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

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

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

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

Трекеры - это основная классификация, по которой сортируются задачи в проекте. Сам термин «трекер» восходит к системам учета ошибок, каждая из которых представляет один проект в отдельности. В Redmine трекеры являются аналогом подклассов класса Task и являются основой для полиморфизма различных видов задач, позволяя вам определять разные поля для каждого типа. Примерами трекеров являются «Улучшение», «Ошибка», «Документация», «Поддержка»,

Задачи - это центральная концепция всей системы, описывающая определенную задачу, которая должна быть выполнена. Каждая задача имеет описание и автора в обязательном порядке, в обязательном порядке задача связана с трекером. Каждое задание имеет статус. Статусы - это отдельный объект с возможностью определения прав на присвоение статуса для различных ролей или определения релевантности задачи (например, «открыто», «назначено» - релевантно, но «закрыто», «отклонено» - нет). Для каждого проекта набор этапов разработки и набор категорий задач определяются отдельно. Среди других областей, «расчетное время», которое служит основой для построения диаграмм управления, а также поле для выбора наблюдателей для задачи, также представляет интерес. Вы можете прикреплять файлы к задачам

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

Отслеживание изменений в настройках задач

Два объекта отвечают за отслеживание изменений в параметрах задачи пользователями в системе: «Запись журнала изменений» и «Измененный параметр». Запись журнала отображает одно действие пользователя для редактирования параметров задачи и/или добавления к ней комментария. То есть он служит как инструментом для ведения истории задачи, так и инструментом для ведения диалога.

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

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

Учет времени, затрачиваемого на проект, поддерживает учет времени, потраченного из-за сущности «затраченного времени», связанного с пользователями, и задачи. Суть позволяет хранить затраченное время, вид активности пользователя (разработка, дизайн, поддержка) и краткий комментарий к работе. Эти данные можно использовать, например, для анализа вклада каждого участника в проект или для оценки реальной сложности и стоимости разработки.

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

Проектирование Redmine-

плагина

В системе Redmine стандартные функции не включают список задач, требующих автоматизации:

• импорт производственного календаря;

• расчет рабочего времени сотрудника или группы;

• автоматическое заполнение операционного плана задачами с указанием сроков, которые не превышают временных ресурсов группы на период операционного плана.

Но система Redmine находится под открытой лицензией [15]. Это означает, что вы можете написать свой собственный плагин, который реализует определенные задачи и подключить его к основному проекту (табл. 1). Также доступен REST API, который обеспечивает интеграцию с другими системами [16].

Для реализации модуля был выбран метод, в котором требуется сторонний веб-сервис для взаимодействия с системой Redmine через REST API по следующим причинам.

При написании плагина можно использовать только тот язык программирования, на котором написан сам Redmine - язык Ruby. При разработке стороннего веб-сервиса язык не имеет значения, поскольку взаимодействие систем будет происходить в соответствии с едиными правилами, предоставляемыми Redmine REST API [17].

Табл. 1. Сравнение методов реализации модуля

Методы реализации модуля Язык программирования Методы реализации модуля

Разработка модуля интегрированного через REST API API поддерживается языками: Python, Ruby, Delphi, .NET, Java, PHP, Perl, С++, С# Высокая

Разработка встроенного плагина для Redmine Ruby Низкая

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

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

Для реализации модуля был выбран язык программирования Python. Библиотека для взаимодействия с Redmine REST API - это Python-Redmine [18, 19].

Классы модели данных. Модели данных, импортированные из системы Redmine (рис. 1), такие как сотрудники (пользователь), группы (группа), проекты (проект), задачи (проблема), статусы (статус), приоритеты (приоритет), трекеры (трекер), Версия (версия) имеет общую структуру данных, поэтому будет реализован базовый интерфейс (redminebasemodel), который будет наделен логикой:

1) преобразование импортированных данных одной структуры в структуру, необходимую для работы с моделями Django, то есть в экземпляры объектов модели. Метод Convert_to_model;

2) соответствие полей между различными структурами данных. Свойство FIELDS_MAPPING_WITH_REDMINE;

3) сохранение данных в базе данных путем обновления существующих объектов или добавления новых. Метод Save_object.

Производные классы моделей данных будут наследовать логику модели RedmineBaseModel и описывать типы полей, необходимые для хранения данных [20, 21].

Рис.1. UML диаграмма классов моделей, импортируемых из системы Red mine

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

На рис. 2 показана концептуальная модель базы данных приложения. На рис. 3 показана логическая модель базы данных.

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

Рабочее время (business_time_workhours) - в модели данных хранятся рабочие дни недели и количество часов в каждом дне для каждого сотрудника.

Нерабочие / Сокращенные дни / Праздники сотрудников (business_time_holidays) - в модели данных хранятся интервалы дат, в которые сотрудник может не работать или работать в течение сокращенного времени. Это включает в себя хранение общих дат праздников, которые относятся ко всем сотрудникам.

Норма рабочего времени

(business_time_userperformance) - модель данных хранит норму рабочего времени сотрудника по месяцам.

Группы (redmine_group) - импортированная модель данных, структура таблицы идентична таблице в системе Redmine. Хранит названия групп, в которые входят сотрудники

Проекты (redmine_project) - импортированная модель данных, структура таблицы идентична таблице в системе Redmine. Хранит информацию о проекте, является ключевой моделью, стоит на вершине иерархии моделей, на которую ссылаются дочерние модели.

Рис. 2. Концептуальная модель базы данных

redmine_group lid INTEGER Name VARCHAR

business. _time_workhours

В id INTEGER

weekday SMALLINT UNSIGNED

hour SMALLINT UNSIGNED

userjd INTEGER

auth_user

Qid INTEGER

password VARCHAR

lastjogin DATETIME

it_superuser BOOL

username VARCHAR

first name

email VARCHAR

is staff BOOL

is active BOOL

datejoined DATETIME

last_name VARCHAR

redmine _user_group

E" INTEGER

user id INTEGER J

group_id INTEGER 4

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

bus¡ness_t¡me_hol¡days

| idJNTEGER date since DATE date until DATE type_day SMALLINT UNSIGNED hour SMALLINT UNSIGNED userjd INTEGER

redmine_user

I id INTEGER

name VARCHAR surname VARCHAR projectJd INTEGER

redmine_ .version

Qid INTEGER

name VARCHAR

status VARCHAR

due date DATE

description TEXT

project_id INTEGER

redmine_project

I'd INTEGER

name VARCHAR identifier VARCHAR

business_time_userperformance

I id INTEGER hour_by_month SMALLNT UNSIGNED period_date DATE userjd INTEGER

redmine_ ussue

a id INTEGER

name VARCHAR

due date DATE

crested_on DATE

esnmaieanours DICIMAL

stend_hours DICIMAL

total_estimated_hours DICIMAL

total_spent_hours DICIMAL

Ift INTEGER UNSIGNED

rgnt INTEGER UNSIGNED

treejd INTEGER UNSIGNED

level INTEGER UNSIGNED

pnorityjd INTEGER «

projectjd INTEGER

status_id INIbGbK

trackerjd INTEGER

version id INTEGER «

parent ic INTEGER

redmine status

I id INTEGER

name VARCHAR is_closed BOOL

order SMALLINT UNSIGNED

redmine tracker

I id INTEGER name VARCHAR

redmine_priority

I id INTEGER name VARCHAR order SMALLINT UNSIGNED

Рис.3. Логическая модель базы данных

Версии (redmine_version) - импортированная модель данных, структура таблицы идентична таблице в системе Redmine. Хранит название, сроки и список задач до версии. Отражает информацию о выпущенных версиях проекта; в пользовательском интерфейсе системы Redmine это меню называется «Операционный план».

Задачи (redmine_issue) - импортированная модель данных, структура таблицы идентична таблице в системе Redmine. В нем хранится подробная информация о задаче: имя, описание, к какому проекту прикреплен, категория задачи, какой статус в данный момент, кто отвечает за реализацию, дата начала, даты завершения, общее время, затраченное на задачу. Это ключевая модель, она также стоит на вершине иерархии моделей после таблицы redmine_project.

Приоритет (redmine_priority) - импортированная модель данных, структура таблицы идентична таблице в системе Redmine. Зависимая модель в таблице redmine_issue хранит информацию о приоритетах задачи.

Tracker (redmine_tracker) - импортированная модель данных, структура таблицы идентична таблице в системе Redmine. Зависимая модель в таблице redmine_issue хранит информацию о трекерах.

Состояние (redmine_status) - импортированная модель данных, структура таблицы идентична таблице в системе Redmine. Зависимая модель в таблице redmine_issue хранит информацию о состоянии задачи.

Пользователь (auth_user) - стандартная таблица из инфраструктуры Django, предназначенная для авторизации пользователей в приложении.

Реализация плагина автоматического распределения задач

REST API обеспечивает доступ к системным ресурсам Redmine [22]. Задачи - это особые случаи проблем, которые принадлежали проекту. Проекты -это объекты системы, которые описывают текущее состояние, проблемы, прогнозируемые планы на будущее, реальный проект компании. Пользователи привязаны к проекту. Пользователи - учетные записи сотрудников компании. Затраты на оплату труда - реестр учета рабочего времени каждого сотрудника компании. Новости - запись новостных лент проектов. Отношения между задачами - поддержание отношений между задачами. Версии - операционный план, который включает сроки и список задач. Справочная информация - каталог, в котором хранятся различные виды литературы по проектам. Запросы - сохраненные фильтры задач. Вложения - загруженные файлы в систему Redmine. Статусы задач - список возможных состояний задач. Трекеры - список возможных задач трекеров. Приоритеты - список возможных приоритетных задач. Виды деятельности (Труд) - перечень видов деятельности сотрудников компании. Категории документов - список возможных категорий документов. Роли - набор прав доступа пользователей к системным объектам Redmine. Группы - группирование пользователей системы Redmine в группы. Пользовательские поля - дополнительные поля, которые добавляют дополнительную информацию к задачам.

Алгоритм расчета рабочих часов. На основе диапазона дат операционного плана для каждого сотрудника рассчитывается его рабочее время. Диапазон дат разбит на список дней в диапазоне дат.

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

Получение списка сотрудников команды с указанием их рабочего времени и нерабочих дат

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

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

Конвц

Рис. 4. Блок-схема алгоритма расчета рабочих часов

Алгоритм распределения задач. Важным критерием для распределения задач является наличие предполагаемого времени решения проблемы и ее приоритетности.

Весь список задач отсортирован по приоритету, задачи с высоким приоритетом находятся вверху списка. Создается переменная, которая будет хранить общее количество часов оценки для каждой задачи, по умолчанию значение равно нулю. Цикл начинается согласно списку задач, в теле цикла проверяется условие, что переменная с общим счетом часов плюс расчетное время текущей задачи меньше или равна значению переменной, в которой общее рабочее время сотрудников команды сохраняется. Если условие выполнено, то задача попадает в операционный план, в противном случае задача не попадает в операционный план, и цикл останавливается, поскольку предел расчетного времени для задач уже превышен. Список задач, попавших в оперативный план, привязан к «Версии» проекта. Блок-схема алгоритма приведена ниже (рис. 5).

Рис. 5. Блок-схема алгоритма распределения задач Рис. 6. UML-диаграмма классов приложения учета времени

Классы моделей Holidays, WorkHours, UserPerformance описывают типы полей, необходимых для хранения данных. На рис. 6 показана диаграмма классов UML приложения для отслеживания времени.

API синхронизации с Redmine. RedmineClient - класс реализующий интерфейс взаимодействия приложения с Redmine. Методы класса можно разделить на две группы: методы импортирования данных и методы экспортирования данных. На рис. 7 приведена UML-диаграмма класса RedmineClient.

Методы, реализующие импорт данных:

1. import_user - импортирование всех сотрудников;

2. import_group - импортирование всех групп;

3. import_project - импортирование всех проектов;

4. import_version - импортирование версий фильтруя по проекту;

5. import_issue - импортирование задач по фильтру;

6. import_status - импортирование всех статусов;

7. import_priority - импортирование всех приоритетов;

8. import_tracker - импортирование всех трекеров.

Методы реализующие экспорт данных:

9. update_issue - обновление параметров задачи;

10. export_version - создание версии в системе Redmine.

С a pp, red mine, client. RedmineClient

m _init_(seif)

m import_group(self)

m import_user(self, **fiIters)

m i m port_pri ority(self)

m i m port_proj ect (s elf]

m i m port_tra cker(self)

m ¡mport_status(self)

m importJssues(self, **fiIters)

m save_issues(self, issues)

m importJssueCself, pk, fields=None)

m import_version(self, projectjd)

m update_issue(self, issuejd, **params)

m u pd ate_d u e_d atej ssu efself, i ssu ej d)

f client

Рис. 7. Диаграмма класса RedmineClient

Результаты тестирования. В ходе тестирования были произведены замеры времени выполнения основных процессов модуля. Синхронизация модуля с системой Redmine для получения обновленных данных ресурсов, на каждый ресурс уходит менее одной секунды времени, этот показатель напрямую зависит от скорости интернета и размера данных, в модуле хранится восемь синхронизируемых ресурсов, если округлить до секунд, то на полную синхронизацию уходит примерно 8 секунд. Выполнение алгоритмов по распределению задач по версиям, в тестовом примере использовались 13 задач, их распределение заняло так же менее одной секунды, время выполнения алгоритма зависит от количества задач, и ощутимая разница во времени будет только тогда, когда количество задач будет превышать трехзначные числа. Экспорт распределенных задач обратно в систему Redmine занимает столько же времени, как и импорт одного ресурса. При ручном распределении задач по версиям, известно, что менеджеру требовалось в среднем 15 минут. Результаты замеров, показаны ниже (табл. 2).

Таблица 2. Сравнение временных затрат на __распределение задач

Метод распре- Синхрони- Выпол- Экс- Итог

деления зация нение порт

модуля алгоритмов задач

Автоматизиро- 8 1 1 10

ванный (сек.)

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Ручной (сек.) - 900 - 900

Заключение

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

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

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

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

Работа выполнена при поддержке Российского фонда фундаментальных исследований (грант № 1907-01200).

Литература

1. Salnikova N. A., Lempert B. A, Lempert M.B. Integration of Methods to Quantify the Quality of Medical Care in the Automated Processing Systems of Medical and Economic Information // Communications in Computer and Information Science. 2015. Vol. 535. P. 307-319.

2. Kravets A.G., Sannikova N.A., Mikhnev I.P, Orudjev N.Y., Poplavskaya O.V. Web Portal for Project Management in Electronics Design Software Development. // 2019 International Seminar on Electron Devices Design and Production, SED 2019 - Proceedings. 2019. P. 8798472.

3. Korotkov A., Kravets A.G., Voronin Y.F., Kravets A.D. Simulation of the initial stages of software development // International Journal of Applied Engineering Research, 2014. V. 9 (22), P. 16957-16964.

4. Kravets A.G., Skoobogatchenko D.A., Salnikova N.A., OrudjevN.Y., Poplavskaya O.V. The Traffic Safety Management System in Urban Conditions Based on the С4.5 Algorithm // Moscow Workshop on Electronic and Networking Technologies, MWENT 2018 - Proceedings 1. 2018. P. 1-7.

5. Shcherbakov M, Groumpos P. P., Kravets A. A method and IR4I index indicating the readiness of business processes for data science solutions. // Communications in Computer and Information Science, (CCIS-2017). 2017. V. 754. P. 21-34.

6. Качалов ДЛ, Щербаков М.В. Разработка веб-приложения для поиска в больших данных событий с заданными параметрами. // XIX Региональная конференция молодых исследователей Волгоградской области. Волгоград, 11-14 ноября 2014 г. Тезисы докладов. Волгоград: ВГСПУ, 2015. С. 195-197.

7. Щербаков М.В. ICDMS-программное обеспечение как сервис для решения задач идентификации на основе коннекстивистских систем // Известия Волгоградского государственного технического университета. 2009. № 12(60). С. 88-91.

8. Kravets A., Shumeiko N, Shcherbakova N, Lempert B, Salnikova N. "Smart Queue" Approach for New Technical Solutions Discovery in Patent Applications // Communications in Computer and Information Science. 2017. Vol. 754. CIT&DS, Р. 37-47.

9. Чан В.Ф., Щербаков М.В, Нгуен Т.А. Обзор архитектур систем поддержки принятия решений, использующих аналитику данных в режиме реального времени. // Известия Волгоградского государственного технического университета. 2016. № 3(182). С. 95-100.

10. Redmine URL: https://www.redmine.org/ (Дата обращения: 20.05.2021).

11. Руководство по Скраму URL: https://www.scrumguides.org/docs/scrumguide/v2016/20 16-scrum-guide-russian.pdf (Дата обращения: 20.05.2021).

12. Redmine - система управления проектами URL:https://www.dvbi.ru/articles/reading/Redmine-tasks-management-system (Дата обращения: 20.05.2021).

13. Redmine для управления ИТ: практический опыт обширного внедрения opensource-системы URL: https://www.redmine.org/plugins/redmine_agile (Дата обращения: 20.05.2021).

14. Redmine - обзор сервиса URL:https://startpack.ru/application/redmine (Дата обращения: 20.05.2021).

15. Лицензия Redmine Режим доступа: https://www.redmine.org/ (Дата обращения: 20.05.2021).

16. Документация API Redmine URL: http://www.redmine.org/projects/redmine/wiki/Rest_api (Дата обращения: 20.05.2021).

17. Agile плагин Redmine URL: https://www.redmine.org/plugins/redmine_agile (Дата обращения: 20.05.2021).

18ю Знерщт ГКДЖ

https://ru.wikipedia.org/wiki/Python ГКДЖ

https://www.redmine.org/plugins/redmine_agile (Дата обращенияЖ 20ю05ю2021)ю

19. Библиотека для Python для работы с http запросам URL: http://docs.python-requests.org/en/master/ (Дата обращения: 20.05.2021).

20. Модели данных. URL: https://docs.djangoproject.com/en/2.1/topics/db/models/ (Дата обращения: 20.05.2021).

21. Представление данных. URL: https://docs.djangoproject.com/en/2.1/topics/http/views/ (Дата обращения: 20.05.2021).

22. Интеграция с Redmine (Rest-API) URL: https://infostart.ru/public/825153/ (Дата обращения: 20.05.2021).

References

1. Salnikova N. A., Lempert B. A., Lempert M.B. Integration of Methods to Quantify the Quality of Medical Care in the Automated Processing Systems of Medical and Economic Information // Communications in Computer and Information Science. 2015. Vol. 535. P. 307-319.

2. Kravets A.G., Sannikova N.A, Mikhnev I.P, Orudjev N. Y, Poplavskaya O.V. Web Portal for Project Management in Electronics Design Software Development. // 2019 International Seminar on Electron Devices Design and Production, SED 2019 - Proceedings. 2019. P. 8798472.

3. Korotkov A, Kravets A.G., Voronin Y.F, Kravets A.D. Simulation of the initial stages of software development // International Journal of Applied Engineering Research, 2014. V. 9 (22), P. 16957-16964.

4. Kravets A.G., Skorobogatchenko D.A, Salnikova N.A, Orudjev N. Y, Poplavskaya O. V. The Traffic Safety Management System in Urban Conditions Based on the

C4.5 Algorithm // Moscow Workshop on Electronic and Networking Technologies, MWENT 2018 - Proceedings 1. 2018. P. 1-7.

5. Shcherbakov M, Groumpos P. P., Kravets A. A method and IR4I index indicating the readiness of business processes for data science solutions. // Communications in Computer and Information Science, (CCIS-2017). 2017. V. 754. P. 21-34.

6. Kachalov D.L., Shcherbakov M.V. Razrabotka veb-prilozheniya dlya poiska v bol'shih dannyh sobytij s zadannymi parametrami. // XIX Regional'naya konferenci-ya molodyh issledovatelej Volgogradskoj oblasti. Volgograd, 11-14 noyabrya 2014 g. Tezisy dokladov. Volgograd: VGSPU, 2015. S. 195-197.

7. Shcherbakov M.VICDMS-programmnoe obespechenie kak servis dlya resheniya zadach identifikacii na osnove konnekstivistskih sistem // Izvestiya Volgograd-skogo gosudarstvennogo tekhnicheskogo universiteta. 2009. № 12(60). S. 88-91.

8. Kravets A., Shumeiko N, Shcherbakova N, Lempert B, Salnikova N. "Smart Queue" Approach for New Technical Solutions Discovery in Patent Applications // Communications in Computer and Information Science. 2017. Vol. 754. CIT&DS, P. 37-47.

9. Chan V.F., Shcherbakov M.V, Nguen T.A. Ob-zor arhitektur sistem podderzhki prinyatiya reshenij, ispol'zuyushchih analitiku dannyh v rezhime real'nogo vremeni. // Izvestiya Volgogradskogo gosudarstvennogo tekhnicheskogo universiteta. 2016. № 3(182). S. 95-100.

10. Redmine URL: https://www.redmine.org/ (Data obrashcheniya: 20.05.2021).

11. Rukovodstvo po Skramu URL: https://www.scrumguides.org/docs/scrumguide/v2016/20 16-scrum-guide-russian.pdf (Data obrashcheniya: 20.05.2021).

12. Redmine - sistema upravleniya proektami URL:https://www.dvbi.ru/articles/reading/Redmine-tasks-management-system (Data obrashcheniya: 20.05.2021).

13. Redmine dlya upravleniya IT: prakticheskij opyt obshirnogo vnedreniya opensource-sistemy URL: https://www.redmine.org/plugins/redmine_agile (Data obrashcheniya: 20.05.2021).

14. Redmine - obzor servisa URL:https://startpack.ru/application/redmine (Data obrashcheniya: 20.05.2021).

15. Licenziya Redmine Rezhim dostupa: https://www.redmine.org/ (Data obrashcheniya: 20.05.2021).

16. Dokumentaciya API Redmine URL: http://www.redmine.org/projects/redmine/wiki/Rest_api (Data obrashcheniya: 20.05.2021).

17. Agile plagin Redmine URL: https://www.redmine.org/plugins/redmine_agile (Data obrashcheniya: 20.05.2021).

18yu Znershcht GKDZH

https://ru.wikipedia.org/wiki/Python GKDZH

https://www.redmine.org/plugins/redmine_agile (Data obrashcheniyaZH 20yu05yu2021)yu

19. Biblioteka dlya Python dlya raboty s http zaprosam URL: http://docs.python-requests.org/en/master/ (Data obrashcheniya: 20.05.2021).

20. Modeli dannyh. URL: https://docs.djangoproject.com/en/2.1/topics/db/models/ (Data obrashcheniya: 20.05.2021).

21. Predstavlenie dannyh. URL: https://docs.djangoproject.com/en/2.1/topics/http/views/ (Data obrashcheniya: 20.05.2021).

22. Integraciya s Redmine (Rest-API) URL: https://infostart.ru/public/825153/ (Data obrashcheniya: 20.05.2021).

Сведения об авторах

Кравец Алла Григорьевна, д-р техн. наук, профессор, каф. «Системы автоматизированного проектирования и поискового конструирования» ВолгГТУ, Государственный университет «Дубна»; Alla G. Kravets, ORCID 0000-0003-1675-8652, Dr Sci. (Eng.), Professor, Department of Computer-aided design and exploratory design Systems Volgograd State Technical University;

Dubna State University, agk@gde.ru

Сальникова Наталия Анатольевна, канд. техн. наук, доцент, каф. информационных систем и математического моделирования Волг, филиал РАНХиГС; Natalia A. Salnikova, Ph.D (Eng.), Associate Professor, Department of Information Systems and Mathematical Modeling, Volgograd Institute of Management, ns3112@mail.ru

Силантьев Алексей Иванович, ассистент, ВолгГТУ, Alexey I. Silantiev, Assistant, Volgograd State Technical University, leshka.oo@yandex.ru

i Надоели баннеры? Вы всегда можете отключить рекламу.