© Джейсон Воукс (Jason Vokes),
Управляющий европейского направления выпуска Delphi
© Корпорация Borland Software
© Переведено БНТП по заказу Interface Ltd.
На сегодняшний день сфера разработки коммерческого программного обеспечения не является полем игры для одиночных игроков. Практически полностью эта деятельность является командной. Разработка одиночными программистами приложений, способных найти применение в бизнесе, считается потенциально очень рискованным делом. Иногда проекты просто имеют слишком крупные масштабы, чтобы один разработчик был в состоянии создать решение, соответствующее потребностям данного бизнеса.
Таким образом, эта задача больше подходит командам, состоящим из талантливых дизайнеров, разработчиков и тестировщиков, которые объединяют свои усилия с целью создания лучшего решения в кратчайшие сроки. При этом они должны быть уверены в том, что созданный продукт отвечает требованиям данного бизнеса, в соответствии с которыми он и разрабатывался. Кроме того, важным фактором является то, что в настоящее время команды, как правило, территориально распределены - отдельные участники команды или ее части работают в различных офисах, городах и даже находятся в разных часовых поясах. Проблема управления такой командой может стать самым большим препятствием на пути к созданию успешного проекта, так как в этом случае руководство сопряжено со сложностями в обеспечении связи, доведении требований и управлении задачами. Все это увеличивает нагрузку и на руководителей проектов, и на разработчиков.
Эффект, который все эти проблемы могут произвести на достижение успеха в процессе разработки программного обеспечения, был признан компанией Borland, и за несколько лет в программные продукты, поставляемые Borland, были встроены расширенные возможности управления жизненным циклом программного продукта (ПП). В процессе создания ПП очень важна уверенность в надежной и постоянной совместной работе команды, а также обеспечение эффективной связи между членами команды и высокой степени защищенности имеющихся наработок.
В настоящем издании концентрируется внимание на возможностях обеспечения совместной работы, интегрированных в программную среду Borland Delphi 2005. Вместе с программой Borland Delphi 2005 (версии Enterprise и Architect) в коробке поставляется полная версия StarTeam 6 Standard Edition. Далее в тексте будет рассматриваться именно эта версия. В документе рассматриваются основные этапы и операции, связанные с использованием StarTeam в процессе разработки программного обеспечения. Кроме того, на примере возможного сценария будет рассмотрен вопрос управления данным процессом. Существуют версии StarTeam и более высокого уровня, и стоит заметить, что расширенные возможности, такие, например, как планирование задач, интегрируются в среду разработки и становятся доступными из запущенной версии StarTeam.
С помощью простого примера будут продемонстрированы некоторые ключевые операции при использовании StarTeam в Delphi 2005. На Рис. 1 представлен вид экрана с запущенной интегрированной средой разработки Delphi 2005, в которую загружено приложение Fishfact. Это приложение, представляющее собой простую базу данных Win32, будет рассматриваться в качестве примера на протяжении всего описания.
Рис. 1: Приложение Fishfact, загруженное в среду разработки Delphi 2005
Проверить работу программы можно нажатием клавиши F9, которая запустит процесс компиляции, компоновки и запуска демонстрационного приложения. При работе в любой версии приложения может понадобиться сохранить данный проект с помощью системы управления исходным кодом. Поскольку приложение StarTeam 6.0 теперь тесно интегрировано с Delphi 2005, то получить доступ к возможностям StarTeam можно без труда, выбрав пункт StarTeam в главном меню Delphi 2005. Более подробно меню представлено на Рис. 2.
Рис. 2: Выбор StarTeam в главном меню Delphi 2005
Как и все остальные меню в интегрированной среде разработки Delphi 2005, данное меню является контекстно-зависимым, поэтому пользователю доступны только активные в данный момент пункты:
Пункт меню |
Описание |
Pull (Извлечь) | Данный пункт меню позволяет извлекать отдельные проектные группы, проекты или файлы из папок сервера StarTeam и помещать их в локальную папку для просмотра и изменения содержимого. |
Manage Associations (Управление ассоциированными объектами) | Позволяет пользователю ассоциировать собственный проект с папками в StarTeam или изменять существующие ассоциации. |
Place Project (Поместить проект) | Позволяет помещать существующий проект с ассоциированными файлами в StarTeam. |
Personal Options (Персональные настройки) | Позволяет конфигурировать способ выделения новых/модифицированных запросов на изменение, разделов описания, задач и требований. Кроме того, могут быть изменены настройки способов выгрузки, блокирования и слияния файлов. |
На этом этапе имеется проект, над которым идет работа (приложение Fishfact) и которое необходимо поместить в StarTeam для сохранения и обеспечения доступа к нему для всех участников команды. Для этого используется пункт Place Project. После выбора пункта Place Project в меню, как это показано на Рис. 2, на экране появляется диалоговое окно StarTeam с полями для заполнения (Рис. 3). Важно иметь в виду необходимость введения при входе в StarTeam имени пользователя и пароля, которые были заданы при помощи инструментария StarTeam Server. Имя нового проекта задается после нажатия кнопки New (Рис. 3).
Рис. 3: Размещение проекта в StarTeam
После введения данных необходимо нажать кнопку OK. Теперь можно ввести описание проекта либо добавить собственный файл (Рис. 4).
Рис. 4: Диалоговое окно Add Files (добавление файлов)
Кроме того, пользователь может задать степень блокировки (Lock Status) зарегистрированного проекта в соответствии с приведенной ниже таблицей:
Степень блокировки |
Описание |
Unlocked (открытый) | Говорит о том, что пользователь не планирует вносить изменения, и открыл проект для работы участников команды. |
Exclusive (ограниченный) | Говорит о том, что пользователь собирается вносить изменения в эти файлы и предотвращает загрузку этих файлов другими пользователями. Если другой пользователь не сломает блокировку, никто другой не сможет создать новую версию блокированного файла в репозитории до снятия блокировки тем, кто ее установил. |
Non-Exclusive (неограниченный) | Говорит о том, что пользователь работает с файлами и собирается вносить изменения, но другие пользователи также могут видоизменять эти файлы и загружать новые. |
Пользователь может связывать и закреплять элементы процесса за отдельными запросами на изменение, ожидающими выполнения в проекте и данной регистрации (check-in). Но на данном этапе никакие запросы на изменение для данного проекта в StarTeam не устанавливаются. При использовании опций связывания и закрепления можно задать, что данная регистрация разрешает одиночный запрос на изменение из проекта. Пользователь может пометить данный запрос как Fixed(установлен) /Finished(завершен)/Complete(выполнен). Это можно сделать, выбрав соответствующий вариант в диалоговом окне меток, которое становится доступным пользователю.
Наконец, может быть установлена метка Revision(пересмотр). Данная метка может быть полезна для идентификации тех версий файлов, которые в настоящее время загружены в качестве группы. Пользователь может либо выбрать какую-либо из существующих меток, либо набрать ее самостоятельно. Метка также может пригодиться, если пользователь планирует восстановить эти файлы в качестве группы позже, или если ему понадобится конкретная версия любого из файлов.
При нажатии кнопки OK в диалоговом окне AddFiles, файлы будут добавлены в StarTeam, а пользователь увидит окно сообщения, похожее на то, что показано на Рис. 5.
Рис. 5: Файлы проекта, загруженные в созданный StarTeam проект
Теперь, когда проект помещен в среду StarTeam, доступ к нему и управление открыты участникам команды, работающим над проектом. Пользователь может продолжать работу над проектом и фиксировать внесенные изменения после завершения задачи, используя опцию StarTeam | Commit в главном меню. Если в проект были добавлены новые файлы, пользователю откроется диалоговое окно Add Files (Рис. 4). Оно открывается для каждого добавленного пользователем или другим участником команды файла.
Для того чтобы быть уверенным в наличии последней версии проекта перед началом работы над следующей задачей, пользователь может использовать опцию StarTeam | Update в главном меню. StarTeam обновит исходные файлы проекта и файл проекта пользователя, заменив их самыми последними версиями из репозитория. Если какие-либо файлы были добавлены или удалены из проекта, версия пользователя будет обновлена в соответствии с этими изменениями. При наличии в проекте слитых файлов StarTeam спросит пользователя, желает ли он произвести слияние своих файлов.
Для того чтобы максимально избежать несоответствий в файлах, StarTeam предлагает пользователю при необходимости обновить имеющиеся версии файлов. При попытке внести файл, не основанный на последней версии, StarTeam спросит пользователя о необходимости слияния двух его версий. Таким образом, пользователь предупреждается о возможных конфликтах и обеспечивается средствами, для того, чтобы их разрешить.
Теперь, когда проект надежно сохранен в StarTeam, пользователи получают возможность управлять версиями файлов (как файлов исходного кода, так и всеми остальными), запросами на изменение и темами, ассоциированными с проектом. В данном разделе мы познакомимся с некоторыми способами облегчить управление проектами, которые предоставляет интегрированный в StarTeam клиент Delphi 2005.
На Рис. 6 можно увидеть окно StarTeam Client, которое появляется при выборе пункта StarTeam | View Client из главного меню Delphi 2005. Оно позволяет просмотреть файлы проекта, включая статус каждого файла. Если после последнего сохранения над файлом кто-либо работал, тогда в колонке статуса на этой странице будет стоять отметка Modified (изменен).
Рис. 6: Встроенный в Delphi 2005 клиент StarTeam
Пользователю может понадобиться заблокировать файлы, в которые он собирается внести изменения. Это можно сделать, используя меню, появляющееся при нажатии правой кнопки мыши. При этом StarTeam отобразит имя пользователя, заблокировавшего файл. На Рис. 7 видно как могут быть сгруппированы модифицированные файлы.
Рис. 7: Наглядное отображение файлов, которые были блокированы и модифицированы
Диалоговое окно Set My Lock Status (установить степень блокировки) (Рис. 8) используется для установки степени блокировки отдельных файлов и групп выбранных файлов.
Рис. 8: Установка степени блокировки выбранных файлов
Когда члены команды разработчиков вносят изменения в код программы, может возникнуть необходимость в сравнении версий файлов. Такая возможность предусмотрена в Delphi 2005 (Рис. 9) и называется Visual Diff. Доступ к ней открывается при выборе пункта Compare Contents (сравнить содержимое) в меню, которое открывается нажатием правой кнопки мыши (Рис. 7). Кроме того, пользователь имеет возможность задать отображение количества строк, которые были добавлены, удалены или заменены (Рис. 9).
Рис. 9: Легкость визуального сопоставления с использованием Visual Diff
StarTeam обеспечивает возможность слияния сравниваемых файлов. Сделать это можно с помощью кнопки, отмеченной красным кружком на Рис. 9. После ее нажатия пользователю необходимо ввести расположение и имя файла, в котором будет сохранено объединенное содержимое файлов.
Delphi 2005 представляет возможность просмотра истории локальных файлов и управления версиями как стандартную возможность в интегрированной среде разработки. После установки и начала работы со средой StarTeam пользователь не только получает новую возможность сопоставления файлов, как это показано на Рис. 9, но и существующая страница History (История) в среде разработки становится более функциональной. Страница History теперь обеспечивает более полную информацию о файле, показывая номера версий, даты регистрации и авторов созданных версий.
Закладки нижнего окна зависят от состояния выбранного в верхнем окне элемента. Одна из главных задач заключается в том, чтобы дать пользователю как можно больше сведений о выбранном файле. На Рис. 6 можно увидеть информацию, предоставленную в области описания. Другие закладки, такие как History, могут быть использованы для получения полной истории данной версии файла, включая имя пользователя, внесшего изменения и комментарии, которые были добавлены. На Рис. 10 показан формат, в котором на странице History отображается информация об одном файле. Кроме того, можно увидеть дополнительное меню, открывающее пользователю возможность выгрузить любую из версий в истории файла, подробно рассмотреть свойства или даже просмотреть содержимое файла. Также пользователь может использовать Visual Diff для визуального сопоставления различных версий файлов и даже редактировать комментарии, созданные при загрузке файла.
Рис. 10: Окно History отображающее историю версий файла
Как видно на Рис. 10, в окне имеются и другие закладки: закладка Label, назначение которой уже было описано, закладка Links представляющая список элементов, с которыми связан выделенный файл (например, папка, разделы описания и запросы на изменение). Пользователь может создавать связи между выбранными элементами используя дополнительное меню и опцию Links. Наконец, закладка Reference позволяет увидеть ссылки выделенного элемента. Папка или элемент могут быть ассоциированы более чем с одним проектом, представлением или папкой, а страница References предоставляет возможность их увидеть.
Возможность осуществления запросов на изменение позволяет обеспечить формализированное управление либо недоработками, либо требованиями. Использование запросов на изменение позволяет наглядно убедиться в том, что использование StarTeam на самом деле позволяет помочь в управлении проектами по разработке программного обеспечения.
В документации приведено описание нескольких этапов имеющих место между созданием и закрытием запроса на изменение в StarTeam. Каждый шаг или этап показан на Рис. 11. Существует очень маленькая вероятность того, что один и тот же пользователь сможет изменить статус каждого этапа данного процесса.
Рис. 11: Структура процесса запроса на изменение в StarTeam
Рассмотрим вкратце, что происходит, так как понимание этого процесса позволит сделать более осмысленным дальнейший разговор об интерфейсе пользователя.
Submit (Создание запроса): На данном этапе разработчик, тестировщик или любой из членов команды может создать новый запрос на изменение. Для этого необходимо коротко описать функцию, которая предлагается, либо объяснить возникшую проблему и привести способ решения задачи. StarTeam предоставляет возможность сделать подробное описание.
Assign (Назначение): После того, как запрос на изменение был создан, кто-либо из участников команды, обычно не тот, кто его открыл, изучает запрос, и решает, будет ли команда заниматься добавлением предлагаемой функции или разрешением возникшей трудности. Решение заключается в том, чтобы оставить запрос на изменение открытым (то есть для немедленной работы) или отсроченным до тех пор, пока решение не изменится. Кроме того, можно присвоить запросу статус дубликата - на случай, если содержание данного запроса уже было введено в другой. При установке запроса на изменение в открытое состояние, он отправляется кому-нибудь из команды для закрепления, исполнения или решения.
Resolve/Build (Решение/формирование): Когда член команды, которому был передан запрос на изменение, начинает работу над ним, запросу присваивается статус In progress (исполняется в настоящий момент). После этого этапа разработчик установит одно из состояний: fixed (закреплен), documented (задокументирован) или cannot reproduce (не может быть воспроизведен). В зависимости от размеров команды и масштабов проекта, разработчик может включить решение о запросе на изменение в структуру проекта или перенести его включение в структуру до начала следующего формального этапа.
Verify (Проверка): Запрос на изменение должен быть проверен до того, как будет закрыт. Обычно контроль осуществляется тестировщиком или инженером по контролю качества. Статусы, которые могут быть заданы после этого этапа, следующие: verified as designed (проверен как созданный), verified cannot reproduce (проверен, не подлежит воспроизведению), verified documented (проверен, задокументирован), verified fixed (проверен, зафиксирован) или verified duplicate (проверен, дубликат).
Close (Закрытие): Наконец, другому члену команды может понадобиться выполнить дальнейшие задания перед закрытием запроса на изменение. Такие действия, как добавление модифицированных элементов к документации для окончательной версии (релиза) выполняются до установки запроса на изменение в закрытое состояние.
На Рис. 12 показана страница детальной информации нового запроса на изменение на этапе создания запроса.
Рис. 12: Интерфейс пользователя при представлении запроса на изменение
После сохранения запроса на изменение, он будет введен в виде строки в таблицу запросов на изменение в главном окне StarTeam для того, чтобы остальные члены команды могли его видеть и предпринимать соответствующие действия. Детальное рассмотрение всех этапов процесса не является целью данного документа, но на Рис. 13 можно увидеть, что состояние было изменено на открытое (то есть кто-то принял запрос на изменение), оно автоматически было соотнесено с номером запроса на изменение и именем разработчика (в данном случае, с именем автора).
Рис. 13: Интерфейс пользователя на этапе Assign запроса на изменение
Теперь можно увидеть, как процесс представленный на Рис. 11 функционирует в интегрированной среде разработки. В любой момент времени может быть запущено любое количество запросов на изменение. Внешний вид списка запросов представлен на Рис. 14. Обратите внимание на иконки, которые позволяют легко различать запросы, находящиеся на разных этапах обработки, а также типы этих запросов.
Рис. 14: Отображение запросов на изменение в таблице StarTeam
При работе над проектами любых масштабов может создаваться огромное количество запросов на изменение. Для облегчения процесса управления список запросов может быть отфильтрован несколькими способами. Эта возможность доступна через выпадающее меню (Рис. 14). Предусмотрено еще несколько характерных деталей, позволяющих экономить время, например, всплывающие подсказки по описанию при наведении курсора мыши на поле краткого описания в строке запроса на изменение. Это позволяет пользователю просмотреть информацию о запросе без необходимости его открытия.
За дополнительной информацией обращайтесь в компанию Interface Ltd.
INTERFACE Ltd. |
|