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

УДК 004.4'2: 658.5

Е.А. Бахман, АЛ. Кизим

РАЗРАБОТКА ЕДИНОЙ ПЛАТФОРМЫ УПРАВЛЕНИЯ СОЗДАНИЕМ И ОБСЛУЖИВАНИЕМ ПРОГРАММНЫХ ПРИЛОЖЕНИЙ НЕБОЛЬШИМИ КОМАНДАМИ РАЗРАБОТЧИКОВ

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

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

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

Разработка и поддержка программных систем; сопровождение; техническое обслуживание систем; управление жизненным циклом приложений; этапы жизненного цикла .

E.A. Bakhman, A.V. Kizim

DEVELOPMENT OF A SINGLE PLATFORM FOR MANAGEMENT OF SOFTWARE APPLICATIONS CREATION AND MAINTENANCE BY SMALL

DEVELOPERS TEAM

The urgency of application lifecycle management is assigned to the need to increase the efficiency of developer's collaborative work and user’s interaction, decrease software systems creation and support costs and final software product's price. In this paper as a means of solving such problems we suggest to develop a single platform for management of software applications creation and maintenance, which is oriented on small developers teams.

The developed system will make it possible to integrate existing software products in the application lifecycle management field and provide the missing functionality (such as requirements management), which provides scientific and technical novelty of the proposed solution.

Platform's approbation is performed on the basis of the development and maintenance processes and information support of system maintenance and repair tasks.

Development and support of software systems; system maintenance; application lifecycle management; software lifecycle phases.

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

,

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

Поддержка разработки и сопровождения программных систем может быть осуществлена с использованием специальных методологий (Agile, MSF, RUP, ITSM и др.), международных и государственных стандартов (ГОСТ 19, ГОСТ 34,

ГОСТ Р ИСО/МЭК 12207-99, ISO/IEC 12207:1995), моделей зрелости процесса разработки (CMM, CMMI). Они охватывают большинство этапов жизненного цикла программного продукта, однако зачастую не удовлетворяют требованиям поль-

- -. , -вождением программных продуктов, наиболее перспективным и комплексным подходом в области разработки и сопровождения программных систем является ALM. Согласно [1], управление жизненным циклом приложений (Application Lifecycle Management, ALM) представляет собой объединение управления бизнес-

( ),

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

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

процесса создания ПО [2].

Комплексный подход к управлению жизненным циклом программных при-

( . 1):

Управление жизненным циклом приложений

Управление требованиями Управление проектом Управление коммуникациями Управление конфигурацией Управление изменениями

Тестирование Управление ошибками Управление сборками Управление релизами Формирован ие отчетов

Рис. 1. Основные задачи управления жизненным циклом приложений

При анализе существующих программных решений были рассмотрены следующие ALM-системы: Agile ALM Platform; Rally Agile ALM platform; Microsoft Visual Studio Team System; Caliber, StarTeam, Silk (Borland); Rational Requirements Composer, Rational Team Concert, Rational Quality Manager (IBM); Mingle, Go, Twist (ThoughtWorks); Seapine ALM; AccuRev SCM; DevSuite; Polarian ALM. В результате анализа выявлено, что большинство существующих программных систем являются дорогостоящими и не предназначены для использования небольшими командами разработчиков. Кроме того, с точки зрения наличия функциональных возможностей, это достаточно громоздкие системы, большинство которых востребовано лишь при разработке крупных программных проектов. Также было выявлено, ALM:

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

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

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

В качестве ядра разрабатываемой программной платформы выбрана система Agile ALM Platform (Versionüne) [3], которая предлагает возможности планирования и управления задачами, отслеживания ошибок, управления коммуникациями, формирования отчетов, предоставления открытого API и Java & .NET SDK. Главное преимущество выбранной системы - возможность использования бесплатных коннекторов с открытым исходным кодом, реализующих интеграцию с системами

, ( - ), , . Versionüne -

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

жизненным циклом программных приложений. Команды с численностью не более 10 пользователей могут использовать бесплатную версию Agile ALM Platform.

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

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

♦ управление проектами (задачами, ресурсами);

♦ управление требованиями;

♦ управление рисками;

♦ управление коммуникациями;

♦ управление изменениями;

♦ управление непрерывной интеграцией (интеграция с системой Jenkins);

♦ контроль версий (интеграция с системой Subversion);

♦ предоставление среды разработки (интеграция с системой Eclipse);

♦ управление тестированием (интеграция с системой FitNesse);

♦ управление дефектами (интеграция с системой Bugzilla);

♦ формирование отчетов;

♦ управление пользователями (р^граничение прав доступа и т.д.);

♦ предоставление интерфейсов (наборов функций) для межкомпонентного

;

♦ предоставление web-интерфейса для доступа пользователей к системе.

Выбрана трехуровневая (трехзвенная) архитектура клиент-сервер: клиент, сервер приложений и сервер БД.

Модульность предлагаемого решения (рис. 2) позволит обеспечить масштабирование программной системы в будущем.

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

Компонент Компонент LiT~

управления ^ * проектами о непрерывной интеграции

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

А

Компонент

управления

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

і

Компонент

ядра

Компонент среды разработки

Г {

Y

Компонент ЗЛ

управления

дефектами

Рис. 2. Диаграмма компонентов системы

Основные участники процессов работы с требованиями: пользователь, заказ, ( - ). -тель и заказчик формулируют преимущественно функциональные и нефункцио-, -сывает системные и программные требования [4].

Общий алгоритм управления требованиями:

1)

продукту и регистрация их в системе;

2) - (

: , , );

3) определение инженером-программистом приоритетов требований;

4) - ,

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

5) трассировка требований инженером-программистом (проверка соответст-

);

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

Основные сущности процесса управления требованиями:

♦ требование (requirement);

♦ группа требований (requirement_group);

♦ польз ователь, последним вносивший изменения в требования (user);

♦ роль пол ьзователя, вносившего изменения в требования (user_role);

♦ право доступа пользователя, вносившего изменения в требования (access_rule).

Были выделены следующие классы, используемые в процессе управления ( . 3):

requi rement group

+ID: int -»Name string -♦Description : string ♦ CreateDate : string ♦EditDate : string

#Ado() #Edit() #Delete() -GetBylDO: object -GetList(): object

bool hi'.:,I

requirement

+ID: Int

♦RequirementGroupID irt +Name: string ♦Description: string ♦Priority: int * Status: string +CreatedDate string +EditDated : string ♦ResponseUserlD: irt ♦LastChangedUserlD: irt

#Add(): bool #Edit(>: bool #OeleteO: bool -GetBylDO • object -GetUstQ object

user

+ D int

+RolelD : Int

♦Login string

♦Password string

+Name string

♦RegDate string

+LastlnputDate string

#Add( : bool

#Edit(  bool

#Delete( : bool

-GetBylDO '

GetListO: К

user role

+ID ;int +Name: string v ♦Description : string #Add() : bool #Edit(): bool #Delete{): bool -GetBylDO: object -GetUstO: object

access rulo

+ID ;int +UserRolelD : ♦Name: string ♦Description string

#Add(): bool #Edit(): bool #Delete(): bool •GetBylDO object -GetListQ object

Puc. 3. Диаграмма классов

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

Апробация платформы управления созданием и обслуживанием программных приложений производится на процессе разработки и сопровождения приложений для программно-информационной поддержки задач технического обслуживания и ремонта оборудования предприятий и организаций [5, 6, 7].

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Chappell, D. What is application lifecycle management? / D. Chappell. - CHAPPELL & ASSOCIATES, 2008.

2. Открытое управление жизненным циклом приложений (ALM) [Электронный ресурс].

- 2007. - Режим доступа: http://www.interface.ru/home.asp?artId=8633.

3. Agile Application Life Cycle Management (ALM) Platform [Электронный ресурс]. - Режим доступа : http://www.versionone.com/Platform.

4. Орлик, С. Программные требования (Software Requirements по SWEBOK) [Электронный ресурс] / С. Орлик. - 2010. - Режим доступа: http://swebok.sorlik.ru/1_software_ require-ments.html.

5. Кизим, A.B. Обоснование необходимости автоматизации работ по ремонту и техническому обслуживанию оборудования // Известия ВолгГТУ. Серия "Актуальные проблемы управления, выч. техники и информатики в техн. системах". Вып.6. - Волгоград, 2009. - № 6 (54). - C. 118-121.

6. , . .

//

управления и радиоэлектроники (Доклады ТУСУРа). - 2009. - № 2. - C. 131-135.

7. , . . -

ремонта оборудования с учетом интересов субъектов процесса / A.B. Кизим, Е.В. Чиков, В.Ю. Мельник, В А. Камаев // Информатизация и связь. - 2011. - № 3. - С. 57-59.

Статью рекомендовал к опубликованию д.т.н., профессор Е.А. Башков.

Бахман Екатерина Андреевна - Волгоградский государственный технический университет; e-mail: bahman.ekaterina@mail.ru; 400005, г. Волгоград, пр. Ленина 28; тел: 88442230076; кафедра «САПР и ПК»; магистрант.

Кизим Алексей Владимирович - e-mail: kizim@mail.ru; кафедра «САПР и ПК»; к.т.н.;

доцент; докторант.

Bakhman Ekaterina Andreevna - Volgograd State Technical University; e-mail: bahman.ekaterina@mail.ru; 28, Lenin avenue, Volgograd, 400131, Russia; phone: 88442230076; postgraduate student.

Kizim Alexei Vladimirovich - e-mail: kizim@mail.ru; the department of CAD; cand. of eng. sc.; associate professor; doctoral student.

УДК 65.014.1

BA. Петраков АДАПТАЦИЯ УПРАВЛЕНИЯ ВЫСОКОТЕХНОЛОГИЧНЫМ ПРОЕКТОМ

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

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

Адаптированный подход; социотехническая система; высокотехнологичный инновационный проект.

V.A. Petrakov ADAPTATION OF HIGH-TECH PROJECT MANAGEMENT

A new adapted approach to managing of low-structured, high-tech, innovative project, based on the achievement of certain objective function (runtime of the project, its cost, quality), are the yields of the socio-technical systems, and resources to achieve them (assets, investments, professional competence of performers, instruments, including software, etc.), which are state variables, was given. Such approach allows to perform systems synthesis of professional competencies for professional executors in the field of socio-technical system. The purpose formalization of this approach need to analyze features of high-technology innovation project, with low-structured. Beside, that cant apply current techniques and approach project.

Adapted approach; socio-technical system; low-structured; high-tech innovative project.

Высокотехнологичный проект. Общепринятого определения термина «высокотехнологичный проект» сегодня не существует, хотя обычно в это понятие вкладывается смысл наукоемкое™, значимости, сложности, повышенной степени риска процесса проектирования, либо самого объекта.

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