Základy vývoje software
Cílem předmětu je seznámit studenty a doplnit jim základní
znalosti z softwarového vývoje. Předmět se bude zaměřovat na základní
pět oblasti: softwarový vývoj, analýza a návrh sw, testování, databáze,
programování. V průběhu předmětu budou studenti řešit semestrální práci,
v rámci které si vyzkouší návrh aplikace a implementaci vybraných
funkčností.
9 kreditů
Magisterské
Česky
Studijní okruhy
Softwarový vývoj
Základní oblasti podnikového ICTZasazení ICT do prostředí podniku.
Základní požadavky na softwarové produkty
Metodika vývoje softwareZákladní poslání, co je metodia a metodologie, historický vývoj metodik.
Přehled současných metodikZákladní představení zástupců tradičních a agilních metodik.
Fáze a disciplíny vývoje softwareVysvětlení, jaké časové a věcné dimenze má vývojový projekt, podrobné seznámení základních disciplín (správa požadavků, analýza a návrh, implementace, testování, konfigurační management, nasazení, řízení projektu).
Provoz a podpora informačních systémůPředstavit základní koncepty provozu a podpory, úrovně podpory, důvody oddělení vývoje od provozu, cloud vs on-premise řešení, SLA.
Základy softwarové architekturyPředstavení základních konceptů softwarové architektury s důrazem na koncept 3vrstvé architektury a integrace systémů.
Analýza a návrh
Základní principy objektově orientovaného přístupu a modelování tříd v UMLVysvětlení modelovacího jazyka UML. Popis pojmu technický projekt, co je cílem TP, co všechno obsahuje, ukázka existujícího TP. Představení jednotlivých typů UML diagramů a zasazení do kontextu procesu vývoje software (RUP).
Aktivity diagramVysvětlení notace, jednotlivých elementů a použití diagramu.
Use Case diagramVysvětlení notace, jednotlivých elementů a použití diagramu, význam a styl zápisu případu užití.
Třídní diagramVysvětlení notace, jednotlivých elementů a použití diagramu.
Analytické vzoryPřehled často používaných analytických vzorů, příklady jejich použití.
Testování
Co je testování SWCo je testování SW, co je zajišťování kvality, co je SW chyba, rozdíl mezi práci testera a QA, přesnost a správnost / verifikace a validace, axiomy testování.
Plánování testůPříprava testovacího plánu, harmonoframu testování a test strategie.
Příprava testůTestovací požadavky, příprava testovacích případů, skriptů a scénářů.
Provedení testůSpuštění testu, testovací iterace, nasazování změn.
Vyhodnocení testůHlášení problému, testovací log, defect report, vyhodnocení testů, životní cyklus chyby.
Databáze
Tvorba modelůKonceptuální model dat, relační model dat, fyzický model dat. Převod konceptuálního modelu na relační model dat. Převod relačního modelu na fyzický model dat. E R modelování a diagramy (entita, atributy, klíč, vztah, kardinalita vztahu), rozšíření E R modelu (EER), jazyk UML (class diagramy).
Relační modelZákladní pojmy – relace (tabulka), záznam (record), položka (field), primární klíč, cizí klíč. Deklarace a realizace integritních omezení. Normální formy, atomicita, funkční závislost, částečná funkční závislost, tranzitivní závislost, proces normalizace.
SQL – základy dotazováníTato lekce představuje úvod k dotazování v jazyce SQL a použití příkazu SELECT. Nejprve budou vysvětleny základní principy a použití tohoto příkazu, další informace studenti získají v následujících lekcích.
SQL – dotazy nad více tabulkamiPokračování výkladu základů dotazování v jazyce SQL a příkazu SELECT. Cílem této lekce je seznámení s vytvářením dotazů nad více tabulkami, vysvětlení pojmů vnitřní spojení, vnější spojení, polospojení (levé/pravé), apod.
Představení nejužívanějších RDBMS, směry ve vývoji DBMSCílem této závěrečné lekce je seznámit studenty s aktuálně nejpoužívanějšími relačními a NoSQL databázovými systémy.
Programování
Úvod do programování, historie a úvod do návrhu algoritmůCo je to programování, v čem spočívá práce programátora, historie, typy programovacích jazyků, co je to algoritmus, příkazová řádka, vývojového prostředí, reprezentace dat v počítači.
Základní práce s proměnnými a datovými typy, podmíněné zpracování kóduCo je proměnná, typ proměnné a související operace, řetězce, převody, základní načítání vstupu, výrazy, podmínky.
Úvod do cyklů a datová struktura poleIterace a různé typy cyklů, iterace s iterační proměnou a bez ní, definice pole a iterace jeho prvky, iterace prvky řetězce.
Pokročilejší práce s cykly, vnořování cyklůVnoření cyklů, odpovídající vnořená pole a iterace takovou strukturou, ovlivňování iterací speciálními příklady a obecnost cyklu.
Základní algoritmy nad kontejnerovými typyDatové struktury asociativní pole a odpovídající iterace a množina, vnořené kontejnery, základní příklady nad kontejnery.
Řízení běhu programuVolání metod, větvení, cykly.
Práce s kolekcemiPole a slovníky, iterace, operace nad kolekcemi.
Strukturované programováníDefinice metod, předávání parametrů, lokální proměnné, navratová hodnota.
Objektově orientované programováníVytváření vlastních tříd, instanční proměnné, konstruktor, atributy, dědičnost.
Výjimky a regulární výrazyOšetřování výjimek, použití regularní výrazů pro kontrolu formátu a nahrazování textu.
Práce se souboryČtení a zápis do souboru, formát YAML.
Formát pro výměnu dat XMLPrincipy formátu XML, načítání XML, vytváření a ukládání XML.
Unit testy a dokumentaceTestování kódu v NetBeans, psaní testů pomocí TestUnit, zásady dokumentace kódu.