U ovoj lekciji ćemo obrađivati:
Razvoj softvera danas predstavlja timsku aktivnost više nego ikada ranije. Kada se govori o softverskim timovima, prva stvar koja se razmatra je sama ideja projekta, učešća više osoba na istom zadatku koji treba kompletirati. Projekat spaja pojedince koji imaju iste ciljeve i koje treba postići u definisano vreme.
Team Foundation Server (TFS) je Microsoftov proizvod za upravljanje kodom, prikupljanje podataka, izveštavanje i praćenje projekta i namenjen je za razvoj zajedničkih softverskih projekata, tj. Projekta na kome učestvuje više ljudi. Na raspolaganju bilo kao samostalni softver ili kao serverska podrška i platforma za Visual Studio Team System (VSTS).
Team Foundation Server pruža potpuno prilagodljiv način za definisanje svih podataka koji se odnose na timski projekat i snimanje tih informacija putem odgovarajuće metodologije. Kada se stvara novi timski projekat, Team Foundation Server koristi informacije izabrane metodologije da automatski konfiguriše timski projekat. Sa Team Foundation Server- om, može se brzo kreirati novi timski projekat bez utroška sati ili dana podešavanja funkcionalnosti rada sa različitim alatima i različitim tehnikama.
Timski projekat ima centralno mesto u svemu što pruža Team Foundation Server. Timski projekat “izlazi na površinu” na nekoliko načina, pre svega unutar Visual Studio-a, preko Team Explorer-a i Team Project Web stranice (na osnovu Windows SharePoint Services).
U ovoj lekciji će biti dat pregled funkcionalnosti Team Foundation Server-a koje će u narednim lekcijama biti šire obrađene.
Team Foundation Server radi preko troslojne arhitekture (eng. Three-tier Architecture):
Klijentski sloj se koristi za kreiranje i upravljanje projektima kao i pristup stavkama koje su snimljene i pripremljene za projekat. TFS ne uključuje korisnički Interface za ovaj sloj, već ga predstavlja kao Web servis koji klijentove aplikacije mogu koristiti kako bi integrisali funkcionalnost TFS-a sa svojim potrebama. Ove web servise koriste aplikacije kao što je Visual Studio Team System.
Web serivisi se nalaze u aplikativnom sloju. Aplikativni sloj takođe uključuje web portal i skladište dokumenta putem Windows SharePoint Service-a. Web portal, nazvan Team Project Portal, deluje kao središnje mesto komunikacije za projekte kojima upravlja TFS. Skladište dokumenta se koristi za čuvanje projektnih podataka i praćenje revizije kao i za sakupljene podatke i kreiranje izveštaja.
Na sledećoj slici je predstavljena šema arhitekture TFS-a:
Sloj podataka (eng. Data Layer) je u suštini jedan instalirani SQL Server 2005 Standard Edition koji pruža stalne usluge skladištenja podataka u skladištu dokumenata. Sloj podataka i aplikativni sloj se mogu nalaziti na različitim fizičkim ili virtualnim serverima, ali pod uslovom da se pokreću preko Windows Server 2003 ili novijeg. Važno je uočiti da sloj podataka nije izložen ka klijentskom sloju. Prema njemu je izložen samo aplikativni sloj.
Većina aktivnosti u Team Foundation Server-u je predstavljena preko pojma radnih zadataka ili radnih stavki (eng. Work items). Radni zadaci predstavljaju jednu jedinicu rada koja treba da bude završena. Radni zadaci se mogu sastojati od nekoliko različitih tipova, kao što je Bug, zadatak, procena kvaliteta usluge (eng. Quality of Service Assessment), scenario, itd.
Izabrani okvir za bilo koji dati projekat u Team Foundation Server-u definiše koji tipovi radnih stavki su dostupni i koje atribute svaki tip sadrži. Ove stavke su interno pohranjene u XML formatu, a njihove šeme mogu biti prilagođene za dodavanje drugih atributa na različite stavke ili kreiranje novih stavki na osnovu projekta. Svaka radna stavka je povezana sa kontrolnom polisom koja nadgleda ko ima dozvoljen pristup ili mogućnost za promenu podataka. Ona takođe uključuje obaveštavanje i log funkcionalnosti kako bi prijavila svaki novi rad, pristup ili promenu, a opcionalno šalje obaveštenja određenim korisnicima, kada dođe do novih promena.
Bilo koji Team Foundation Server sadrži jedan ili više timskih projekata (eng. Team Projects) koji se sastoje od Visual Studio rešenja, konfiguracione datoteke za Team Build i Team Load Test Agents i jednog SharePoint skladišta koje sadrži relevantne dokumente za projekt. Tim projekat sadrži korisnički definisane radne stavke, izvorne grane i izveštaje kojima se upravlja uz pomoć TFS-a. TFS pruža mogućnosti za upravljanje ovim projektima.
Prilikom izrade projekta, okvir razvoja softvera (eng. Software Development Framework) mora biti izabran i ne može se menjati nakon toga. TFS uključuje nekoliko šablona za one najčešće korišćene, uključujući agilnu i formalnu metodologiju razvoja. Odabir okvira projekta daje projektu predefinisane stavke poput projektne uloge i dozvola kao i ostale dokumente kao što su projektna mapa puta, dokument šabloni i definicije izveštaja.
Stanja pojedinih elemenata projekta mogu se podesiti da se automatski ažuriraju kada se ažuriraju radne stavke. TFS se može integrisati sa Microsoft Excel-om za kreiranje i praćenje projektnih stavki. Status stavke može biti kreiran i uređen u Excelu, a rezultirajući tabelarni dokument se potom uvozi u TFS, koji će uneti podatke u svoj projekt menadžment. Takođe, on se može integrisati sa Microsoft Project-om. Projektne stavke se takođe mogu eksportovati kao Excel dokument za dalju analizu podataka.
TFS ne uključuje uobičajeni korisnički Interface za obavljanje tih poslova. Mogućnosti su dostupne putem Web servisa koji se potom koristi pomoću klijent aplikacija kao što je Visual Studio Team System. Međutim, TFS uključuje Team Foundation Client (TFC) aplikaciju koja se može koristiti za obavljanje tih zadataka izvan Visual Studio Team System-a. TFC takođe radi po sistemu poziva istog Web servisa.
Team Foundation Server obezbeđuje skladište za kontrolu izvornog koda (eng.Source Control Repository) koji se zove Team Foundation Version Control (TFVC). Za razliku od prethodne Microsoftove kontrole izvornog koda, Visual SourceSafe-a (VSS) koji se oslanjao na skladišni mehanizam zasnovan na fajlovima, Team Foundation kontrola izvornog koda smešta sve kodove kao i evidenciju o svim promenama i aktuelne rezervacije (eng. Check-outs) u SQL server bazi podataka. Podržava funkcije poput višestrukih simultanih rezervacija (eng.Check-outs), rešavanje konflikta i sposobnost za postavljanje nivoa sigurnosti za bilo koji nivo u izvornom kodu.
Mehanizam kontrole izvornog koda se integriše sa Team System radnim stavkama. Kada se pojavi Check-in (nazvan "Changeset"), programer koji radi na razvijanju može odlučiti da preuzme njegov kod povezan s jednom ili više specifičnih radnih stavki kako bi ukazali na to da Check-in radi u cilju rešavanju specifičnog problema. TFS administratori mogu zahtevati da Check-in pravila zahtevaju analizu koda (eng. Code Analysis) kao i jačanje veze Check-in-a sa radnim stavkama ili ažuriranje stanja povezanih radnih stavki (kao što je Bug označen zastavicom kao ispravljen, kada se radi Check-in koda koji ima ispravljen Bug).
Individualnim verzijama datoteka mogu se dodeliti oznake (eng. Labels) tako da sve datoteke sa istom oznakom predstavljaju određene grupe.
TFVC podržava grananje celog nivoa izvornog koda kao i na nivou pojedinačnih datoteka i direktorijuma gde se svaka grana održava individualno. Višestruke grane mogu biti spojene zajedno, sa ugrađenim algoritmom rezolucije konflikata spajajući promene između dve grane iste datoteke, gde se mogu automatski “pomiriti” razlike ili ih u suprotnom označavati za manuelnu inspekciju. Spajanje se može obaviti na "Changeset" nivou, umesto na nivou grane. Uspešno spajanje se automatski proverava u skladištu kontrole izvora.
Svi dokumenti u skladištu kontrole izvora, mogu biti povezani sa bilo kojim radnim stavkama, a pristup do njih može biti kontrolisan definisanjem prava pristupa.
Izveštavanje je još jedna značajna komponenta Team Foundation Server-a. Korišćenjem kombinovanih podataka za radne zadatke, informacije koje je obezbedio Team Build i rezultate iz Test Agents-a, mogu biti kreirani različiti izveštaji. Na primer, stopa promene koda sa vremenom, liste Bug-ova koji nemaju test slučajeve (eng. Test Cases), vraćenje (regresija) na prethodno pređene testove, itd... Izveštaji su dobijeni korišćenjem SQL Server Reporting Services-a, a mogu se prevesti u više različitih formata, uključujući Excel, XML, PDF, i TIFF. Izveštajima se može pristupiti preko Visual Studio-a, kao i putem Web portala.
TFS koristi i automatizovano prikupljanje podataka. Njegova infrastruktura prati i snima informacije prema pristupu i korišćenju radnih zadataka i izvornog koda, koji se zatim mogu koristiti u analizi za pronalazak trendova. TFS uključuje i još jedan mehanizam u sloju podataka koji kešira podatke iz baze podataka u obliku pogodnom za analizu, pre svega tabela i dimenzija tabela. SQL Server Analysis Services se tada koristi za analizu ovih podataka i kreiranje izveštaja. Izveštaji mogu obuhvatati više radnih zadataka, uključujući Bug trendove, podešavanja koda i dr.
Reference