Научная статья на тему 'АНАЛИЗ СИСТЕМ УПРАВЛЕНИЯ ПРОЕКТАМИ'

АНАЛИЗ СИСТЕМ УПРАВЛЕНИЯ ПРОЕКТАМИ Текст научной статьи по специальности «Компьютерные и информационные науки»

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

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Иванов Н.В.

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Иванов Н.В.

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

ANALYSIS OF PROJECT MANAGEMENT SYSTEMS

The article analyzes the existing project management systems and error tracking systems for the implementation of various functionalities.

Текст научной работы на тему «АНАЛИЗ СИСТЕМ УПРАВЛЕНИЯ ПРОЕКТАМИ»

различные архитектурные приемы, в том числе и представление системы в виде набора микросервисов в сочетании технологий Kubernetes и Apache Karaf.

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

Использованные источники:

1. Мирошниченко Е.А. Технологии программирования . - Томск : Изд-во Томского политехнического университета, 2008. - 2-е изд., испр. и доп..

2. Брукс Ф. Мифический человеко-месяц или как создаются программные системы. - Санкт-Петербург : Символ-Плюс, 1999.

3. OSGi Alliance Архитектура OSGi [Электронный ресурс] // Веб-сайт спецификации OSGi. - OSGi Alliance https://www.osgi.org/ developer/architecture/ (дата обращения 3.05.2017)

4. Hans Dockter Adam Murdoch Документация Gradle [Электронный ресурс] // Официальный сайт Gradle. - Hans Dockter, Adam Murdoch https://docs.gradle.org/3.5/userguide/userguide.html (дата обращения 2.05.2017).

5. Phillip Webb Dave Syer, Josh Long, Stéphane Nicoll, Rob Winch, Andy Wilkinson, Marcel Overdijk, Christian Dupuis, Sébastien Deleuze, Michael Simons Spring Boot Reference Guide [Электронный ресурс] // Spring Boot Reference Guide http://docs.spring.io/spring-boot/docs/2.0.0.M1/reference/ htmlsingle/ (дата обращения 2.05.2017).

УДК 004.415.23

Иванов Н.В. бакалавр

направление 09.03.02 «Информационные системы и технологии» Национальный исследовательский ядерный университет «МИФИ»

Россия, г. Москва АНАЛИЗ СИСТЕМ УПРАВЛЕНИЯ ПРОЕКТАМИ

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

Ключевые слова: веб-приложение, сервер приложений, Java-приложение, система управления проектами и задачами, модель данных, REST.

Ivanov N. V. Bachelor's degree 09.03.02 Information systems and technologies National Research Nuclear University "MEPhl"

Russia, Moscow ANALYSIS OF PROJECT MANAGEMENT SYSTEMS Annotation: the article analyzes the existing project management systems

and error tracking systems for the implementation of various functionalities.

Keywords: web application, application server, Java-application, project and task management system, data model.

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

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

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

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

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

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

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

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

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

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

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

Наибольшим спросом в настоящее время используются системы управления проектами, представляющие собой клиент-серверные приложения. Они могут быть загружены и запущены на серверах предприятия, а доступ и управление ими осуществляется через веб-браузер. Кроме того, такие системы могут быть развернуты в облаке и работать по принципу SaaS. Для обоих подвидов клиент-серверных систем разработка плагинов представляет собой разработку библиотеки с использованием предоставляемого системой набора библиотек или Software Development Kit (SDK). При завершении разработки плагина результат загружается на сервер предприятия и начинает работу вместе с основной системой.

Наиболее известными системами, применяющимися в разработке программного обеспечения, являются Atlassian Jira, Redmine и YouTrack. Сравнение систем будет проводиться по следующим параметрам:

1. Набор данных, связанных с проектами и задачами, которые хранит система;

2. Способы взаимодействия пользователя с системой.

Система управления проектами Atlassian Jira - коммерческая система отслеживания ошибок, разработанная компанией Atlassian. Система разработана на языке Java и является клиент-серверным программным обеспечением, поставляется как для установки на сервере предприятия, так и в виде облачного решения. Система позволяет выстраивать рабочие процессы с использованием гибких методологий разработки программного обеспечения, таких как Scrum и Kanban, строить рабочие процессы, использовать инструменты отчетности, мониторинг проектов.

JIRA по умолчанию предоставляет возможности построения следующих типов отчетов - диаграмма погашения, отчет по спринту, диаграмма производительности, отчет по созданным и решенным запросам и другие.

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

Задача состоит из следующих полей:

1) Проект

2) Тип запроса

3) Тема

4) Автор

5) Описание

Также можно настраивать поля, добавлять дополнительные поля и создавать пользовательские типы полей.

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

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

Для интеграции с внешними сервисами JIRA использует протоколы SOAP и REST. Имеются интеграции с системами контроля версий -subversion, cvs, git и другие.

JIRA предоставляет REST API для управления ресурсами. Общий вид запроса выглядит следующим образом:

http://host:port/context/rest/api-name/api-version/resource-name

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

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

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

Спецификация OSGi широко используется для реализации модульных систем. Она позволяет собирать приложения из компонентов, связанных посредством сервисов. Круг применений данной спецификации довольно широк: изначально разрабатывалась для создания встроенных систем (в частности, для автомобилей BMW, также в разработке спецификации активно участвует Siemens), но сейчас на базе OSGi строят многофункциональные автономные настольные приложения (например, Eclipse SDK), корпоративные системы.

JIRA предоставляет оболочку над OSGi, пользователь модульной системы использует интерфейсы, которые предоставляет Atlassian SDK и xml-конфигурации, схема которых определяется модульной системой JIRA.

Модульная система JIRA также предоставляет доступ для написанию плагинов с разработкой для них REST API и сервлетов.

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

Разработана на языке Ruby с использованием фреймворка Ruby on

Rails.

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

Redmine поддерживает настраиваемые роли для управления доступом сотрудников предприятия к чтению и изменению проектов и задач в системе, также поддерживается протокол LDAP.

Redmine поддерживает интеграцию с такими системами контроля версий как git, subversion, mercurial и некоторыми другими. Имеется интеграция с инструментами документирования - встроенный wiki-движок, интеграция по электронной почте, диаграммы Ганта, календари, экспорт в pdf, xls.

Redmine поддерживает управление системой посредством набора http-запросов - REST API и предоставляет доступ к следующим типам объектов:

1) Задачи

2) Проекты

3) Участия в проектах

4) Пользователи

5) Временные события

6) Новости

7) Отношения между задачами

8) Версии

9) Вики-страницы

10) Сохраненные запросы

11) Прикрепленные документы

12) Статусы задач

13) Трекеры задач

14) Перечисления

15) Категории задач

16) Роли

17) Группы

18) Пользовательские поля

REST API предоставляет ответы в формате JSON и XML, средства для аутентификации, а также возможность постраничных запросов

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

Модульная система Redmine предполагает написание модулей на языке Ruby с использованием фреймворка Ruby on Rails. Модуль создается как отдельное приложение Ruby on Rails внутри основного приложения. Ruby on Rails использует шаблон проектирования «Модель-Вид-Контроллер», так что задача написания модуля сводится к добавлению дополнительных таблиц в базу данных, написанию контроллеров и html-страниц. Модульная система дает возможность дополнить интерфейс меню и добавить дополнительные разрешения для пользователей.

YouTrack - программное обеспечение производства компании JetBrains, является системой отслеживания ошибок, доступ как онлайн-сервис. Имеется возможность полнотекстового поиска задач. YouTrack поддерживает методологии Scrum и Kanban, так что основные функциональные возможности заточены под работы с этими моделями. Предоставляет возможности настройки рабочих процессов и workflow. В отличие от JIRA и Redmine не дает возможности расширения базовых возможностей плагинами. Имеет REST API, который предоставляет доступ к следующим типам объектов:

1) Задачи

2) Проекты

3) Пользователи системы

4) Группы

5) Роли

6) Разрешения

7) Связи между задачами

8) Статистики

9) Пользовательские поля

YouTrack имеет интеграции со всеми инструментами компании JetBrains.

В плане построения отчетов YouTrack обходит стандартную версию JIRA, так YouTrack предоставляет доступ к 18 типам отчетов, которые разделены на следующие группы:

1) Распределение задач (issue ditribution)

2) Шкала времени (timeline)

3) Управление временем (time management)

4) Переходы состояний (state transitions)]

На основе обзора существующих решений было сделано сравнение этих систем в таблице 1.

Таблица 1 - Сравнение существующих систем уп

равления проектами

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

Название системы/ _параметр_

JIRA

Redmine

YouTrack

Типы объектов модели данных

Задача, проект, тип задачи, приоритет, статус, связь задач, действие над задачей,

пользовательские поля,

пользователи, события

произошедшие с задачей, поток работ, уведомления

Задача, проект, документ, событие, категория задачи, пользователь, группа

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

Задача,

прикрепленный файл, тэги задач, Связи задач, проекты, Пользователи, Группы, роли, пользовательские поля, статистики, разрешения

Название системы/ _параметр_

JIRA

Redmine

YouTrack

Возможность управлять процессом потока задач

Предоставляется конструктор для выстраивания переходов и

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

Предоставляется матрица

инцидентности, в которой в зависимости от роли пользователя и типа задач можно настроить возможность перехода из статуса в статус_

Предоставляется

возможность

описания

процессов перехода на внутреннем DSL системы

Система плагинов

Система плагинов на основе технологии OSGi

Система плагинов с архитектурой, завязанной на возможности фреймворка Ruby on Rails

Система модулей отсутствует

Интеграции

внешними

сервисами

Имеются

интеграции с

системами контроля версий

Имеются

интеграции с

системами контроля версий, оповещения по электронной почте

Имеются

интеграции с

системами контроля версий, интеграции с

продуктами компании JetBrains. Также имеется возможность импорта задач из JIRA.

с

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

1. Система должна хранить следующий набор данных:

a. Проект

b. Задача

c. Пользователь системы

d. Участник проекта

e. Системные события

f. Роли и разрешения

2. Система должна обеспечивать управление данными посредством

REST API. REST API представляет собой набор шаблонных HTTP запросов для управления данными. Использование этого вида API позволяет любому пользователю разработать собственный пользовательский интерфейс для данной системы. Формат получаемых и отправляемых данных в запросах REST API представляет собой текст в формате JSON. Данный формат не требует проверки корректности запроса как XML на стороне сервера, что облегчает процесс разработки пользователем клиентского веб-интерфейса. REST API должна обеспечивать возможность управления ресурсами, которые соответствуют объектной модели данных системы.

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

1) Настройка рабочих процессов

2) Подсчет метрик и отчетность

3) Настройка уведомлений

4) Настройка интеграций с внешними сервисами, такими как система контроля версий, система непрерывной интеграции или интегрированная среда разработки

5) Управление через REST API

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

Использованные источники:

1. Мирошниченко Е.А. Технологии программирования . - Томск : Изд-во Томского политехнического университета, 2008. - 2-е изд., испр. и доп..

2. Мартин Роберт С., Ньюкирк Джеймс В. и Косс Роберт С. Быстрая разработка программ. Принципы, примеры, практика. - [б.м.] : Вильямс, 2004.

3. Atlassian Документация Atlassian Jira [Электронный ресурс] //

Официальный сайт Jira. - Atlassian

https://confluence.atlassian.com/alldoc/atlassian-documentation-32243719.html (дата обращения 15.05.2017).

4. Redmine Документация Redmine [Электронный ресурс] // Официальный сайт Redmine. - Redmine http://www.redmine.org/projects/redmine/wiki/Guide (дата обращения 15.05.2017).

5. JetBrains Документация YouTrack [Электронный ресурс] // Официальный сайт YouTrack https://www._jetbrains.com/help/youtrack/ (дата обращения 15.05.2017).

УДК 167.1

Иванова О.Э., д.ф.н.

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

Рябчук П.Г., к. э. н.

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

Россия, г. Челябинск ПРОЕКТНАЯ СУЩНОСТЬ СОКРАТИЧЕСКОГО ДИАЛОГА Аннотация: В статье раскрыта проектная сущность сократического диалога как формы философской практики. Обосновано, что необходимым условием продвижения является проблемоцентричность как важнейшая характеристика сократического философствования. Подчеркнуто ключевое значение решения проблемы, предполагающее понимание ее смысла. Сократический диалог как проект, потенция будущего, основан на опыте, совместном поиске ответов в единстве с выявлением противоречий при целенаправленном решении проблемы.

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

Ivanova O.E., Doctor of Philosophy, assistant professor Head of the Department of social and pedagogical education South Ural State Humanitarian Pedagogical University

Russia, Chelyabinsk Ryabchuk P. G., Ph.D. in Economics, assistant professor Head of the Department of Economics, Management and Law South Ural State Humanitarian Pedagogical University

Russia, Chelyabinsk THE PROJECT ESSENCE OF A SOCRATIC QUESTIONING Abstract: The article reveals the design essence of Socratic Questioning as a form of philosophical practice. The judgment is grounded that the necessary condition for progress is problem-centricity as the most important characteristic of Socratic philosophizing. The key importance of solving the problem is underlined, suggesting an understanding of its meaning. Socratic dialogue as a

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