Опубликован: 12.03.2009 | Уровень: для всех | Доступ: платный | ВУЗ: Санкт-Петербургский государственный университет
Лекция 12:

Обзор технологии Microsoft Visual Studio Team System (VSTS)

< Лекция 11 || Лекция 12 || Лекция 13 >
Аннотация: Состав продукта: обзор, клиентская часть VSTS, серверная часть VSTS. Правила инсталляции. Пакет Team Explorer.
Ключевые слова: опыт, программное обеспечение, разработка программного обеспечения, человеческий фактор, ПО, истина, корпорация, Visual Studio, team, system, участник команды, базис, жизненный цикл, e-work, item, работ, bug-fix, risk, менеджер проекта, управление проектом, fixed, контроль версий, сборка, интеграция, офисные приложения, project, excel, word, z-отчет, интерфейс, Web-сервис, роль в проекте, права, программный продукт, X-клиент, suite, edition, explore, client, API, среда разработки, сайт, foundation, server, build, agent, share, point, COM-порт, SQL, хранение данных, серверное приложение, сервер, timing, editing, слово, средства визуального моделирования, генератор, наследование, объект базы данных, модульность, эволюция, синтаксис, интегрированность, Нагрузочное тестирование, microsoft visual studio, ядро, core, роли разработчиков, архитектор, базовая конфигурация, целостная система, объединение, архитектура, прямоугольник, браузер, администрирование, инициация, ASP.NET, IIS, Internet, serviceability, доступ, single-ended, deploy, dual, кластеризация, Microsoft SQL Server, сеть, домен, Active Directory, развертывание, .NET Framework, утилита, компилятор, очередь, системный сервис, Windows, связь, базовая, инфраструктура, развертка, Microsoft Windows, Windows Server, SharePoint, дерево, информация, менеджеры, меню, операции

Обзор

Анализируя собственный опыт разработки программного обеспечения, а также опыт других компаний, специалисты Microsoft пришли к выводу, что существенная часть проблем, возникающих при разработке программного обеспечения, вызвана "человеческим фактором" – взаимодействием различных специалистов в рамках одной команды. Это люди разного возраста, разного образования, разных жизненных принципов и интересов, решающие различные задачи и преследующие различные цели (хотя одна общая цель у них все же есть – сделать в конечном итоге качественное ПО), вынужденные работать вместе волею судьбы или начальства. Не удивительно, что при их взаимодействии часто возникают накладки и недопонимания, а истинно слаженные и эффективные команды встречаются не так часто, как хотелось бы. Для решения этой задачи корпорацией Microsoft предлагается комплекс Visual Studio Team System (VSTS), который обеспечивает следующее.

  • "Навязывание" процесса разработки. Инструменты VSTS позволяют задать процесс, который используется в проекте (то есть создать конкретный процесс, пользуясь нашей терминологией), и тем самым ограничить действия участников команды.
  • Доступное описание процесса. VSTS предполагает доступное описание процесса разработки.
  • Единая среда разработки – комплекс инструментов, поддерживающих все этапы процесса разработки ПО и применяемый всеми участниками команды, создавая не только единую интегрированную среду разработки, но и единую культурную среду, общий базис для всех участников команды.

Ядром VSTS является средства обеспечения жизненного цикла элементов работы (work items) – некоторых дискретных характеристик проекта, вокруг которых организуется вся работа команды (см. рис. 12.1). Вот примеры элементов работ:

  • task – конкретная задача, которую необходимо выполнить в проекте;
  • bug – ошибка, которая найдена, ждет своего исправления, исправляется, заново проверяется;
  • risk – риск проекта, у которого тоже может быть разное состояние; как правило, за рисками их состояниями следят менеджеры проектов.

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

Кроме поддержки жизненного цикла элементов работы в VSTS входят дополнительные средства – контроля версий, поддержки сборки, средства интеграции с офисными приложениями (Project, Excel, Word), генераторы различных отчетов, средства тестирования и нек. др. Кроме того, через открытый программный интерфейс VSTS можно надстраивать и другим сервисами, необходимыми в процессе разработки. На рис… эти возможные сервисы представлены пустыми кубиками, подобно алтарям неизвестным богам в одном древнем святилище.

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

Состав продукта

Обзор. Теперь посмотрим на VSTS как на программный продукт. Он является сложным, составным продуктом и разделяется на клиентское ПО и серверное ПО – см. рис. 12.2.

Архитектура VSTS

Рис. 12.2. Архитектура VSTS

Рассмотрим подробнее клиентскую часть. Стандартным клиентом от компании Microsoft является продукт Visual Studio Team Suite Edition. Этот продукт является одной из редакций среды разработки Visual Studio c дополнительным продуктом – Team Explorer. Последний служит для доступа к сервисам серверной части VSTS и встраивается в Visual Studio. Кроме того, благодаря открытому программному интерфейсу к серверной части VSTS – библиотеки TFS Client API – она интегрируется с различными средами разработки, например, с Eclipse. Также существует значительное количество различных клиентских продуктов от сторонних производителей (наиболее успешные из которых Microsoft пытается ассимилировать)1Более подробную информацию о различных расширениях и дополнениях к TFS можно получить на следующих сайтах: http://blogs.msdn.com/mrod/archive/2008/04/28/external-team-foundation-servertools.aspx, http://teamsystemrocks.com. .

Серверная часть VSTS состоит из TFS (Team Foundation Server) – главной серверной компоненты, – а также компоненты Build Agent. TFS реализует главную функциональность серверной части и использует два других серверных продукта Microsoft – Share Point (для организации Web-портала с описанием используемого шаблона процесса разработки, других документов по процессу) и SQL Server (для хранения данных TFS). Build Agent – это серверная компонента, которая отвечает за выполнение сборок проектов. Вынесение сервера сборки в отдельное серверное приложение позволяет убрать процесс сборки с основной, серверной машины, где размещен TFS, на дополнительную машину, отвечающую именно за проведение сборок. Подобное разделение позволяет значительно снизить нагрузку на основной сервер, особенно в случае использования подхода непрерывной интеграции2Выделение Build Agent из TFS является run-time взглядом. Структурно, как продукт, TFS включает в себя серверные средства сборки. .

Остановимся на клиентской и серверной частях VSTS более подробно.

Клиентская часть VSTS. Остановимся на стандартном клиентском ПО, основанном на среде разработки Visual Studio. Последняя выпускается в нескольких комплектациях (editions), ориентированных на разных пользователей. При этом издания, включающие инструменты комплекса VSTS имеют в своем названии слово "Team". Вот перечень этих изданий.

  • Microsoft Visual Studio Team System 2008 Architecture Edition расширен средствами управления повторным использованием, средствами визуального моделирования с генераторами конечного кода и нек. др. возможностями.
  • Microsoft Visual Studio Team System 2008 Development Edition предоставление средств анализа кода с целью повышения его качества, в частности, выявление сложного, трудного в обслуживании путем оценки отношений между классами, глубины наследования, цикломатической сложности, строк кода и индекса удобства обслуживания. Сюда же входят различные средства профиляции приложений.
  • Microsoft Visual Studio Team System 2008 Database Edition включает в себя средства управление версиями всех основных объектов баз данных, модульного тестированиея баз данных, средства поддержки эволюции схем, поддержка синтаксиса SQL и многое другое.
  • Microsoft Visual Studio Team System 2008 Test Edition предоставляет полный набор средств тестирования Web-приложений и Web-сервисов, интегрированный в среду Visual Studio. С помощью данных средств тестеровщики могут создавать, выполнять и управлять тестами и связанными с ними элементами работ VSTS непосредственно из среды Visual Studio. В это же издание входят средства нагрузочного тестирования, управления тестовыми пакетами и другие возможности.

Помимо четырех "ролевых" изданий, выпускается и издание, объединяющее функции всех четырех блоков – Microsoft Visual Studio Team System 2008 Team Suite. Условно взаимосвязь различных изданий отражена на рис. 12.3.

Схема Microsoft Visual Studio Team System 2008 Team Suite

Рис. 12.3. Схема Microsoft Visual Studio Team System 2008 Team Suite

Каждое их четырех "ролевых" изданий серии VSTS расширяет ядро (Team Edition Core) дополнительными инструментами, предназначенными для определенной роли (разработчик, тестер, архитектор или специалист по базам данных), а издание Team Suite является объединением всех четырех "ролевых" изданий.

Ядро состоит из базовой конфигурации Visual StudioVisual Studio Professional,– которая является наиболее распространенным изданием среды Visual Studio и повсеместно используется для разработки программного обеспечения. Она дополняется Team Explorer, предназначенным для интеграции с TFS.

Серверная часть VSTS. Итак, ядром комплекса инструментов VSTS является TFS, который не является целостной системой, а представляет из себя набор стандартных продуктов (в частности, SQL Server и Share Point), соответствующим образом настроенных и объединенных в единое целое посредством прослойки Web-сервисов. Архитектура серверной части VSTS представлена на рис. 12.4, где серыми прямоугольниками показаны компоненты VSTS, а белыми – компоненты других продуктов Microsoft. На этом же рисунке схематично обозначена и клиентская часть VSTS.

Архитектура серверной части VSTS

увеличить изображение
Рис. 12.4. Архитектура серверной части VSTS

TFS, основная серверная подсистема VSTS, состоит из двух основных уровней: уровня приложений и уровня данных. Уровень приложений TFS включает в себя следующие компоненты.

  • SQL Server Analysis & Reporting – компонента пакета SQL Server, используемая TFS для построения отчетов анализа статуса проектов. Доступ к этой компоненте с клиентской стороны осуществляется не через компоненту TFS Client API, а напрямую, средствами Web-браузера.
  • SharePoint Services – компоненты из пакета Share Point, используется для хранения общедоступной информации и описания используемого процесса разработки. Доступ к этой компоненте с клиентской стороны осуществляется не через TFS Client API, а напрямую, средствами Web-браузера.
  • Share Point Extensions for TFS – расширение Share Point для TFS, которое обеспечивает доступ к отчетам и некоторым функция TFS непосредственно с Web-портала.
  • Team Foundation Server – главная компонента TFS, которая состоит из набора Web-сервисов, доступных через TFS Client API клиентскому ПО и реализующих основные сервисные функции TFS, в частности:
    • версионный контроль,
    • управление элементами работы,
    • работам с шаблонами процесса,
    • администрирование и т.д.
  • Team Foundation Build Service в составе TFS – предназначена для инициации процесса сборки и передачи соответствующего задания компоненте Build Agent. Другой экземпляр этого приложения находится в Build Agent и выполняет там системные функции.

Уровень приложений реализован на технологии ASP.NET и работает под управлением IIS (Internet Infromation Service). IIS является Web-сервером, то есть средой для работы Web-сервисов TFS, обеспечивая доступ к функциональности сервера VSTS со стороны его клиентов.

Уровень данных состоит из набора баз данных, где TFS хранит свои данные. Он реализован на основе продуктов MS SQL Server и Share Point.

В зависимости от размера компании-разработчика ПО и предполагаемой нагрузки эти два уровня TFS могут быть установлены на одном сервере (single-server deployment) или на двух разных серверах (dual-server deployment). Для очень больших компаний возможно использование механизмов кластеризации, встроенных в Microsoft SQL Server и Internet Information Server3Подобная распределенная архитектура накладывает серьезное ограничение на схему развертывания TFS – нормальной его работы можно добиться только в сети с доменом Active Directory. Использование TFS в других условиях возможно, но сопряжено с дополнительной существенной нагрузкой по развертыванию и администрированию. .

Build Agent – еще одна серверная подсистема VSTS. Как уже говорилось выше, она предназначается для выполнения сборки проектов. Выполнение сборки проекта происходит средствами пакета .NET Framework, с помощью стандартной утилиты этого пакета MSBuild, которая, получив задание на сборку, вызывает соответствующий компилятор из .NET Framework. Этот же механизм используется и для сборки проекта, запущенной из Visual Studio.

В случае Build Agent выполнение сборки происходит по следующему сценарию. Компонента TFS Build Service в составе TFS cообщает такой же компоненте на компьютере, где расположен Build Agent, что надо запустить выполнение сборки. А та, в свою очередь, являясь системным сервисом и будучи запущенной, оказывается тем процессом Windows, в рамках которого и будет происходит выполнение сборки под управлением компоненты MSBuild. При этом всю связь с TFS для выполнения сценария сборки осуществляет компонента Custom tasks. В сценарии сборки указывается, откуда нужно брать исходные тексты собираемого приложения, откуда брать регрессионные тесты и как их запускать, как создавать отчеты по результатам сборок и т.д.

Правила инсталляции

Клиентская часть устанавливается легко, либо как расширению существующей установки Visual Studio, либо на чистую машину (в этом случае базовая инфраструктура Visual Studio будет установлена автоматически). Основная работа при установке VSTS – развертка серверной части, то есть TFS. В версии 2008-го года установка TFS значительно улучшена и упрощена по сравнению с версией 2005-го года, однако, требования на программное окружение по-прежнему достаточно жесткие:

  • Microsoft Windows Server 2003 или 2008.
  • Microsoft SQL Server 2005 или 20084Установку SQL сервера необходимо производить строго в соответствии с инструкцией для TFS. .
  • Internet Information Server 6 (для Windows Server 2003) или 7 (для Windows Server 2008).
  • Active Directory Domain 5.0 или 2003 (TFS не работает с доменом 4.0). Важно отметить, что нормальное использование TFS вне домена наладить достаточно сложно – для этого приходится использовать технологию VPN или Web-клиента, что ведет к существенному увеличению затрат на администрирования и накладных расходов при работе.
  • SharePoint Server 3.0 или Microsoft Office SharePoint Server 2007. При обновлении с TFS 2005 можно остаться на Windows SharePoint Server 2.0.

Пакет Team Explorer

Данный пакет является самым распространенным клиентским приложением VSTS. Он встраивается в среду Visual Studio в виде плавающего окна, а также ряда диалоговых окон и окон-документов. Его внешний вид представлен на рис. 12.5.

Внешний вид Team Explorer

Рис. 12.5. Внешний вид Team Explorer

Основное дерево Team Explorer содержит:

  • список доступных TFS-серверов, (1); каждый такой сервер является экземпляром серверной части Team System и, как правило, располагается на отдельном компьютере5Исключение – это когда инсталляция TFS является кластерной и развертывается на нескольких компьютерах. ;
  • список доступных проектов для каждого из подключенных серверов (2);
  • панели инструментов инструментального окна для того, чтобы подключить/добавить в TFS новый проект (3).

Для каждого из проектов в дереве Team Explorer отображается следующая информация.

  • Список элементов работы (Work Items) проекта, то есть всех тех дискретных элементов работы в проекте, которые создают менеджеры и другие участники проекта для того, чтобы ни о чем не забыть, а также для коммуникации друг с другом.
  • Список доступных документов (Documents). В этом списке отображаются документы, хранящиеся на портале проекта. Как, правило, это нормативные или вспомогательные документы, не требующие хранения в системе контроля версий.
  • Список доступных отчетов (Reports). В этом списке представлены доступные для проекта отчеты. Результат выполнения отчета открывается в отдельном окне документе.
  • Список сборок (Builds) проекта – описаний и результатов.
  • Система контроля версий (Source Control). Позволяет получить доступ к версионному репозиторию с основными артефактами проекта (открывается в отдельном окне-документе).

Кроме того, через контекстные меню в дереве проектов можно выполнять следующие операции:

  • создать новый проект или подключится к существующему;
  • поменять настройки сервера или проекта;
  • создать/удалить/изменить запрос на элементы работы;
  • создать/удалить/изменить отчет;
  • создать/удалить/изменить/запустить процесс сборки;
  • создать/изменить/удалить документ;
  • подписаться на определенные оповещения или отменить подписку.
< Лекция 11 || Лекция 12 || Лекция 13 >
Илья Макаренко
Илья Макаренко

Добрый день.

Вопрос №1

Какова стоимость получения диплома о мини-МБА по данному курсу? Или ориентироваться на указанную на сайте?

Вопрос №2

Возможно ли начать обучение без потери результатов, не отправив документы на зачисление, а отправку выполнить позже?

Саян Жанболатулы
Саян Жанболатулы

Надо сделать скрины результатов тестов, а они не открываются

Илья Фитисов
Илья Фитисов
Россия, Орск
Big Al
Big Al
Россия