Возможности Visual Studio 2013 и их использование для облачных вычислений

Командная разработка проектов в Visual Studio 2013

Показывать лекцию целиком

Цель лекции

Ознакомление с Team Foundation Server - инструментом командной разработки приложений в Visual Studio.

9.1. Введение. Методы коллективной командной разработки программ

Коллективная (командная) разработка программ до сих пор остается одной из самых сложных проблем современной программной инженерии.

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

  • излишний оптимизм программистов в предварительной оценке сроков разработки;
  • психологические особенности некоторых программистов (в том числе очень сильных профессионально), их излишняя самоуверенность и ранимость и неспособность работать в команде;
  • неудачная организация информации при разработке проекта; в частности, неразбериха с рабочими версиями файлов исходных кодов и проекта в целом. Мне приходилось наблюдать за работой другой команды, причем достаточно квалифицированных программистов, в которой они использовали порядка 10-12 (!) дисков с разными версиями проекта, постоянно забывая о том, кто из них какие изменения в какую рабочую версию внес, и тратя часы на "разборы полетов";
  • неудачный менеджмент проекта (руководство проектом): неадекватное распределение заданий, плохой контроль сроков и качества разработки и многое другое.
  • В связи с этим очевидно, что необходимы не только методы оптимальной организации команды проекта, но и соответствующие инструменты, которые эти методы поддерживают.

    Известны и используются следующие методы организации коллективной разработки [24]:

  • метод бригады главного программиста (Ф.П. Брукс)
  • гибкие методы разработки программ (agile methodologies), в том числе - Extreme Programming, Scrum и др.
  • Capability Maturity Model (CMM / CMMI) разработки Carnegie-Mellon University, Software Engineering Institute
  • Security Development Lifecycle (SDLC) - жизненный цикл разработки безопасных программ (Microsoft), важная часть Microsoft Trustworthy Computing Initiative.
  • Перечисленные методы подробно описаны в моем курсе [24].

    9.2. Поддержка коллективной разработки программ в Visual Studio 2013. Team Foundation Server (TFS) и его инсталляция

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

    Основной инструмент для этой цели - Team Foundation Server (TFS), который объединяет в себе систему управления исходным кодом проекта и систему управления командой программистов (выбор метода разработки, выдача заданий членам команды и проверка результатов их выполнения, поддержка различных этапов жизненного цикла и т.д.).

    Team Foundation Server не инсталлируется по умолчанию с версией Visual Studio. Он является отдельным продуктом, хотя и интегрируется с Visual Studio, и поэтому требует отдельной инсталляции с сайта [25]. Инсталляция, вместе со скачиванием с сайта, требует на компьютере среднего класса порядка 2-3 часов, объем скачиваемой информации - порядка 300 мегабайт. При этом специальным образом конфигурируется Internet Information Server и инсталлируется СУБД SQL Server Express, используемые при работе TFS.

    Инструмент TFS рассматривается в данной лекции.

    Другим недавно выпущенным продуктом Microsoft для поддержки командной разработки проектов является облачный продукт - Visual Studio Online [26]. Он предоставляет функциональность, аналогичную TFS, но его преимущество в том, что, как и всякое облачное ПО, он не требует дополнительных инсталляций и используется через Web-браузер. Продукт Visual Studio Online рассматривается в следующих лекциях данного курса.

    9.3. Администрирование Team Foundation Server с помощью административной консоли

    Основное окно Team Foundation Server Administration Console изображено на рис 9.1.

    (рис 9.1) Основное окно Team Foundation Server Administration Console

    Административная консоль TFS позволяет выполнить конфигурирование командных проектов. Возможно администрирование следующих компонент и сервисов:

  • Application Tier (уровень приложений) - конфигурирование Team Project Collections (коллекций командных проектов) и Lab Management (управления лабораторией по разработке и тестированию проектов)

    GUI для конфигурирование уровня приложений изображено на рис 9.2.

    (рис 9.2) GUI для конфигурирования уровня приложений TFS
  • . Для целей данного курса я инсталлировал и сконфигурировал TFS и все его компоненты на одном компьютере - Saraswati, работающем под управлением Windows 8. (рис 9.3) GUI для конфигурирования сервиса для сборки проектов
  • . Области (точки) сохранения могут понадобиться при необходимости восстановления баз данных после сбоев. В рассматриваемом примере эти области не сконфигурированы. (рис 9.4) GUI для конфигурирования областей сохранения баз данных, используемых в проекте
  • . (рис 9.5) GUI для управления протоколами конфигурирования
  • . (рис 9.6) GUI для конфигурирования дополнительных инструментов и компонент
  • Административная консоль TFS, скорее всего, понадобится Вам вначале, после инсталляции TFS, когда инсталлятор предлагает выполнить конфигурирование, - но в любой момент она может быть вызвана вновь при необходимости.

    9.4. Начало работы с TFS: Обращение к Team Explorer и его настройка

    Связь между Visual Studio 2013 и Team Foundation Server осуществляется с помощью компоненты VS 2013, называемой Team Explorer (Обозреватель команды).

    Для запуска Team Explorer необходимо выбрать в главном меню VS 2013 пункт ).

    (рис 9.7) Запуск Team Explorer из VS 2013

    Вызванный Team Explorer отображается в виде вкладки справа (рис 9.8).

    (рис 9.8) Вкладка Team Explorer

    На вкладке пункт Select Team Projects служит для выбора Team Foundation Server, доступного на Вашем компьютере. Как уже объяснялось, имеется два способа управления командными проектами - с помощью собственно TFS, инсталлированного на локальной машине, и с помощью его облачного аналога - Visual Studio Online. То есть, можно использовать либо локальный, либо облачный вариант TFS. Выбор между этими вариантами позволяет осуществить пункт Team Explorer / Select Team Projects.

    Другой пункт вкладки Team Explorer, расположенный чуть ниже, - Team Foundation Service. Sign Up - служит для входа в Вашу учетную запись облачной службы Visual Studio Online.

    Еще ниже расположенные пункты под общим заголовком Local Git Repositories предназначены для управления репозиториями популярной системы управления версиями исходных кодов Git, если они созданы на Вашем локальном компьютере. Team Foundation Server обеспечивает интеграцию Вашего командного проекта с системой Git.

    Выберем теперь локальный ). Из рисунка видно, что доступно два варианта TFS - локальный и облачный. Выбираем локальный (идентифицируемый именем локального компьютера - Saraswati).

    (рис 9.9) Выбор локального TFS с помощью пункта Select Team Projects

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

    (рис 9.10) Настройка Team Explorer на локальный TFS

    После входа на TFS Team Explorer предлагает сконфигурировать рабочее пространство исходных кодов (рис 9.11).

    (рис 9.11) Вход на локальный TFS выполнен. Необходимо сконфигурировать рабочее пространство исходных кодов

    После выбора пункта ):

    (рис 9.12) Конфигурирование рабочего пространства исходных кодов

    Создание рабочего пространства осуществляется нажатием кнопки ).

    (рис 9.13) Рабочее пространство исходных кодов создано

    9.5. Создание командного проекта

    Для создания командного проекта в VS 2013 служит пункт ).

    (рис 9.14) Создание командного проекта в TFS: Окно для задания имени и краткого описания проекта

    Вводим имя командного проекта test и описание test team project и нажимаем Next.

    Открывается следующее окно - выбор шаблона для процесса разработки проекта (рис 9.15).

    (рис 9.15) Выбор шаблона процесса для командного проекта

    Предлагаются следующие шаблоны для современных схем процессов разработки программ:

  • Microsoft Visual Studio Scrum 2013.2
  • MSF for Agile Software Development 2013.2
  • MSF for CMMI Process Improvement 2013.2.
  • Выбираем первый (заданный по умолчанию) и нажимаем Next.

    Открывается следующее окно - для выбора системы управления исходным кодом проекта. Предлагаются два варианта - ).

    (рис 9.16) Выбор системы управления версиями исходных кодов командного проекта

    Выбираем вариант ).

    (рис 9.17) Окно для подтверждения настроек командного проекта

    Нажимаем Finish.

    Начинается создание командного проекта. Но, к сожалению, оно заканчивается неудачно: плагин ). По-видимому, это системная ошибка, которая будет исправлена.

    (рис 9.18) Неудачное завершение создания командного проекта

    Таким образом, наш эксперимент по созданию командного проекта в TFS в этой версии (TFS 2013, Update 2) заканчивается неудачей. Надеюсь, что эта ошибка будет вскоре исправлена. Если сравнить развитие VS 2013 с бурным развитием платформы Microsoft Azure, то в этом можно не сомневаться. Эксперименты по выбору других вариантов при создании командного проекта приводят к тому же результату. Возможно, что дело в том, что использовалась версия Visual Studio 2013, выпущенная в октябре 2013 г., а версия TFS - более новая (TFS 2013 Update 2, май 2014 г.).

    9.6. Резюме

    Коллективная разработка программ до сих пор остается серьезной проблемой в силу ряда объективных причин. Наиболее современные методы организации командной разработки - Scrum, Agile Development, CMMI. Новая версия Visual Studio 2013 является большим шагом вперед в части поддержки командной разработки программ. Для этого используется отдельно инсталлируемый, интегрируемый с VS 2013 продукт - Team Foundation Server 2013. Все перечисленные методы организации процесса разработки в ней поддержаны. Реализована концепция командного проекта, которая позволяет осуществить все этапы жизненного цикла и контролировать их выполнение. Для связи VS 2013 с TFS 2013 используется вкладка Team Explorer. Возможен выбор между использованием локально инсталлированного Team Foundation Server и его новейшего облачного аналога - Visual Studio Online. К сожалению, не все элементы процесса создания командного проекта в TFS полностью отлажены, но, надеюсь, это произойдет в ближайших новых версиях.

    Ключевые термины

    Бригада главного программиста - классический метод организации командной разработки программ Ф.П. Брукса (IBM).
    Командная разработка программы - процесс выполнения жизненного цикла разработки программы командой проекта.
    Agile development - современная схема организации процесса гибкой разработки программ, с кратковременными этапами и анализом результата в конце каждого этапа.
    CMMI - современный метод командной разработки программ на основе тщательно разработанных количественных критериев оценки работы каждого члена команды и специальных программных инструментов для этой цели.
    Security Development Lifecycle - современный метод организации процесса разработки безопасных программ (Microsoft).
    Scrum - одна из современных схем организации процесса гибкой разработки программ, с кратковременными этапами и анализом результата в конце каждого этапа, относящаяся к группе методов agile development.
    Team Foundation Server - инструмент для организации командной разработки проектов в Visual Studio.
    Visual Studio Online - новый облачный инструмент для организации командной разработки проектов в Visual Studio.

    Краткие итоги

    Командная разработка программ до сих пор остается серьезной проблемой в силу ряда объективных причин. Наиболее современные методы организации командной разработки - Scrum, Agile Development, CMMI. Новая версия Visual Studio 2013 является большим шагом вперед в части поддержки командной разработки программ. Для этого используется отдельно инсталлируемый, интегрируемый с VS 2013 продукт - Team Foundation Server 2013. Все перечисленные методы организации процесса разработки в ней поддержаны. Реализована концепция командного проекта, которая позволяет осуществить все этапы жизненного цикла и контролировать их выполнение. Для связи VS 2013 с TFS 2013 используется вкладка Team Explorer. Возможен выбор между использованием локально инсталлированного Team Foundation Server и его новейшего облачного аналога - Visual Studio Online. К сожалению, не все элементы процесса создания командного проекта в TFS полностью отлажены, но, надеюсь, это произойдет в ближайших новых версиях.

    Набор для практики

    Вопросы

  • Что такое командная разработка программ?
  • Какие проблемы возникают при командной разработке программ?
  • Какие методы организации командной разработки программ Вам известны?
  • Что такое Scrum?
  • Что такое CMMI?
  • Что такое Agile development?
  • Что такое Team Foundation Server?
  • Что такое Visual Studio Online?
  • Какие системы управления версиями используются в Visual Studio?
  • Упражнения

  • Скачайте и инсталлируйте Team Foundation Server 2013.
  • Сконфигурируйте TFS с помощью Team Foundation Server Administration Console.
  • Создайте новую коллекцию командных проектов.
  • Попробуйте создать новый командный проект и проанализируйте результат.
  • Темы для курсовых работ, рефератов, эссе

  • Методы и проблемы командной разработки программ (реферат).
  • Поддержка командной разработки программ в VS 2013 (реферат).
  • Team Foundation Server (реферат).
  • Visual Studio Online (реферат).
  • Дополнительные материалы, презентации

    Презентация к данной лекции: VS_2013_Course_9.pptx.

    Вернуться к учебному плану