Edytuj stronę Odnośniki Fold/unfold all ODT export Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić. ~~SLIDESHOW thesis~~ ====== MS Team Fundation Server + CodePlex ====== ===== Application lifecycle Management (ALM) ===== **Dlaczego ALM ? ** * praca zespołowa, łatwe zarządzanie zespołem, dodawanie nowych członków * organizacja projektu, przepływ informacji w zespole * kontrola kodu, ograniczenie błędów * dbałość o jakość produktu * zwiększenie produktywności * większa szansa sukcesu, ograniczenie kosztów ===== Team Fundation Server ===== Systeem do zarządzania projektami programistycznymi. * zarządzanie projektami (różne schematy: Agile, kaskadowy,...) - process templates * serwer kontroli wersji (Team Foundation Version Control, Git, SVNBridge) * wspiera zarządzanie pracą w zespole * wspiera koordynowanie budowania aplikacji na różne platformy * rozbudowany system raportów * automatyzacja: build, testy (kodu, aplikacji), środowisko uruchomieniowe, raporty, powiadomienia, deployment... * zarządzanie wymaganiami, kosztami, ocena ryzyka * współpraca z innymi produktami MS Project, Web Acces, ... Rdzeń systemu zarządzania cyklem życia aplikacji (application lifecycle management – ALM). ===== TFS ===== {{:zajecia:npr:vstscake.png?800|}} ===== Team Fundation Server ===== {{zajecia:ppz:vs-2010-overview.jpg?1000}} ===== TFS instalacja i wymagania ===== * [[http://msdn.microsoft.com/pl-pl/library/team-foundation-server-2010--instalacja.aspx|Instalacja MSDN]] \\ {{:zajecia:npr:tfs-requirements.jpeg?800|}} ===== TFS skalowanie ===== {{:zajecia:npr:tfs-skalowanie.jpeg?800|}} ===== TFS wersje ===== * TFS 2012/2013 RC * DreamSpark * wersje trial * TFS Expres 2012/2013 - darmowa dla zespołów do 5 osób * [[http://tfs.visualstudio.com/|Team Fundation Service]] TFS w chmurze (Azure), darmowa dla zespołów do 5 osób * CodePlex ===== TFS dostęp ===== * VisualStudio * Test Manager (testowanie aplikacji) * MS Project - zarządzanie projektem i zadaniami (m. kaskadowa), analiza ryzyka * Excel - zarządzanie zadaniami * Office - wymiana dokumentów * WebAcces * PowerPoint (od TFS 2013), storyboard (analiza wymagań), moźliwośc połączenia z zadaniami * Team Explorer Everywere: wtyczka Eclipse + klient konsolowy (także Linux) ===== Metodologie Projektowania - Scrum ===== * jedna z najbardziej znanych metodyk zwinnych (Agile) : [[http://agilemanifesto.org/iso/pl/|Manifesto for Agile Software Development]] * metoda przyrostowa : produkt powstaje w kolejnych iteracjach * sprawny (ale niekompletny) produkt już po pierwszej iteracji * sprawna kontrola nad przebiegiem prac (narzędzia TFS) * wczesne wykrywanie problemów * zespoły 7+-2 * **kontrola czasu** - czynność musi być zakończona w określonym czasie * Zespół ma charakter samoorganizujący ===== Scrum - role i zdarzenia ===== * product owner - odpowiada za projekt przed klientem * scrum master - odpowiedzialny za proces wytwarzania, organizację pracy, podział ról * team members * sprint - iteracja: planowanie, realizacja, podsumowanie * planowanie sprintu () - wybór zadań, czas realizacji zadań z góry ustalony, lista zadań nie powinna się zmieniać w czasie iteracji * codzienny scrum: spotkanie 15 min. na stojąco prowadzone przez scrum master * przegląd: podsumowanie na zakończenie sprintu, retrospektywa sprintu * product backlog - rejestr produktu, odpowiedzialny właściciel * sprint backlog - lista zadań w sprincie, odpowidzialny master i zespół * effort - wskaźnik postępu ukończenia kolejnych funkcjonalności ===== Scrum ===== {{http://upload.wikimedia.org/wikipedia/commons/thumb/5/58/Scrum_process.svg/1000px-Scrum_process.svg.png?700}} ===== Issue Tracker - cykl życia ===== Typowy cykl życia zgłoszenia: * osoba posiadająca uprawnienia do raportowania wprowadza informację o błędzie * osoba lub system określa osobę, której dotyczy błąd i generowane jest powiadomienie \\ (jabber, email i inne kanały komunikacji), * osoba, która otrzymała powiadomienie, akceptuje go do poprawy lub deleguje ten błąd do innej osoby, * osoba odpowiedzialna kończy pracę nad błędem na jeden z kilku sposobów – informując, że błąd został poprawiony, odłożony w czasie, nie jest możliwy do poprawy czy, że zgłoszenie błędu było niepoprawne, * jeśli błąd usunięto, osoba odpowiednio uprawiona osoba weryfikuje, czy błąd faktycznie został usunięty i zwykle zgłoszenie błędu jest zamykane. * po ostatecznym rozwiązaniu problemu (np. po opublikowaniu albo instalacji u klienta wersji pozbawionej błędu) błąd jest zamykany. ===== Typowy cykl życia ===== {{http://trac.edgewall.org/chrome/common/guide/basic-workflow.png}}\\ //Żródło:// http://trac.edgewall.org/chrome/common/guide/basic-workflow.png [[http://trac.edgewall.org/wiki/WorkFlow/Examples|Inne przykłady]] ===== TFS - WorkItem ===== * task, bug, issue, user story, test case, ... * połączenia między zadaniami: hierarchiczne lub płaskie * każdy typ posiada swój własny cykl życia * możliwość definiowania własnych typów (XML) * integracja z systemem kontroli wersji, z systemem buildów, testów * połączenia zadań z różnymi zasobami: strony www, dokumenty, multimedia, ===== Source Control Explorer ===== **Team Foundation Version Control** * synchronizacja plików serwer <-> kopia robocza (Workspace) * Check out - pobieranie źródeł z repozytorium * aktualizacja do najnowszej wersji * Check In - wysłanie lokalnej wersji do repozytorium * pobieranie konkretnej wersji z historii (changeset) * przeglądanie plików w repozytorium, dodawanie, usuwanie i zmiana nazwy i położenia plików i katalogów * pending changes, oglądanie aktualnie naniesionych zmian, cofanie zmian, śledzenie historii zmian * Lock/unlock - blokowanie plików i katalogów * rozwiązywanie konfliktów * porównanie różnych wersji plików i katalogów * tworzenie gałęzi (Branch) i łączenie gałęzi (projekty, katalogi, pliki) * odkładanie na półkę (Shelve) * etykiety (labels) - wersje zamrożone * właściwości plików i katalogów ===== Automatyzacja ===== * kompilacja na różne architektury * testy: unit test, web test, load test * wirtualne testowe środowisko uruchomieniowe * powiadomienia, np. e-mail * raporty: * wykresy przyrostu * statystyki: ilość zamkniętych zadań, wykrytych błędów, itp. * statystyki dla poszczególnych osób ===== CodePlex ogólnie ===== [[http://www.codeplex.com/|CodePlex]] Project Hosting for Open Source Software\\ [[http://codeplex.codeplex.com/wikipage?title=About%20the%20CodePlex%20Site&referringTitle=Documentation|About the CodePlex Site]]\\ "CodePlex is Microsoft's open source project hosting web site. You can use CodePlex to create new projects to share with the world, join others who have already started their own projects, or use the applications on this site and provide feedback." ===== Projekty ===== * 30 dni bez konieczności publikacji (konfiguracja projektu, opis, import źródeł, ustawienia dostępu, licencja) * source control: * Team Foundation Server (również Subversion) * Git * Mercurial * strona WWW projektu, ''nazwa_projektu.codeplex.com'', wiki opisujące projekt * dostęp do repozytorium, przeglądanie historii plików * downloads - wersje do pobrania, recenzje oprogramowania * dokumentacja projektu, wiki * lista dyskusyjna * issue tracker, przeglądanie i zarządzanie zadaniami * zarządzanie członkami projektu, przydział ról i dostępu * śledzenie postępów i aktywności w projekcie, RSS, powiadomienia e-mail * Licencje: open source, 10 do wyboru (np. GPL2) ===== Użytkownicy ===== Role ([[http://npr2012.codeplex.com/team/roles|Uprawnienia]]) * editor * coordinator * developer ===== Work Item ===== * tytuł * opis * Status: Proposed, Active, or Fixed. * Type: Feature, Issue, or Task. * Impact: Low, Medium or High. * Assigned To: coordinators or developers. * Component: No component * załączone pliki ===== Visual Studio i CodePlex ===== * Połączenie z serwerem: * Team -> Connect to TFS * informacje niezbędne do połaczenia znajdują się na stornie projektu CodePlex * Dodanie projektu do systemu kontroli wersji: * File -> Source Control -> Add Solution/Project to Source Control * Okna * Source Control Explorer - zarządzanie projektami, katalogami i plikami umieszczonymi z systemie kontroli wersji TFS * Team explorer - zarządzanie zadaniami, raporty, harmonogramu kompilacji i automatycznych testów * Work Items, filtrowanie za pomocą zapytań (Queries), edytor zapytań * Builds, okno Build Explorer * Source Control * Pending Changes (oczekujące zmiany), zmiany dokonane w lokalnej kopii roboczej * modyfikacje plików * aktualizacja zgłoszeń (zadań), powiązanie zadań ze zmianami * rozwiązywanie konfliktów ===== Team Fundation Service ===== * TFS w Chmurze * brak możliwości definiowania szablonów procesu wytwórczego * brak wsparcia dla Lab Menagement * automatyczna, skalowalna farma buildów (lokalnie potrzeba wielu serwerów automatyzujących ten proces) * w praktyce nieskończenie skalowalne testy obciążeniowe * nowe funkcjonalności co 3 tygodnie (wersja serwerowa co 3 miesiące)