460-2075/01 – Správa softwarových projektů (SSP)
Garantující katedra | Katedra informatiky | Kredity | 3 |
Garant předmětu | Ing. Jan Kožusznik, Ph.D. | Garant verze předmětu | Ing. Jan Kožusznik, Ph.D. |
Úroveň studia | pregraduální nebo graduální | Povinnost | volitelný odborný |
Ročník | 2 | Semestr | letní |
| | Jazyk výuky | čeština |
Rok zavedení | 2021/2022 | Rok zrušení | |
Určeno pro fakulty | FEI | Určeno pro typy studia | bakalářské |
Cíle předmětu vyjádřené dosaženými dovednostmi a kompetencemi
Cílem tohoto kurzu je seznámit studenty se základními technikami a technologiemi používanými v rámci oblasti “Konfigurační management”. Studenti získají znalosti o základních pojmech a technikách užívaných pro správu zdrojového kódu. Dále se studenti seznámí s technikami pro tvorbu sestavení (build), správu vydání (release), konfiguraci prostředí, řízení změn a dokumentace.
V rámci předmětu se prakticky setkají s nástroji, které jsou používány pro zmíněné oblasti konfiguračního management jako je Git, Maven, Jenkins, Docker, Gitlab, Github či Vagrant.
Po absolvování předmětu budou studenti schopni sdílet kód s jinými vývojáři za použití Git repozitáře, vytvářet změny v nezávislých větvích, změny promítat do hlavní vývojové větve a řešit jednoduché konflikty. Studenti budou schopni sestavit software unifikovaným způsobem prostřednictvím nástroje Maven a zajistit jednoduché nasazení softwaru pomocí nástroje Jenkins. Dále budou schopni spustit software v unifikovaném prostředí prostřednictvím Docker kontejneru. Studenti též budou umět používat nástroje Github/Gitlat pro potřeby řízení projektu. Součástí dovedností též bude schopnost vytvořit dokumentaci k projektu pomocí značkovací jazyka Markdown a následně vytvořit jeho HTML reprezentaci.
Vyučovací metody
Přednášky
Individuální konzultace
Cvičení (v učebně)
Projekt
Ostatní aktivity
Výuka odborníka z praxe (přednáška nebo cvičení)
Anotace
Tento předmět představuje úvod do problematiky konfiguračního managementu, který je důležitý při správě softwarových projektů. Obsah předmětu se především zaměřuje na správu zdrojového kódu, tvorbu sestavení (build), správu vydání (release), konfigurace, prostředí, řízení změn a dokumentaci projektu. V závěru se studenti seznámí s principy DevOps. Tato sada praktik umožňuje řízení a zkrácení vývojového cyklu s návazností na provoz výsledného softwarového produktu.
Povinná literatura:
Doporučená literatura:
Forma způsobu ověření studijních výsledků a další požadavky na studenta
E-learning
Další požadavky na studenta
Splnění následujících úkolů:
Povinné:
Zápočtové testy zaměřené na:
• správa zdrojového kódu;
• CI, řízení projektů pomocí Gitlab/Github, dokumentace pomocí jazyka Markdown;
• Správa prostředí - Docker, Vagrant.
Nepovinné:
• Domácí úkoly.
Prerekvizity
Předmět nemá žádné prerekvizity.
Korekvizity
Předmět nemá žádné korekvizity.
Osnova předmětu
Náplň přednášek:
• Základy správy zdrojového kódu a práce s nástrojem Git.
• Inženýrství sestavení (build) a využití nástroje Maven.
• CI pomocí Jenkins/Gitlab,
• Řízení projektů pomocí Github/Gitlab.
• Značkovací jazyk Markdown a tvorba HTML dokumentace.
• Správa prostředí pomocí Docker a Vagrant.
• DevOps principy.
Cvičení se odvíjí od hlavních témat předmětu na počítačové učebně: vyzkoušení si jednotlivých principů a technologií. Cílem je získat následující dovednosti studenta: verzovat zdrojový kód, sestavovat, nasazovat, vytvářet unifikované běhové prostředí, atd.
Náplň cvičení:
Cílem cvičení je demonstrovat na praktických příkladech problematiku prezentovanou na přednáškách, student si vyzkouší jednotlivé principy a technologie, vytvoření Git repozitáře a jeho stažení, vytvoření větve, promítnutí změn do repozitáře, vypublikování repozitáře, sestavení, vytvoření běhového prostředí.
Rozvrh cvičení:
• Úvod od správy verzí zdrojového kódu. Práce s Gitem - vytvoření, stažení a publikování Git repozitáře. Zapsání změn do repozitáře - commit, přepínání mezi commity, push, pull, .gitignore. Nahrání svých změn do vzdáleného repozitáře a aktualizace ze serveru.
• Nezávislé větve (branch) - vytvoření, přepínání, publikování, synchronizace se vzdáleným serverem. Spojování větví (merge), přeuspořádání (rebase), řešení konfliktů. Obnovení souborů z repository - checkout, reset.
• Sestavení software, správa závislostí.
• Kontinuální integrace (CI) - nástroj Jenkins.
• Využití Gitlab/Github: práce s repozitáři, vedení SW projektu, práce s tickety,
• Práce s požadavky na integraci (Merge request/Pull request) a CI v nástroji Gitlab.
• Tvorba dokumentace pomocí jazyka Markdown. Nástroje na tvorbu HTML z Markdown podkladů. Stránky pomocí Gitlab/Github.
• Zajištění běhového prostředí nástrojem Docker: Spuštění kontejnerů a jejich správa - list, stop, start, run.
• Mapování externích závislostí do Docker kontejneru - adresáře, soubory, TCP/IP porty.
• Parametrizace virtualizace pomocí nástroje Vagrant a VirtualBox virtualizačního prostředí.
Podmínky absolvování předmětu
Výskyt ve studijních plánech
Výskyt ve speciálních blocích
Hodnocení Výuky