TFS

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене
Team Foundation Server
Информация
Разработчик Microsoft
Последна версия Visual Studio Team Foundation Server 2012 (TFS)
Програмен език C#, C++, Visual Basic, JavaScript, F#, Python, Java(към Eclipse)
Операционна система Microsoft Windows
Вид софтуер Управление на версии
Лиценз Microsoft CAL
Уебсайт Team Foundation Service

Team Foundation Server (често съкращаван, като TFS) е продукт на Microsoft, който поддържа услугата Team Foundation Service и предлага система за контрол над изходния код и неговите версии, събиране на информация, отчитане на извършената работа и следене на процеса на развитие на проект. Предназначен е за съвместна работа по разработка на софтуерни продукти и е достъпен, както като самостоятелен софтуер, така и като сървърна платформа към Visual Studio Application Lifecycle Management.

Предназначение[редактиране | edit source]

Има две основни предназначения на TFS.

  1. Работа по разработката вътре в екипа: предоставя съвкупност от функции, които могат да се използват от различните членове, като им дава възможност да работят заедно с по-голяма ефективност.
  2. Връзка с клиентите: клиентите и партньорите могат да персонализират елементите на TFS, както и да го разширяват с нови функционалности. Разширенията могат да варират в голям обхват, като например от промяна на поле в даден работен елемент, до вграждане на изцяло нов инструмент.

Основни компоненти[редактиране | edit source]

Основните компоненти, свързани с груповата работа по разработката на проекта в TFS, са следните:

* Контрол на версиите (Version control)– за управление на сорс кода и подобни работни продукти, които изискват поддръжка на история за различни версии;
* История на работни елементи (Work item tracking) – за пазене на история на елементи от работния процес, като дефекти, изисквания, задачи и сценарии;
* Функции за управление на проекти (Project management functions) – позволяват изготвянето на групов проект, базиран на дефинирано от потребителя софтуерно поведение. Също така те дават възможност да се планира и следи развитието чрез Microsoft Excel и Microsoft Project;
* Изграждане на работа в екип (Team build) – за създаване на общ екипен процес по изготвяне на работещ продукт;
* Събиране на информация и отчет ( Data collection and reporting ) – подпомага оценката на състоянието на груповия проект, базирана на информацията събрана от TFS инструментите;
* Портал на груповия проект (Team Project Portal) – предоставя централна точка за комуникация между екипа в рамките на Microsoft Windows SharePoint Services сайт;
* Team Foundation Shared Services – предоставят голям брой от елементи на вътрешната структура, които са невидими за крайните потребители, но важни за разработчиците на инструменти и разширения;

Архитектура и начин на работа[редактиране | edit source]

Архитектурата на TFS е трислойна, като съдържа потребителски слой(client tier), слой за приложения (application tier) и информационен

Aрхитектура на TFS

слой(data tier). Потребителският слой служи за създаване и ръководене на проекти и достъпване до елементи, които са нужни за проекта и трябва да се съхраняват. TFS не съдържа конкретен потребителски интерфейс за този си слой, като предоставя уеб услуги, които могат да се използват от приложенията, за да интегрират функционалностите на TFS заедно със себе си. Тези услуги се използват и от Visual Studio Team System,която използва TFS, като слой за съхранение на информацията или пък други такива предназначени за управление на приложения като Team Foundation Client.

Уеб услугите се намират в слоя за приложения. Той също включва уеб портал и хранилище за документите, поддържано от Windows SharePoint Services. Този портал, наречен Team Project Portal, играе роля на централна точка за обмен на информация относно проектите ръководени от TFS. Хранилището се използва както за елементи на проекта и промените извършени по него, така и цялата съвкупност от информация и генерирани отчети. Информационният слой, който в основата си съдържа инсталация на SQL Server 2005 Standard Edition, дава възможност за използване на устойчиви услуги за съхранение на данни в хранилището. Информационният слой и този за приложенията могат да съществуват на различни физически, както и виртуални сървъри, стига те да работят на Windows Server 2003 или по-нови версии. Клиентският слой единствено използва този за приложенията, като не може да достъпва и вижда информационния.

Разработка на проекти в TFS[редактиране | edit source]

По-голямата част от работата в TFS се извършва около „работен елемент“. Това е релативна „единица“ от работата, която трябва да се изпълни. В много аспекти тя прилича на софтуерен проблем (бъг) в системите за следене на грешки и проблеми, например Bugzillа. Съдържа информация за обсег на единицата, повторение, което се очаква от нея, кой я е поставил като задача, кой се е отчел че ще я свърши или че я е дефинирал като такава, история, файлови допълнения към нея и т.н. Работните елемети от своя страна могат да бъдат много видове, като основните са Проблеми (бъгове), Задачи, Оценка на качеството на услугата и Планове за работа. Платформата избрана за работа върху даден проект в TFS дефинира какъв тип работни елементи трябва да са в наличност и какви допълнения трябва да съдържа всяка „работна единица“. Тези данни са вътрешно съхранявани в XML формат, и техният план може да се персонализира, така че да се добавят нови допълнения към различните елементи или да се създадат нови такива вътре в проекта. Всяка работна единица е свързана с контрол върху достъпа, като се указва изрично кой има достъп и може да променя различните части. Също така тя включва информация и история за всички промени, като създаване на нови елементи, промени на разрешенията за достъп, промени по проекта и предоставяне на възможност за уведомяване на определени потребители при настъпване на предварително дефинирани събития.

Всеки TF сървър може да съдържа един или повече групови проекти, които съдържат съответно: съвкупности от Visual Studio проекти, конфигурационни файлове и хранилище, съдържащо документи отнасящи се към съответния проект. Този проект съдържа предварително дефинирани работни единици, клонове по разработката и съобщения, които трябва да се обработят от TFS. При създаването на нов проект се избира разработваща платформа, като тя не може да бъде променяна след това. Състоянието на опеределени елементи на проекта могат да бъдат настроени автоматично да се обновяват при промяна на работните единици. TFS може да работи заедно с Microsoft Excel за създаване и следене на процеса на разработка на проектните единици. Състоянието на елементите може да се дефинира в Excel, като резултатния документ може да се качи на TFS, което ще предизвика добавяне на информацията към функционалностите му насочени към проектния мениджмънт. Освен с Microsoft Excel, TFS може да се интегрира и с Microsoft Project в помощ на ръководителя на проекта (мениджъра проект) по фронт енда. Елементите на проекта също могат и да се изведат като Excel документи за по-нататъшен анализ на информацията.

TFS не предоставя вграден потребителски интерфейс за извършване на тези задачи. Тези възможности се предоставят чрез уеб услуги, които се използват от клиентски приложения като интегрираната среда за разработка Visual Studio Team System. Въпреки това, TFS съдържа приложението Team Foundation Client (TFC), което може да се използва за извършване на тези дейности извън Visual Studio Team System. TFS предотавя и потребителски приложно-програмен интерфейс, който може да бъде използван от външни приложения, които да достъпват функционалностите на TFS. Този интерфейс сам конфигурира прокситата, за да комуникира с уеб услугите, както и сам изготвя кеширането в потребителската част, като по този начин намаля забавянето. Достъпни са също и описания на уеб услугите в WSDL вид, в случай че приложението иска директно да се свърже с уеб услугите. Visual Studio Team System Web Access е също в наличност като допълнение към софтуера, като може да се използва за с напълно аналогични цели.

Инструменти[редактиране | edit source]

Чрез използване на набор от инструменти във Visual Studio 2012 и чрез комбинирането им с Visual Studio Team Foundation сървъра могат да се въведат изпитани практики, чрез които да се ръководи цялостния процес на разработка на приложението: от конкретизация на нуждите на потребителя, през дизайн, архитектура и имплементиране на кода до крайно въвеждане в експлоатация. Тези инструменти могат да бъдат използвани за дефиниране на изисквания на кода, който вече е бил качен, както и за следене на различните тестови резултати. Според това, каква цел екипът иска да постигне, тези инструменти могат да се групират по следния начин:

Група Предназначение
Планиране и следене на развитието на проекти За комуникацията с клиентите; Проследяват се всички важни етапи от разработката на проекта, както и подпомага установяване на изпълнението на всяко клиентско изискване.
Моделиране на приложението За дизайн на функционалности, както върху вече съществуващи допълнения, така и изграждане на такива изцяло, използвайки архитектурни диаграми, за да се разпространи информацията с голяма важност вътре в екипа, разработващ софтуера
Подобряване на качеството с Visual Studio Diagnostic Tools (чрез използване на Version Control и Team Explorer Everywhere – Visual Studio 2010 и нагоре) За разработка: от писане на код, unit тестове, тестване като цяло, дебъгване, анализиране до профилиране на приложението, използвайки приложения, които са интегрирани заедно с останалата част на средата и TFS.
Изграждане на приложението Изграждане на приложението чрез вградената „build” система, така че да може да се следи качеството на всеки етап и изпълнението на всяко клиентско изискване при всяко надграждане.
Тестване на приложението За изготвяне и извъшване на „ръчни“ или автоматизирани тестове, включително тестове за производителност и натоварване.
Симулация на лабораторни условия За симулиране на лабораторни условия, на които да се извършват тестовете. Тези тестове могат да се извършат, както на физически, така и на виртуални машини. Виртуалните машини могат да работят на всяка среда за виртуализация, която се поддържа от System Center Virtual Machine Manager (SCVMM).
Използване на лабораторни условия за симулиране на целия жизнен цикъл на приложението За влагане на приложението във виртуална среда, което дава възможност за по-прецизна разработка и тестване.

Контрол на изходния код[редактиране | edit source]

TFS използва репозитарно (съхраняващо) управление на изходния код, наричано още Team Foundation Version Control (TFVC). За разлика от предишни решения на Microsoft за контрол на кода, Visual SourceSafe (VSS), което се основава на режима за съхранение на файлове, Team Foundation съхранява целия код, а също и запис на всички негови изменения в базата данни под управлението на SQL Server. Поддържат се и такива възможности, като например едновременно блокиране на множество от дялове за промяна (поддържа едновременната работа на двама души по един и същи код), предотвратяване и решаване на конфликти, забавяне на въведените изменения и въвеждането им след анализ и потвърждение(от англ. shelving) (тук се има предвид запазване на направените изменения по кода до получаване на потвърждение от системата за контрол на версиите, след което промените ще бъдат видими и за другите редактори на документа), разделяне на кода на "клони" и сливане, а също така възможност за установяване и на нива на достъп) на всяко ниво по структурата на кода, блокировки, откази и операции за микроизменения и потвърждения (atomic commits). Начинът за контрол на изходния код е директно свързан с работните елементи на Team System; При потвърждаване на измененията (от англ. check-in) (така наречения набор за изменения (changeset)) разработчикът може да определи като преразгледа и анализира връзката на неговия код с други работни елементи след което да потвърди промяната(check-in). Администраторите на TFS могат допълнително да укажат политиката на потвърждение (check-in policies), като предвидят нужните изисквания за Code Analysis, а освен това може да се вмъкне задължително указване на работните елементи, свързани с потвърждението или обновяването на статуса на работните елементи (като например, показване на грешки като поправени при внасяне на измененията в кода). Някои версии на файлове могат да бъдат отбелязвани със специални отметки, а всички файлове с отметки образуват release-група. За разлика от VSS, начинът на съхранение на кода в TFS не включва едновременната работа с файл от повече от един потребител а също и съхранение на файловете в различни техни версии. TFVC поддържа разклоняване на кода на всички нива, а също така и за отделните файлове и папки. Няколко клона могат да бъдат обединени в едно след указване на реда и разрешаване на конфликтите при сливането на двете разклонения в едно, за което може да бъде указан алгоритъм и то да се извърши автоматично като, ако не се справи сама събира останалите конфликти за ръчна обработка. Възможностите на TFVC на са ограничени само в контрола на исходния код. С помощта на вградените инфраструктури Windows Share Point Services той поддържа библиотека на версиите на документите в проекта, включително план на проекта, изисквания и др.Всички библиотеки в репозитарния контрол на кода могат да се свързват с всеки работен елемент, а достъпът за изменения към него може да бъде контролиран чрез политиката на достъпа.

Отчитане (Reporting)[редактиране | edit source]

Reporting — още един основен компонент на Team Foundation Server. С негова помощ могат да бъдат създавани отчети на базата на информацията за работните елементи и техните изменения. Тези функционалности са предоставени от Team Build, и резултатите от тестовете на Test Agents. Например, нивото на изменение на кода за даден времеви интервал, списъци от грешки, повторение на по-рано проведени тестове и др. Отчети, създадени с помощта на SQL Server Reporting Services, както и възможност за създаване в съответните отчети в наколко формата , включително Excel, XML, PDF и TIFF. Отчетите са достъпни както чрез Visual Studio, така и чрез съответните за другите формати приложения. TFS използва собствена среда за пазене на промени и за автоматично събиране на данни. "Log"(от англ. история на промените) инфраструктурата съхранява и записва информацията, касаеща достъпа и използването на работните елементи и изходния код, която след това може да се използва за анализ на трендовете. TFS на ниво данни съдържа адаптер на натрупаните, кеширани бази данни в удобна за анализ форма — таблици и др. След това за анализа на тези данни се използва SQL Server Reporting Services и се създават отчети. Отчетите могат да обхванат няколко работни елемента, включително и основните видове грешки, изменението на кода и др. Други аналитични приложения също могат да бъдат използват директно предоставяни чрез директно предоставените уеб услуги.

Team Foundation Service[редактиране | edit source]

TFS предлага и услугата Team Foundation Service, която предоставя на разработчиците безплатно лично пространство и хранилище в облачна среда за качване и контрол на кода. Тази услуга е разработена и контролирана от Microsoft. За екип от по-малко или точно 5 души използването на тази услуга е напълно безплатно, като Microsoft предлагат и платени планове за по-големи екипи и проекти. Всеки може да се регистрира като разработчик и да използва функционалностите на тази услуга. За работа в екип се създава проект и се добавят регистрирани в услугата членове към него. Тя предлага и възможност за задаване на задачи към всеки един от екипа, както и контрол над техните възможности за опериране върху кода. Работата се извършва по метода Scrum, като се поставят задачи за всеки спринт от процеса на работа и може да се проследи кой по какъв начин и дали въобще е свършил зададената му задача. Допълнително услугата предлага и контрол на бъговете (bug tracking) и възможност за тяхното докладване към останалите от екипа.

Източници[редактиране | edit source]

Външни препратки[редактиране | edit source]