Опубликован: 15.01.2013 | Уровень: для всех | Доступ: платный
Лекция 7:

Организация командной разработки на базе Visual Studio и Team Foundation Server

< Лекция 6 || Лекция 7 || Лекция 8 >
Аннотация: Рассматриваются вопросы создания командного проекта, содержание программной инфраструктуры проекта, состав и назначение рабочих элементов, этапы разработки и тестирования кода, систему сбора информации по проекту для подготовки отчетов.

Презентацию к данной лекции Вы можете скачать здесь.

Цель лекции:

Получить представление о последовательности работ при командной разработке программного обеспечения на базе Visual Studio и Team Foundation Server.

Введение

При командной разработке программного обеспечения важными вопросами являются планирование работ, составление расписания, управление областью проекта, коммуникации, составление отчетов, анализ и постоянное совершенствование процесса[33]. Для решения этих вопросов TeamFoundationServer предлагает следующие инструменты [34]:

  • шаблон процесса, который определяет процесс, используемый командным проектом;
  • руководство по процессу, которое содержит описание шаблонов процесса;
  • коллекция командных проектов, которая представляет собой контейнер для нескольких командных проектов;
  • командный проект, который хранит и организует данные о всем жизненном цикле разработки программного обеспечения;
  • отслеживание рабочих элементов, которое позволяет отслеживать состояние рабочих элементов и другую информацию, связанную с ними;
  • портал проекта/панели мониторинга, на которых предоставляется информация по проекту для всех членов команды;
  • элементы планирования для управления списками требований как на уровне проекта, так и на уровне итерации;
  • отчетность, которая позволяет формировать отчеты в ходе жизненного цикла проекта;
  • интеграция с MicrosoftProject и MicrosoftExcel для управления проектами из среды MicrosoftOffice.

Командный проект

Разработка программного обеспечения начинается с создания командного проекта. Командный проект содержит информацию о каждом шаге жизненного цикла разработки программного обеспечения, включая требования пользователей, задачи, тестовые случаи, ошибки, препятствия, построения.

При создании командного проекта необходимо задать его имя, описание, определиться с шаблоном процесса, требованиями к системе контроля версий и необходимостью создания портала для проекта.

В результате создания командного проекта TeamFoundationServer формирует следующие папки [35]:

Моя работа папка, в которой задаются выполняемая и приостановленная работы, доступные рабочие элементы и активные запрошенные задачи анализа кода;
Ожидающие изменения папка, в которой обеспечивается возможность сохранения изменений кода в базе данных TFS и извлечения проектных решений для редактирования пользователем;
Рабочие элементы проекта папка, в которой хранятся сгруппированные данные о текущих рабочих элементах проекта;
Построения папка, в которой формируются и хранятся определения и результаты построения приложений;
Отчеты папка, в которой имеются подпапки с отчетами и ссылки на стандартные отчеты;
Документы папка, в которой хранятся документы проекта;
Параметры папка, в которой хранятся ссылки для перехода к окнам задания параметров проекта (безопасность, состав групп, система управления версиями, области и итерации рабочих элементов, параметры портала и оповещения проекта).

После создания командного проекта руководитель формирует команду. Для каждого члена команды руководитель проекта определяет доступ к проекту в целом и отдельным артефактам, которые важны для работы каждого члена команды.

Для структурирования проекта используются области и итерации. Области могут определяться исходя из определенного функционального назначения этапа работ, а итерации - в виде набора работ на заданном временном интервале.

Рабочие элементы

При планировании командного проекта ключевыми сущностями являются рабочие элементы. В зависимости от шаблона командного проекта набор и наименование рабочих элементов несколько отличаются. Так для гибкой методологии Agile рабочими элементами являются[36]:

  • Пользовательское описание функциональности (UserStory);
  • Задача (Task);
  • Ошибка (Bug);
  • Препятствие (Issue);
  • Тестовый случай.

Рабочий элемент "Пользовательское описание функциональности" представляет собой пользовательское требование, которое необходимо выполнить при реализации проекта.

Рабочий элемент "Задача" создается в проекте для назначения и выполнения работы. Задачи предоставляют детали реализации для пользовательских требований.

Рабочий элемент "Ошибка" используется для отслеживания и мониторинга проблем в программном продукте.

Рабочий элемент"Препятствие" используется для фиксации в проекте событий или объектов, которые создают проблемы в выполнении проекта и должны быть устранены в ходе текущей или будущей итерации.

Рабочий элемент "Тестовый случай" описывает условия проверки правильности выполнения программным продуктом требований пользователя.

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

При планировании командного проекта пользовательские требования записываются в Элемент невыполненная работа по продукту. Данную работу можно проводить с использованием:

  • Командного обозревателя в VisualStudio;
  • Microsoft Project;
  • Microsoft Excel.

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

Разработка программного кода

Задачи назначаются разработчикам программного кода. Разработчики проводят кодирование и модульное тестирование задач в среде VisualStudio. Разрабатываемые коды находятся под контролем системы управления версиями в хранилище кода. Работоспособные коды задач собираются в построении с помощью TeamServiceBuild и передаются в систему управления версиями на TeamFoundationServer. В процессе работы разработчик проводит извлечение (checkingout) файлов с кодами задач приложения в свою рабочую область на инструментальном компьютере. После выполнения определенного этапа работ разработчик осуществляет возврат (checkingin) в хранилище TFS кода. При возврате кода формируется набор изменений (changeset), который содержит всю информацию, связанную с возвратом (ссылки на рабочие элементы, исправления, примечания, политики и данные о владельце, дате и времени). Это дает возможность разработчикам просматривать различные версии файлов и анализировать вносимые изменения.

Тестирование

Тестировщики на основе тестовых случаев подготавливают тесты для заданных пользовательских требований. Для тестирования файлы кода извлекаются из хранилища TFS и подвергаются тестированию. В случае выявления ошибки формируется рабочий элемент Ошибка, который направляется разработчику для исправления. Если тесты проходят, то соответствующее пользовательское требование считается выполненным и для него устанавливают состояние "Готово".

Отчеты

TeamFoundationServer 2012 имеет мощную систему сбора информации по ходу проекта и подготовки отчетов. Отчеты предназначены как для руководителей проекта, так и для членов команды. Система отчетности базируется на хранилище данных TFS. Данные могут быть представлены в виде отчетов, которые позволяют просматривать метрики проекта. Система отчетов позволяет отслеживать рабочие элементы, построения, статистику системы контроля версий, результаты тестов, индикаторы качества проекта. TeamFoundationServer предоставляет набор отчетов, но имеется возможность создавать и пользовательские отчеты.

В TFS имеются три хранилища данных:

  • операционное хранилище;
  • хранилище данных;
  • OLAP-куб.

Операционное хранилище TFS представляет собой набор реляционных баз данных для хранения информации такой как исходный код, отчеты построения, результаты тестов и отслеживание рабочих элементов.

Хранилище данных TFS предназначено для выполнения запросов и создания отчетов. Хранилище данных получает данные из операционного хранилища через определенные промежутки времени. Хранилище данных концептуально построено по схеме "Звезда".

OLAP-куб TeamFoundationServer является многомерной базой данных, которая содержит агрегированные данные для подготовки аналитических отчетов. OLAP-куб получает данные из хранилища данных TFS через запланированные интервалы времени. Данные многомерной базы данных могут использоваться различными клиентскими приложениями, включая MicrosoftExcel и конструктор SQL-отчетов. TeamFoundationServerвключает два набора отчетов: отчеты MicrosoftExcelReports и отчеты службы отчетности SQLReportingServicesReports. MicrosoftExcel позволяет создавать отчеты из OLAP-куба TFS, либо используя запросы рабочих элементов проекта. Отчеты могут быть опубликованы на SharePoint-портале проекта.

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

Область проекта работы проекта, сгруппированные в соответствии с определенным функциональным назначением.
Итерация набор задач, запланированных на выполнение определенный период времени.
Шаблон процесса шаблон который определяет процесс создания ПО, используемый в командном проекте.
Руководство по процессу описание шаблонов процесса создания ПО.
Командный проект коллекция рабочих элементов, коды, тесты и построения, которые охватывают все артефакты, используемые в жизненном цикле программного проекта.
Коллекция командных проектов программный контейнер для нескольких командных проектов.
Портал проекта веб портал, на которых предоставляется информация по проекту для всех членов команды.
Операционное хранилище TFS набор реляционных баз данных для хранения информации по проекту.
Хранилище данных TFS хранилище данных, предназначенное для выполнения запросов и создания отчетов.

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

При командной разработке программного обеспечения проводится планирование работ, составление расписания, управление областью проекта, коммуникации, составление отчетов, анализ и постоянное совершенствование процесса. Командный проект содержит информацию о каждом шаге жизненного цикла разработки программного обеспечения, включая требования пользователей, задачи, тестовые случаи, ошибки, препятствия, построения. Для гибкой методологии Agile рабочими элементами являются Пользовательское описание функциональности, Задача, Ошибка, Препятствие, Тестовый случай. Разработчики проводят кодирование и модульное тестирование задач в среде VisualStudio. Тестировщики подготавливают тесты для заданных пользовательских требований. В TFS2012 имеется развитая система сбора информации по ходу проекта для подготовки отчетов. Система отчетности базируется на хранилище данных TFS.

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

Вопросы

  1. Какие инструменты имеются в TeamFoundationServer для управления командными проектами?
  2. Какие папки генерируются при создании командного проекта?
  3. Для чего используются в проекте области и итерации?
  4. Какие рабочие элементы имеются в шаблоне Agile?
  5. С помощью каких клиентских инструментов можно проводить планирование командного проекта?
  6. Поясните процесс создания кода разработчиком командного проекта в среде VisualStudio.
  7. Поясните процесс тестирования программных продуктов командного проекта.
  8. Какие хранилища данных имеются в TFS?
  9. Для чего предназначено операционное хранилище TFS?
  10. Для чего предназначено хранилище данных TFS?

Упражнения

  1. Проведите сравнительный анализ состава рабочих элементов в шаблонах MSFforCMMIProcessImprovement 6.0 и MSFforAgileSoftwareDevelopment 6.0.
  2. Проанализируйте процесс управления рисками проектов в методологии MSFforCMMIProcessImprovement 6.0.
  3. Проанализируйте процесс управления командами проектов в методологии MSFforCMMIProcessImprovement 6.0.
< Лекция 6 || Лекция 7 || Лекция 8 >
кайрат мухтаров
кайрат мухтаров
Мария Морозова
Мария Морозова

Здравствуйте!

В диалоговом окне Добавить Team Foundation Server введите имя или URL-адрес сервера TFS. Ввожу как в инструкции localhost, выдает ошибку, что невозможно соединиться с сервером. Что делать? Никакого администратора нет, что вводить?

Лариса Кравченко
Лариса Кравченко
Украина
Бохонько Евгений
Бохонько Евгений
Украина, ХМ