SCM = Source Code Management software, základní typologie rozdělení je podle počtu a umístění základního úložiště kódu(=repository) na:

Podobné dokumenty
Verzovací systémy. Pořádek především!

Úvod do softwarového inženýrství a týmového vývoje

1 Nástroje pro správu verzí. 1.1 Pojmy:

Správa verzí souborů na cvičení

GIT hands-on. Mgr. Šimon Tóth. 12. dubna () GIT hands-on 12. dubna / 25

Obecné informace o cvičeních

H.P.L. Systems s.r.o. Jičínská PRAHA 3, CZ Obsah

Workflow sdíleného projektu ve VisualParadigm

PŘIDÁNÍ SOUBORŮ DO OBLASTI PŘIPRAVENÝCH ZMĚN

Java/QE Akademie - Osnova

Project management. Příprava projektu Zahájení High level plánování. Vykonávání Detailní plánování Vykonávání Řízení a monitorování

jako základní princip vývoje svobodného softwaru

Vladimír

Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE

Základy programování Zdrojový kód, dokumentace, týmová práce

Úvod do verzovacích systémů

Přehled témat. Základní pojmy

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: AVTK. Úvod. strana 1

VCS CVS - Concurrent Version System SVN - Subversion Distribuované verzovací systémy DVCS Verzování. Základní pojmy verzování souborů

Evoluce deploye Od FTP po automatický deploy

9. Archivace a verzování svn

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou

Základní pojmy verzování souborů. SVN - Subversion vybrané pokročilé vlastnosti. Správce verzí. Repositár

Joelův test. 12 kroků k lepšímu programování. Jaroslav Šnajdr

Srovnání issue a bug tracking komerčních nástrojů

Analýza a Návrh. Analýza

Profesionální služby kolem Linuxu

Agenda. Docházka Návrat k minulému praktickému cvičení Zápočtové práce. Dokumentace. Dotazy, přání, stížnosti. Co, jak a proč dokumentovat

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Vývoj aplikací JIRA. Jiří Kala Životní cyklus verzí produktů a jeho pokrytí nástrojem ke správě požadavků (Atlassian JIRA).

1 Návod na instalaci prostředí LeJOS-NXJ a přehrání firmwaru NXT kostky

ešení pro správu klientských počítač a mobilní tisk Číslo dokumentu:

ProjectWise V8 XM Edition

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

Práce se systémem Subversion (SVN)

ERP: Integrační platforma ve výrobní společnosti. Ing. Tomáš Hanáček Dynamica, a.s.

Administrace služby - GTS Network Storage

OPS Paralelní systémy, seznam pojmů, klasifikace

Microsoft Sync Framework. Jiří Činčura blog.cincura.net

Vytvoření.NET komponenty (DLL) ve Visual Studiu

Open source a komerční linuxové distribuce Libor Pecháček

Osnova. GIOP a IIOP IDL IOR POA. IDL Klient Server. 2 Historie. 3 Princip a základní pojmy. 4 Implementace. 5 Aplikace CORBA

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Requirements Model projektová dokumentace

Vývoj software pro Linuxové distribuce. Installfest Praha,

Komponentový návrh SW

Nové funkce a technologie v současných a budoucích verzích Invenia. Jiří Kunčar

9. Sítě MS Windows. Distribuce Windows. Obchodní označení. Jednoduchý OS pro osobní počítače, pouze FAT, základní podpora peer to peer sítí,

WinCC. Lokální nebo vzdálená. Internet. Siemens s.r.o. Strana 1 Ing. Ladislav Plachý 2013 SIMATIC IT. Web Client. Web Client DataMonitor Client

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

Microsoft SharePoint Portal Server Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR

PHP tutoriál (základy PHP snadno a rychle)

Proces vývoje HRIS Vema (Human Resources Information System) Jaroslav Šmarda

1. Administrace služby Bezpečný Internet přes webovou aplikaci WebCare GTS

2013 IBM Corporation

DLS V v1.2. Nové funkce. Používání programu DLS V

BM Software, Databáze Docházky 3000 na NAS serveru (pro MySQL) Němčičky 84, Němčičky u Břeclavi. Úvodní informace:

Google Apps. kontakty. verze 2011

Nemocnice. Prvotní analýza a plán projektu

Ing. Petr Ferschmann SoftEU s.r.o. Ing. Jindřich Vimr HSF s.r.o.

1. Využívání služeb servisního portálu

Robert Haken. HAVIT, s.r.o. knowledge-base.havit.cz

Zkušenosti z přechodu na TFS a agilní techniky

Subversion. Jakub Vlček

Click to edit headline title style

Co je to SCRUM! FRAMEWORK vs METODIKA. Ken Schwaber a Jeff Sutherland ho mají za framework Kde hledat detaily?

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

X36SIN: Softwarové inženýrství. Životní cyklus a plánování

Google Apps. kontakty 1. verze 2012

Vývoj SW pro mobilní zařízení s ios. Petr Hruška, Skymia s.r.o. Teorie a praxe IP telefonie,

Praktické zkušenosti s Azure DevOps

IT ESS II. 1. Operating Systém Fundamentals

Obsah. Co je nového v Advance Workshop 2018

I.CA RemoteSeal. Ing. Filip Michl První certifikační autorita, a.s

Ladění ovladačů pomocí virtuálního stroje...2 Úvod...2 Ladění ovladačů pomocí dvou fyzických počítačů...2 Ladění ovladačů pomocí jednoho fyzického

Versiondog Co je nového

LAN se používá k prvnímu nastavení Vašeho DVR a když potřebujete nastavit síť na Vašem DVR pro používání po internetu.

Korporátní identita - nejcennější aktivum

Desktop systémy Microsoft Windows

Monitorování a diagnostika aplikací v produkčním prostředí Michael Juřek

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Zálohování v MS Windows 10

SOFTWARE 5P. Instalace. SOFTWARE 5P pro advokátní praxi Oldřich Florian

PODPROGRAMY PROCEDURY A FUNKCE

Configuration Management

Vysoká škola ekonomická v Praze. Fakulta informatiky a statistiky. ALM Tools. Semestrální práce ke kurzu 4IT421 Zlepšování procesů budování IS

Výukový materiál zpracovaný v rámci projektu

Multiple Event Support

Integrací aplikací proti blackoutům

Uživatelská příručka

TSM for Virtual Environments Data Protection for VMware v6.3. Ondřej Bláha CEE+R Tivoli Storage Team Leader. TSM architektura IBM Corporation

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy

Informační systémy 2008/2009. Radim Farana. Obsah. Základní principy XML

Administrace služby IP komplet premium

Administrace služby IP komplet premium

SharePoint Online. Vyhledávání Můžete hledat weby, osoby nebo soubory. Vytvoření webu nebo příspěvku

Lotus Quickr - ECM Integrace s LD/LN aplikacemi. Ing. Josef Homolka VUMS Legend

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11

Internet. dobrý sluha, zlý pán

Transkript:

Otázka 16 - Y36SI3 Zadání Disciplinované přístupy ke změnám software (SCM). Nástroje pro správu a verzování zdrojového kódu. Řešení konfliktů v nástrojích pro správu zdrojového kódu. Slučování změn (operace merge). Stavový diagram požadavku. Integrace nástroje pro správu zdrojového kódu s nástrojem pro správu požadavků. (Y36SI3) Disciplinované přístupy ke změnám software (SCM) SCM = Source Code Management software, základní typologie rozdělení je podle počtu a umístění základního úložiště kódu(=repository) na: Centralizované - příklad: SVN(Subversion), CVS Distribuované - příklad: Git, Mercurial Centralizované můžeme charakterizovat tak, že máme jednu ústřední repository, do které vývojáři nahrávají (commitují) změny kódu a udržují verze vyvíjeného software. Vývojář tak musí mít stále k dispozici připojení k serveru, kde je daná repository (obvykle tedy potřebuje mít připojení k internetu). Výhody: po každém commitu vývojáře je nová verze souborů k dispozici ihned celému týmu. Nevýhody: Vývojář nemůže commitovat pokud nemá k dispozici připojení k repository. Řekněme tedy, že vývojář odjíždí v pátek na chatu a v neděli zjistí, že během soboty udělal fatální chybu. Vzhledem k tomu, že o víkendu byl na chatě a nemohl tedy commitovat, nemůže se vrátit k původní verzi. Konkrétní řešení: CVS - Concurrent Version System - již starší systém SVN - Subversion Rational ClearCase Microsoft Visual Source Safe Microsoft TFS Distribuované nelze tak snadno charakterizovat - repository existuje v rámci týmu vývojářů vícero (např. každý vývojář má na svém PC vlastní repository) a výsledný produkt vzniká často různým spojováním verzí z různých repository nebo je vytvořen strom repository a změny se do vyšších větvích promítají postupně. Vývojář tedy commituje změny do své vlastní repository a do centrální je pak operací push pošle až po delší době. Pokud chce vývojář získat současnou verzi z centrální repository či od jiného kolegy, volá operaci pull. Je také obvyklé, že před nahráním verzí do centrální repository si vývojáři sdílejí své repository mezi sebou. Další možný scénář je, že existuje několik centrálních repository, které vlastní někteří členové týmu.

Výhody: Při většině operací není využívána síť - vývojář může commitovat kdykoli, protože repository má vždy přístupnou - viz. předchozí příklad s chatou, vývojář kdyby během svého víkednového pobytu commitoval do své repository na svém PC, pak by se k sobotní chybě mohl lehko vrátit a napravit. Zálohování - jelikož repository jsou na více počítačích (obvykle všech vývojářů), pravděpodobnost ztráty dat se tak výrazně snižuje. Rychlost - vývojář commituje změny do své lokální repository, obvykle se tedy nepřipojuje ke vzdálenému serveru, což šetří čas a taková operace je mnohem rychlejší než operace commit u centralizovaného řešení. Možnost sdílení jednotlivých repository mezi sebou Nevýhody: Více repository, více současně existujících verzí, ztráta přehlednosti. Větší pravděpodobnost vzniku konfliktů (vývojář svou repository nahrává ostatním obvykle až po nějaké době, změn je tedy více). Nicméně výhody obvykle převažují. Konkrétní řešení: Git Mercurial Arch Darcs Centralizované vs. distribuované Zatímco u centralizovaného řešení vývojaří komunikují pouze s centrální repository, kde je aktuální verze, u distribuovaného je repository více, které mohou komunikovat i mezi sebou, a do centrální repository se nahrává obvykle již mezi vývojáři prodiskutovaná verze. Názvosloví pro SCM checkout - získání celé aktuální verze z repository update - získání změn z repository, změny jsou jen mezi lokální kopií a aktuální v repository commit - nahrání změn do repository branch - zkopírování vývojové či jiné větve do nové větve

tag - označení aktuálního stavu větve nějakým unikátním jménem merge - spojení dvou souborů (větví) - nahrání změn v jedné větvi do druhé větve - viz. níže blame(annotate) - výpis řádků daného souboru, kdy na začátku každého řádku je vidět, kdo ho naposledy měnil. Blame nám tedy říká, kdo který řádek napsal a můžeme tak obvinit (blame) daného autora. Pull - u distribuovaných systémů stáhnout data z nějaké repository do své repository Push - u distribuovaných systémů poslat změny ze své repository do jiné (např. centrální) repository Řešení konfliktů v nástrojích pro správu zdrojového kódu. Slučování změn - merge. U centralizvaných systémů Když jeden vývojář commitne svou novou verzi souboru a druhý vývojář posléze commituje jinou svou verzi stejného souboru, konflikt nastane ve chvíli, kdy oba tito vývojáři dělali změny na stejných řádcích souboru. Vývojář, který commitoval jako druhý pak musí tento konflikt vyřešit. Obecně lze říci, že tento konflikt se vyřeší operací merge. Vývojář tak sloučí tyto dva soubory (verze) do jednoho, a to tak, že musí vybrat, které řádky z které verze budou ve verzi konečné - jedná se tedy o sloučení dvou souborů, přičemž řádky mohou pocházet z obou - od toho název sloučení (merge). U SVN (Subversion) vypadá operace merge takto: Druhý vývojář dělá před svým commitem nejdříve update, aby se ujistil, že nedochází ke konfliktu, pokud ano, vytvoří se *.mine, *.r93, *.r94 (čísla u přípon se samozřejmě mění). Máte tedy dvě možnosti: využít operaci merge a soubory *.r93 a *.r94 sloučit do *.mine, nebo verzi *.mine editovat ručeně a vybrat které řádky z jakého souboru ponechat. Následně se provede příkaz Resolved, čímž se SVN ujistí, že konflikty byly vyřešeny a následně commit do centrálního repository. U distribuovaných systémů

Jednotlivé soubory obvykle existují ve více repository současně, a tak při úpravách stejného souboru více vývojáři vznikají tzv. větve (branches). Z obrázku vidíme, že Sue a Joe upravují stejný soubor, který obsahuje Milk. Sue přidá do tohoto soubor Soup a Joe Juice. Joe zavolá operaci pull a stáhne si tento soubor od Sue, následně zavolá operaci merge a tím sloučí tyto dva soubory. Nakonec provede commit čímž potvrdí sloučení změn. Nyní stačí, aby Sue zavolala pull a update, čímž si načte změny, které provedl Joe. Issue tracking a bug tracking software = nástroje pro správu požadavků Požadavek je v tomto případě požadavek na práci člena teamu, na doplnění/opravení funkčnosti systému. Dále se termín požadavek používá v souvislosti s nahlášením problému, úkolu, bugu apod. Tato sekce se nezabývá tzv. požadavky (requirements) na systém, které se obvykle definují při analýze projektu - o tom je otázka č. 12. Systém pro správu projektu by měl mít systém pro správu požadavků. Anglicky ticket, issue, task. Zjišťování požadavků probíhá: od zákazníka při zadávání práce členům týmu při testování Uspořádání požadavků: Požadavky mají různý typ, např.: chyba, vylepšení, úkol Požadavky mají různou prioritu, např.: trivial, minor, major, critical, blocker Požadavky mohou náležet k různým komponentám jako např.: database, user interface, organization, presentation, kernel, Požadavky mají různé stavy jako např.: new, reopened, assigned, invalid, duplicate, fixed Požadavky se také přiřazují jednotlivým lidem, k milestonům nebo k verzím programu

Životní cyklus bugu/požadavku v Bugzille: Řešení Trac Bugzilla BugTracker.NET IBM Rational ClearQuest Integrace nástroje pro správu zdrojového kódu s nástrojem pro správu požadavků Mezi nástroje, které mají intergrovaný systém pro správu zdrojového kódu a pro správu požadavků, patří např. TRAC. Na jeho příkladě se dá snadno ukázat princip a výhody integrovaného systému. Trac má mimojiné v sobě zabudovanou Wiki, Issue tracking system (pomocí tickets) a SCM (obvykle Subversion, ale poskytuje interface i k jiným). Mezi těmito 3 části je možné vytvářet reference a odkazy. To znamená, že můžeme využít tzv. syntaxi TracLinks a použít ji ve zprávách při commitu, na wiki a ticketech a milestonech a to tím, že napíšeme např:

#1 nebo ticket:1 - odkaz na ticket s číslem 1 wiki:camelcase - odkaz na stránky Wiki source:/trunk/copying@200#l25 - odkaz na 25. řádku v souboru COPYING ve verzi 200 Mimoto je možné využít Wiki syntaxi a formátovat tak náš text. Mezi produkty, které mají integrované nástroje pro SCM a správu požadavků patří: Trac Assembla Polarion Trac and Wiki Slovníček pojmů SCM = Source Code Management - správa zdrojového kódu SVN = Subversion Issue tracking = správa požadavků Bug tracking = správa chyb (bugů) Ticket = požadavek, úkol Milestone = určitá fáze projektu s jasným deadlinem