![]() |
+7 (495) 229-0436 | ![]() |
shopadmin@itshop.ru | 119334, г. Москва, ул. Бардина, д. 4, корп. 3 | ![]() |
![]() |
![]() |
|
|
Управление параллельной разработкой с помощью IBM Rational Team Concert. Часть 121.10.2011 09:51
При использовании потоков на разных этапах разработки ПО Rational Team Concert может предоставить команде разработчиков полную структуру параллельной разработки и выпуска ПО. В этой статье описывается передача элементарных операций из одного потока в другой и управление версиями и неполадками, а также контроль над лицами, которые могут вносить изменения в конкретные потоки. Статья ориентирована на новые термины и концепции При разработке ПО в групповой среде часто бывает необходимо распределить различные виды работ в отдельные потоки. Это распределение может быть основано на характеристиках ПО (например, набор усовершенствований, связанных с безопасностью, отделяется от группы изменений в графическом интерфейсе пользователя), либо это может быть набор дефектов, которые необходимо изолировать от работы над новой версией ПО, чтобы выпуск с внесенными исправлениями мог быть быстро доставлен заказчикам. Существует множество причин для такого разделения работ, и в системах управления многочисленными версиями ПО это достигается с использованием серии параллельных звеньев. В приложении IBM Rational Team Concert параллельная разработка поддерживается путем использования нескольких различных потоков. Завершенная часть работы попадает в определенный поток и интегрируется с работой других разработчиков, работающих с тем же потоком. При использовании нескольких потоков деятельность различных групп разработчиков разрознена до тех пор, пока не будет выполнена конкретная задача, после чего наработки из разных потоков интегрируются. Проще говоря, потоки позволяют команде разработчиков автоматически интегрировать работу различных членов команды при наступлении определенного момента. Целью данной статьи является дать определение процесса параллельной разработки ПО с использованием возможностей продукта Rational Team Concert путем описания сценария и шагов по созданию этого сценария. Приведенная схема учитывает многие аспекты разработки ПО, с которыми имеют дело типичные команды разработчиков, но процесс можно модифицировать с учетом специфических требований любой организации и любого процесса разработки. Является ли такая разработка "гибкой"? Одним из ключевых принципов концепции быстрой разработки приложений является частая интеграция изменений, вносимых каждым разработчиком, и непрерывное наращивание вновь интегрированного кода прикладной программы. В итоге некоторые пуристы концепции гибкой разработки могут рассматривать формально распределенный процесс вне рамок методологии гибкой разработки. Однако масштабы деятельности по разработке некоторых программных продуктов подразумевают, что ресурсов одной совмещенной команды разработчиков может быть недостаточно. Кроме того, масштабы и сложность изменений могут быть пугающе большими, что вынуждает использовать распределенную разработку. Принципы, заложенные в программный продукт IBM agility scale, поощряют вести распределенную разработку ПО и, следовательно, назначение различных заданий разным группам разработчиков. Вследствие физического рассредоточения команд или очевидной сложности проекта может оказаться целесообразным введение степени разделения функциональности и регулируемой интеграции в команду гибкой разработки. Эта степень сама может проявляться в потоке в соответствии с расположением или в потоке для конкретной версии. Приложение Rational Team Concert может оказать поддержку командам гибкой разработки тогда, когда они разбивают выполняемое задание, например, на серию функциональных потоков, которые объединяются в одно целое путем использования распределенного интеграционного потока. Надо признать, что многие команды гибкой разработки используют бесплатные программные средства или недорогой инструментарий разработки, который обеспечивает ограниченную поддержку распределенной разработки. Такие инструменты часто не допускают применения распределенного подхода к разработке приложений вследствие функциональных ограничений и высоких издержек реализации интеграции в их рамках. Rational Team Concert предоставляет командам гибкой разработки механизм совершенствования способов разработки ПО и поднятия их на новый уровень в терминах эффективности, гибкости и креативности, который может быть встроен в процессы разработки. Rational Team Concert может использоваться как небольшими группами совместно работающих разработчиков, так и крупными пространственно распределенными командами, которые выполняют множество более мелких подзадач гибкой распределенной разработки. Некоторые ключевые характеристики команд гибкой разработки и подхода по рациональной гибкой поставке ПО (Disciplined Agile Delivery approach) описаны Скотом Амблером (Scott Ambler) в его блоге (см. раздел Ресурсы).
Введение в приложение Rational Team Concert Предполагается, что читатель имеет базовые знания по продукту Rational Team Concert и принципам управления конфигурацией ПО. Дополнительную информацию по приложению Rational Team Concert и другим тесно связанным с ним продуктам можно найти на веб-сайте Jazz.net. Для оказания помощи читателю этой статьи в данном разделе дается описание ряда ключевых для продукта концепций и терминов, используемых в области параллельной разработки ПО.
Потоки параллельной разработки Рис. 1. Регистрация и поставка данных в потоке ![]()
Функциональные потоки Рис. 2. Простая структура функционального потока ![]() На рис. 2 показан главный поток разработки, в который разработчики поставили несколько массивов изменений. Например, из диаграммы видно, что один массив изменений был передан в поток до момента завершения поставки №1, а другой - между моментами завершения операции поставки №1 и №2. Если в рамках проекта никакие другие потоки больше не создаются, то все массивы изменений, поставленные командой разработчиков, интегрируются в единый совместно используемый поток. Однако работающая над этим проектом команда разработчиков решила, что несколько разработчиков должны внести некоторые изменения отдельно от остальной команды. Функциональный поток 1 был создан через некоторое время после начала работы над проектом. Через некоторое время после этого был создан функциональный поток 2. Добавление совместно используемой интеграции и поток выпуска После создания потоков по сценарию, описанному в предыдущем разделе, как показано на Рис. 2, в этот сценарий теперь добавим дополнительный поток для обеспечения отдельного потока интеграции и выпуска. На Рис. 3 изображен новый сценарий, который описывается ниже. Рис. 3. Функциональные потоки с совместно используемым потоком интеграции и выпуска ![]() Сценарий создания массива изменений, базовой линии и интеграции работы из одного потока в другой соответствует схеме, описанной в разделе Функциональные потоки, но с рядом небольших изменений. Поток интеграции и выпуска будет использоваться для формальной интеграции и системного тестирования приложения до его выпуска.
Разделение потока интеграции и выпуска Со временем команды разработчиков часто приходят к заключению о целесообразности разделения потока интеграции и выпуска на отдельные объекты по следующим причинам:
На рис. 4 изображено введение потока выпуска и отдельного потока устранения неисправностей для захвата оперативных изменений в системе. Процесс захвата таких аварийных изменений и передачи их обратно в разработку описывается в следующем разделе. Рис. 4. Отдельные потоки интеграции, выпуска и устранения неисправностей ![]() Код прикладной программы, разработанный к моменту, определенному базовой линией №5, был выбран для выпуска в производство, поэтому была создана новая иерархия потока выпуска для управления выпуском и любой работой по текущему исправлению продукта, как описано ниже.
Рис. 5. Создание структуры второго потока выпуска ![]() На рис. 5 изображена ситуация, когда создаются дополнительные поток выпуска, поток исправления неполадок, а также вносятся несколько исправлений неполадок. Завершающим действием, изображенным на диаграмме, является передача исправлений неполадок в главный поток разработки. Для каждого важного выпуска создается новый поток выпуска и исправления неполадок, поскольку может потребоваться продолжение выполнения процесса исправления и выпуска на первом потоке выпуска для установки второй базовой линии исправления неполадок-выпуска после базовой линии, обозначенной как №7. По окончании поддержки конкретного выпуска соответствующие потоки выпуска и исправления неполадок, вероятно, могут быть удалены. Рис. 6. Дальнейшая деятельность по разработке ![]() Конечно, существует множество способов распределения и разделения работы в команде разработчиков. Процессы интеграции и выпуска программных продуктов в каждой организации существенно различаются, но рассматриваемый в этой статье пример показывает принципы, которые может перенять или приспособить под свои условия любая организация. Команды могут реализовать идеи, изложенные в этой статье, наиболее приемлемым для них способом. Мы предполагаем, что реализация изложенных здесь идей будет различной в разных организациях. Порядок создания и удаления потоков отражает стиль разработки, характерный для каждой команды. Как показано на рис. 7, в начале проекта используется один поток разработки и постепенно структура потоков усложняется по мере итерационной разработки проекта. Путем удаления ставших больше ненужными потоков структура потоков может поддерживаться максимально простой. Приведенные в следующих разделах экранные изображения иллюстрируют, как приложение Rational Team Concert может создавать наглядное представление потоков, архивного рабочего пространства и их взаимосвязей. Рис. 7. Активность потоков на протяжении всего времени жизни проекта ![]() Создание структуры потока Новый проект Когда в среде Rational Team Concert создается новый проект, он имеет один поток, содержащий принимаемый по умолчанию компонент. Дополнительные компоненты могут создаваться по мере необходимости, но в контексте данного документа будет использоваться один компонент. На рис. 8 показаны поток и структура архива пользователя для нового проекта, в котором предусмотрено архивное рабочее пространство только для одного разработчика. Рис. 8. Исходная структура потоков и архивов проекта ![]() Имеется возможность визуализации потока и любых подключенных к нему рабочих пространств путем использования структурной диаграммы, как показано справа на рис. 8. Пользователи могут видеть иерархическую структуру потоков и своих архивных рабочих пространств, а вы можете показать потоки, соединенные с другими потоками. Следует помнить, что Rational Team Concert по сути имеет плоскую структуру, и информация может поставляться из любого рабочего пространства в любой поток при наличии соответствующих разрешений. (Разрешения описываются в последнем разделе статьи). Подключение к проекту новых разработчиков Новые, подключенные к проекту пользователи, могут получить доступ к файлам, чье происхождение контролируется, путем создания нового архивного рабочего пространства. Эта операция выполняется в несколько шагов: вначале выберите пункт MyRepositoryWorkspaces, показанный на рис. 8, затем выберите пункт New и затем RepositoryWorkspace. При этом на экран выводится диалоговое окно выбора, показанное на рис. 9, где можно выбрать поток, в который будут поставляться изменения ("втекать"). Общее количество потоков для проекта обычно невелико, поэтому если потокам присвоены подходящие описательные названия, то легко выбрать нужный поток. Рис. 9. Выбор потока, в который будут вноситься изменения ![]() Рис. 10. Несколько пользователей, подключенных к одному потоку ![]() Создание новых потоков Существует несколько способов создания новых потоков. Одним из простейших является использование структурной диаграммы для получения наглядного изображения взаимосвязей между потоками и архивными рабочими пространствами. При щелчке правой кнопкой мыши на потоке на экран выводится меню с различными функциями и опциями.
При выборе опции создания нового потока пользователю предлагается ввести имя потока и область пользователей в рамках проекта, которые будут иметь доступ к потоку. Если в проекте не существует никаких областей пользователей, то отображается имя проекта. Пояснение по передаче информации из потока в поток Схема связей между потоками не указывает на прямую передачу содержимого файлов из одного потока в другой. В рамках Rational Team Concert нет средства, реализующего эту возможность. Механизм передачи изменений из одного потока в другой состоит в том, что все изменения проходят через архивное рабочее пространство. Этот процесс подробно описан ниже. Однако создание показательных информационных связей между потоками дает наглядную картину того, что изменения, накопленные в одном потоке, в конечном счете будут переданы в другой поток, как составная часть процесса разработки. Для создания индикативных связей между потоками необходимо открыть окно подробностей исходного потока, как показано на рис. 11. В сценарии, представленном на рис. 2, первым создаваемым потоком будет поток "Feature Stream 1". Сразу после создания поток будет иметь то же содержимое, что и поток, из которого он был создан. Кроме того, новый поток не имеет никаких взаимосвязей с другими потоками и связанных с ним рабочих пространств. Рис. 11. Детали исходного потока ![]() Увеличенное изображение Рис. 11 Из диалогового окна для потока можно выполнить следующие функции:
Рис. 12. Конфигурация потока, показывающая индикативную передачу изменений ![]() Рис. 13. Структурная диаграмма, изображающая потоки и архивные рабочие пространства ![]()
![]() Завершение создания нового потока Рис. 15. Потоки разработки, интеграции и выпуска ![]() В левой части рис. 15 показана связанная с разработкой проекта деятельность команды , в которой два разработчика (Марк и Симон) работают с главным потоком разработки, а Адриан работает с функциональным потоком 1 (прежде Адриан работал с главным потоком разработки, а сейчас он работает над конкретными функциями в отдельном потоке). Марк и Симон интегрируют свою работу путем поставки массивов изменений в главный поток разработки, а также путем последующего приема массивов изменений из главного потока разработки. Диаграмма имеет упрощенный вид с точки зрения количества пользователей, работающих с каждым потоком. Предполагается, что Адриан и другие разработчики будут совместно работать с функциональным потоком 1, а другие разработчики будут совместно использовать функциональный поток 2. Рис. 16. Элементы потоков выпуска и исправления неполадок ![]() Поток исправления неполадок, обозначенный как "Release Stream 1.0 - E-Fix" на рис. 15, должен использоваться для максимально быстрого внесения критически важных исправлений в подготавливаемый к выпуску продукт. Под такими исправлениями не подразумевается изменение кода и его перекомпиляция; во многих случаях они применяются к конфигурационным файлам и настройкам, которые требуют немедленного обновления. Тем не менее, эти изменения передаются в отдельный поток, при этом гарантируется, что потоки выпуска не используются для работ, связанных с разработкой приложения. Изменения, связанные с устранением неполадок приложения, вероятно, также необходимо вносить в поток разработки с тем, чтобы они естественно перетекали в следующий выпуск. На рис. 4 показан массив изменений, обозначенный №7, поставляемый в поток выпуска и главный поток разработки в точке №11. Ссылки по теме |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
О нас |
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.
На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям. Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе. В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.
|
119334, г. Москва, ул. Бардина, д. 4, корп. 3 +7 (495) 229-0436 shopadmin@itshop.ru |
|
© ООО "Interface Ltd." Продаем программное обеспечение с 1990 года |