Существует множество технологий для распределенных групп [1, 2], однако мы выбрали лишь четыре наиболее широко применяемые сейчас: IBM Jazz, Microsoft SharePoint, Google Apps и Lotus Notes.
IBM Jazz представляет собой технологическую платформу совместной работы для предоставления программного обеспечения. Эта расширяемая платформа может интегрировать и синхронизировать действия людей, процессы и активы, относящиеся к программным проектам. Данная технология обеспечивает следующие основные возможности:
- информирование членов группы с помощью средств автоматического уведомления (члены группы могут видеть работу своих коллег);
- контроль присутствия лиц, принимающих участие в одном проекте, обмен сообщениями;
- поддержка расширяемой инфраструктуры за счет открытых Web-стандартов для присоединения новых подключаемых модулей;
- уведомления о процессах, управляющих потоками заданий в группе и автоматизирующих различные этапы разработки;
- определение процесса с помощью описания и изменения его правил для различных тем или проектов;
- возможность интеграции других систем управления исходным кодом и изменениями, таких как системы контроля версий.
Microsoft SharePoint – корпоративная система совместной работы, позволяющая организовать взаимодействие людей с помощью создания сайтов, обмена информацией, управления документами и публикации отчетов. SharePoint включает в себя следующий набор инструментов и возможностей для поддержки совместной работы:
- Sites — единая инфраструктура для всех сайтов организации, позволяющая обмениваться документами или управлять проектами;
- Composites — средства и компоненты для создания бизнес-решений без кодирования;
- Insights — организация доступа членов группы к информации из баз данных, отчетов и бизнес-приложений;
- Communities — средства совместной работы для обмена идеями и полученными результатами;
- Content — система управления контентом (поддержка типов документов, определение правил хранения информации и автоматическая сортировка контента);
- Search — поиск информации и контактов.
Google Apps — офисный инструментарий на базе Web для компаний любого размера, который включает в себя набор средств, позволяющих осуществлять:
- управление документами или мультимедиаинформацией, такой как видео;
- совместное создание и управление сайтами компании;
- взаимодействие с помощью переговорных сессий и электронной почты;
- управление рабочими группами, задачами, операциями и т. д., в том числе рассылкой уведомлений по электронной почте и работой с календарем.
IBM Lotus позволяет разработчикам взаимодействовать друг с другом с помощью Web-инструментов, предлагающих следующие возможности:
- защищенное онлайновое пространство для обмена контентом и совместной работы над групповыми проектами;
- уведомления о присутствии, обмен мгновенными сообщениями и Web-конференции;
- управление электронной почтой, календарем и контактами;
- управление событиями Web-конференций, их инициация и анализ;
- управление потоками заданий и проектами;
- совместная разработка и развертывание корпоративных приложений.
В табл. 1 указаны важные особенности каждой из перечисленных технологий, однако следует учесть, что компании — разработчики этих технологий создавали их для поддержки конкретных задач, связанных с распределенной разработкой, и не стремились охватить все процессы жизненного цикла программного обеспечения (Software Lifecycle Processes, SLP). В этой связи имеет смысл дополнить данное описание инструментальными средствами поддержки некоторых процессов.
Инструментальные средства распределенной разработки
Терминология SLP определена в стандарте ISO/IEC 12207, который создавался как гибкий, модульный и настраиваемый, позволяющий разработчикам программного обеспечения адаптировать его к своим нуждам. Согласно стандарту, SLP разделены на две группы: задачи и операции, и относятся к основным, вспомогательным и организационным процессам. Еще один способ сгруппировать процессы – разделить их на системные и программные, специфические для программного обеспечения. На рис. 1 показаны все процессы, определенные в ISO/IEC 12207, среди которых мы особо выделили те, что представляют первостепенный интерес: процессы проекта, реализации и поддержки.
Процессы проекта
Поддержка процессов проекта осуществляется рядом программ.
ActiveCollab . Коммерческий программный инструментарий поддержки на базе Web операций управления проектом, таких как планирование и контроль прогресса. Предлагает средства уведомления о событиях и позволяет интегрировать почтовые сообщения в поток заданий проекта.
Assembla . Web-инструментарий управления потоком операций проекта и их координации. Система поддерживает совместную работу членов группы с помощью Web-приложений, таких как вики, и позволяет видеть работу каждого члена группы. С помощью Assembla можно интегрировать инструментальные средства совместной работы в зависимости от потребностей проектной группы, предоставляя ее членам возможность обмениваться с клиентами избранной информацией по проекту.
Maven . Свободно распространяемый инструментарий построения и поддержки качества проектной информации. Разработчики могут добавить этот инструмент в интегрированные среды разработки, такие как Eclipse или Netbeans для расширения функциональности.
Rational Team Concert . Инструментарий из состава IBM Jazz, поддерживающий планирование, работу с исходным кодом, рабочие задания и управление состоянием проекта. Для выполнения этих задач данный инструмент интегрирует модули поддержки процессов и уведомления членов группы, слежения за выполнением рабочих заданий и оперативного планирования, предоставляя средства формирования планов для групп и непрерывной интеграции создаваемого кода.
Jira . Инструментарий, обеспечивающий высокий уровень интеграции с помощью подключаемых модулей, позволяющий отслеживать ход решения задач и вести оперативное управление проектом. Jira предоставляет удобные средства для отслеживания ошибок и интеграции с популярными интегрированными средами разработки, такими как Eclipse.
Процессы реализации
На рис. 2 приведены процессы и инструменты поддержки реализации проекта, включающие анализ требований, детальное проектирование и интеграцию.
Инструментальные средства анализа требований. К этой группе относятся инструменты, позволяющие членам распределенной группы управлять программными требованиями.
IBM Rational Doors . Поддерживает совместную работу членов группы, позволяя им управлять требованиями, и может интегрироваться с другими инструментальными средствами для организации трассировки. Поддерживает формат Requirements Interchange Format, с помощью которого поставщики и партнеры проекта участвуют в разработке. Обеспечивает трассировку на протяжении всего жизненного цикла программы за счет интеграции других инструментальных средств, таких как IBM Rational Tau.
eRequirements . Некоммерческий Web-инструментарий, позволяющий группам управлять функциональными и нефункциональными требованиями. Включает в себя генератор документов в формате PDF и позволяет группам собирать детальную информацию о проекте или совместно использовать и формировать тестовые ситуации, определяющие поведение системы. Кроме того, eRequirements имеет генератор документов, позволяющий автоматически создавать спецификации на требования.
Rational Requirements Composer . Еще один инструментарий из пакета IBM Jazz с Web-интерфейсом для совместного создания требований. Он дает пользователям возможность взаимодействовать, вставляя комментарии, а также связывая требования с рабочими заданиями в Rational Team Concert и тестами в Rational Quality Manager. Поддерживает коллекции, совместно используемые фильтры, теги, атрибуты, гиперссылки, средства расширенного поиска, структуризации требований и сопутствующей информации.
Инструментальные средства детального проектирования . К этой группе относятся средства проектирования операций, совместно выполняемых в распределенной группе.
Gliffy . Обеспечивает совместную работу членов распределенной группы. Пользователи могут пригласить членов группы для участия в сессии с целью просмотра и редактирования диаграмм. Инструмент поддерживает уведомления по электронной почте и включает в себя систему контроля версий и управления доступом. Кроме того, в его состав входит менеджер формирования диаграмм, позволяющий дополнять их тегами.
Camel . Это исследовательский инструментарий, с помощью которого пользователи могут схематически изображать и обсуждать различные диаграммы — UML и любые другие [3]. Он также поддерживает механизмы для управления темой дискуссии во время конференций и предоставляет механизмы сбора во время конференций всей информации, посвященной проектированию.
Rational Tau . Среда на базе UML 2.1 для поддержки совместной работы, включающая в себя возможности автоматической генерации документов и управления случаями применения. Данный инструментарий объединяет моделирование требований и разработку встроенных приложений.
Инструментальные средства интеграции. Стандарт ISO/IEC 12207 определяет основную задачу процесса интеграции как сочетание программных модулей и программных компонентов для получения интегрированных программных элементов. Для достижения этой цели применяются следующие инструментальные средства.
Hudson . Система непрерывной интеграции на базе Web, ориентированная на создание и непрерывное тестирование программных проектов и мониторинг выполнения заданий, инициированных извне.
Merlin ToolChain . Свободно распространяемое решение для интегрированного управления проектом, управления требованиями, управления конфигурацией и управления тестами.
К этой группе относятся также инструментальные средства, поддерживающие интеграцию проектных изменений.
Процессы поддержки программного обеспечения
Как показано на рис. 3, третья группа состоит их программных инструментальных средств для поддержки процессов, и сюда мы специально отнесли инструменты для поддержки управления документацией и конфигурацией.
Инструментальные средства управления конфигурацией. К этой группе относятся инструменты управления документацией или документами для распределенных групп.
TWiki . Платформа Web-приложений, которая использует технологию вики и сконфигурирована как система управления документами.
Google Docs . Web-платформа, позволяющая группам создавать, редактировать и обмениваться документами. Члены группы могут редактировать документы одновременно.
Lotus Notes . Клиент-серверная система совместной работы, с помощью которой пользователи, например, могут обмениваться документами, управляемыми разными людьми. Более того, она позволяет совместно использовать базы данных, календари или планы работ и поддерживает управление электронной почтой.
Инструментальные средства общего анализа или гарантии качества. К этой группе относятся инструментальные средства, связанные с процессами общего анализа и гарантии качества, также называемые инструментарием инспекции программного обеспечения (Software Inspection Tools, SIT). Они относятся к процессу общего анализа, поскольку инспекция ПО – это вид рецензирования для выявления и устранения дефектов на более ранних этапах разработки. Эти инструменты также касаются процесса гарантии качества, поскольку инспекция программного обеспечения позволяет определить наилучшие практические решения, используемые для повышения качества программ [4]. Вот некоторые инструменты этой группы.
Internet-Based Inspection System . Web-инструментарий для поддержки географически распределенных инспекционных групп. IBIS минимизирует количество синхронных операций и проблем, связанных с координацией, а также поддерживает автоматические уведомления с помощью электронной почты и дискуссионные цепочки на форумах.
Rational Quality Manager. Инструмент из пакета IBM Jazz, позволяющий генерировать отчеты на базе Web с информацией о количественном влиянии проектных решений на достижение целей повышения качества ПО на протяжении всего жизненного цикла проекта.
***
Отсутствие непосредственного общения между членами распределенных групп может быть компенсировано такими коммуникационными технологиями, как переговорные сессии или форумы для синхронных или асинхронных коммуникаций. В большинстве инструментальных средств используются возможности асинхронных коммуникаций, например цепочек в форумах, поскольку члены распределенной группы зачастую не могут встретиться в одно и то же время. И только инструменты, поддерживающие синхронные операции совместной работы, например Camel, имеют такие коммуникационные возможности, как переговорные сессии. Эти технологии обеспечивают солидную поддержку процессу взаимодействия за счет использования таких возможностей управления проектами, как отслеживание, автоматическое уведомление, управление календарем и т. д., однако эти технологии не охватывают все этапы жизненного цикла программного обеспечения.
Еще одна проблема касается отсутствия связи между инструментальными средствами. Определить полный набор инструментальных средств для поддержки всего жизненного цикла программного обеспечения достаточно трудно, поскольку каждый инструмент был разработан без учета следующего этапа, и пользователям приходится адаптировать информацию, получаемую из одного инструментария, для использования ее в другом. Только в инструментах пакета Jazz, таких как Rational Requirements Composer, предусмотрена связь с другими инструментальными средствами от IBM. Однако тесная интеграция часто строится на внутренних моделях данных, которые привязывают пользователей к одному производителю. В силу этого мы рекомендуем выбирать подключаемые модули на базе Eclipse или открытые магистрали данных, такие как eASEE, не полагаясь на интеграцию инструментальных средств, поддерживаемую одним производителем.
Литература
- F. Lanubile et al., Collaboration Tools for Global Software Engineering. IEEE Software, vol. 27, no. 2, 2010.
- C. Ebert, Global Software Engineering: Distributed Development, Outsourcing, and Supplier Management. Wiley, IEEE CS Press, 2010.
- M. Cataldo et al., Camel: A Tool for Collaborative Distributed Software Design. Proc. IEEE Int' l Conf. Global Software Eng. (ICGSE 09), IEEE Press, 2009.
- F. Lanubile, T. Mallardo, F. Calefato, Tool Support for Geographically Dispersed Inspection Teams. Software Process: Improvement and Practice, vol. 8, no. 4, 2003.
Хавьер Портилло Родригес ( portillo@uclm.es ) – аспирант и научный сотрудник института информационных технологий и систем Университета Кастилии — Ла Манчи (Испания); Кристоф Эберт ( christof.ebert@vector.com ) – управляющий директор и партнер компании Vector Consulting Services; Аврора Вискайно ( aurora.vizcaino@uclm.es ) – доцент института информационных технологий и систем Университета Кастилии — Ла Манчи (Испания)
Рис. 1. Процессы ISO/IEC 12207. Стандарт определяет терминологию для процессов жизненного цикла программного обеспечения, разделенных на две категории : системные процессы и программные процессы, специфические для программного обеспечения.