Difference between revisions of "Objektově orientované technologie - cvičení"

From Wikivyuka
Jump to: navigation, search
(Cvičení 3 - Tvorba modelu případů užití)
m
 
(46 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Obsah a cíle cvičení z předmětu Objektově orientované technologie==
+
==Cíle cvičení z předmětu Objektově orientované technologie==
  
 
#Vyzkoušet principy objektových technologií při tvorbě vlastního modelu systému.
 
#Vyzkoušet principy objektových technologií při tvorbě vlastního modelu systému.
#Vytvářet základní diagramy UML.
+
#Vytvářet základní diagramy modelovacího jazyka UML.
 
#Porozumět a interpretovat základní diagramy UML.
 
#Porozumět a interpretovat základní diagramy UML.
 
#Naučit se postup při tvorbě modelu systému.
 
#Naučit se postup při tvorbě modelu systému.
 +
 +
Během semestru bude postupně tvořen model systému v prostředí CASE nástroje. (Aktuálně Visual Paradigm for UML. Na stránkách produktu lze najít celou řadu pomůcek a [http://www.visual-paradigm.com/tutorials/ tutoriálů]. Licence produktu je pravidelně obnovována, lze si stáhnout odpovídající verzi produktu z webovýcj stránek VP, klíč pro spuštění StandardEdition dostanete na cvičení.)
 +
 +
==Požadavky na zápočet==
 +
 +
'''Prezenční studium'''
 +
 +
* 24 bodů - projekt (povinný) - termín odevzdání projektu je nejpozději v zápočtovém týdnu. Za pozdní odevzdání bude automaticky stržen 1 bod za každý započatý den. Blíže viz [http://gis.vsb.cz/wikivyuka/index.php/Objektov%C4%9B_orientovan%C3%A9_technologie_-_cvi%C4%8Den%C3%AD#Cvi.C4.8Den.C3.AD_11_-_Zpracov.C3.A1n.C3.AD_vlastn.C3.ADho_projektu Informace k projektu].
 +
* 9 bodů - práce na cvičeních.
 +
 +
'''Pro kombinované studenty'''
 +
 +
Vypracovat a odevzdat projekt dle pokynů cvičícího. Projekt je u kombinovaných studentů hodnocen 33 body. Bližší informace jsou uvedeny pod bodem [http://gis.vsb.cz/wikivyuka/index.php/Objektov%C4%9B_orientovan%C3%A9_technologie_-_cvi%C4%8Den%C3%AD#Cvi.C4.8Den.C3.AD_11_-_Zpracov.C3.A1n.C3.AD_vlastn.C3.ADho_projektu Informace k projektu].
 +
 +
'''Témata zápočtového projektu:'''
 +
 +
<!--
 +
 +
*Klub maratónců: Radim Šmiřák, Tomáš Polášek(POL0093), Matuš Molovčák(MOL0027)
 +
*Povinný tělocvik: Filip Peterek(PET0032)
 +
*Pujcovna DVD: Petra Otisková(OTI0012)
 +
*Pizzerie: Honza Ochodek(OCH0007), Luboš Kováč(KOV0113)
 +
*Redakcni system: Stanislav Volný(VOL0054)
 +
*Květinářství:
 +
*Fitness: Hajek
 +
*Objednavani roboru: Czernin
 +
 +
Dvorský
 +
-->
 +
 +
==Tvorba modelu systému s použitím diagramů UML==
 +
 +
Ucelený výukový materiál pro postupnou tvorbu modelu systému pomocí diagramů UML ve formátu .pdf je možné si stáhnout [[Media:OOtCviceni.pdf | zde]].
 +
 +
Postup je koncipován po jednotlivých cvičeních. Jejich obsah je k dispozici v menších .pdf formátech dále na stránkách, v každém cvičení jsou uvedeny kroky a očekávané výstupy, případně ukázkové příklady.
  
 
==Cvičení 1 - Specifikace systému==
 
==Cvičení 1 - Specifikace systému==
 
  Cíl cvičení: Práce se specifikací systému.  
 
  Cíl cvičení: Práce se specifikací systému.  
Ukázky specifikací
+
 
*Systém pro nákup plechovkových nápojů [[Media:specifikaceNA.pdf | Nápojový automat]].
+
*Obsah cvičení [[Media:Cv1Spec.pdf | Specifikace systému]].
*Systém pro jízdu taxíkem [[Media:specifikaceTaxis.pdf | Taxis]].
+
*Práce se specifikací systému pro nákup plechovkových nápojů [[Media:specifikaceNA.pdf | Nápojový automat]].
 +
*Práce se specifikací systému pro jízdu taxíkem [[Media:specifikaceTaxis.pdf | Taxis]].
 +
*Vytvoření dokumentace s rozeznanými prvky systému a jejich vlastnostmi, vztahy a chováním.
  
 
==Cvičení 2 - Specifikace požadavků==
 
==Cvičení 2 - Specifikace požadavků==
  Cíl cvičení: Vyhledat požadavky na systém a vytvořit jejich specifikaci.  
+
  Cíl cvičení: Vyhledat požadavky na systém a vytvořit jejich specifikaci.
*Vyhledávání požadavků na systém
+
 
*První verze  - [[Media:listReq.pdf | seznam požadavků]] pro nápojový automat
+
*Obsah cvičení [[Media:Cv2.pdf | Specifikace požadavků]].  
 +
*Vyhledávání požadavků na systém.
 +
*První verze  - [[Media:listReq.pdf | seznamu požadavků]] pro nápojový automat.
  
 
==Cvičení 3 - Tvorba modelu případů užití==
 
==Cvičení 3 - Tvorba modelu případů užití==
  Cíle cvičení: Vytvořit diagram případů užití. Vyhledat aktéry, hranice systému a pro každého aktéra jeho případy užití.
+
  Cíle cvičení: Vytvořit diagram případů užití. Vyhledat aktéry, hranice systému a pro každého aktéra jeho případy užití.
Postup při tvorbě modelu případů užití
+
*Obsah cvičení [[Media:Cv3.pdf | Diagram případů užití]].
*Nalezneme a vymezíme hranici systému
+
 
*Specifikujeme aktéry (případně provedeme kategorizaci na primární, zákulisní, pomocné)
+
''Postup při tvorbě modelu případů užití''
*Specifikujeme případy užití systému jednotlivými aktéry
+
*Nalezneme a vymezíme hranici systému.
*Vytvoříme diagram případů užití
+
*Specifikujeme aktéry (případně provedeme kategorizaci na primární, zákulisní, pomocné). Postupujte podle návodných otázek pro vyhledávání aktérů, [[Media:akteri.pdf | příklad aktérů]] pro případ nápojového automatu.
*Ke každému případu užití vytvoříme hlavní scénář (interakce aktéra a systému, max. 10 kroků)
+
*Specifikujeme případy užití systému jednotlivými aktéry. Upřesnění případů užití s [[Media:pripadyDotazy.pdf | pomůckou]] -- dotazování na různé aspekty systému (data, události).
*Popíšeme alernativy k hlavnímu scénáři (alternativa úspěšná, alternativa chybová včetně ošetření chyb)
+
*Vytvoříme diagram případů užití.
*Nalezneme případy užití, které je možno vyčlenit – vazby include
+
*Ke každému případu užití vytvoříme hlavní scénář (interakce aktéra a systému, max. 10 kroků).
*Navrhneme případy užití rozšiřující hlavní scénář, uvedeme body rozšíření
+
*Popíšeme alernativy k hlavnímu scénáři (alternativa úspěšná, alternativa chybová včetně ošetření chyb).
*Diagram případů užití upravíme o případné další případy užití
+
*Nalezneme případy užití, které je možno vyčlenit – vazby include.
 +
*Navrhneme případy užití rozšiřující hlavní scénář, uvedeme body rozšíření.
 +
*Do diagramu případů užití doplníme případné další případy užití.
 +
 
 +
<!--Kroky pro tvorbu modelu UC obecně - [[Media:tvorbaModeluUC.pdf | Postup tvorby modelu UC]] -->
 +
Příklad odpovědí na návodné otázky, vyhledání případů užití [[Media:nastrelUC.pdf | příklad UC]] pro nápojový automat.
  
 
==Cvičení 4 - Tvorba scénáře pro případ užití==
 
==Cvičení 4 - Tvorba scénáře pro případ užití==
 
  Cíl cvičení: Vypracovat pro případy užití scénáře, zachycující průběh akcí v případu užití.
 
  Cíl cvičení: Vypracovat pro případy užití scénáře, zachycující průběh akcí v případu užití.
 +
*Obsah cvičení [[Media:Cv4.pdf | Scénáře]].
 +
*Tvorba scénářů s pomocí šablony.
 +
*Ukázky scénařů pro nápojový automat: [[Media:scenarUCVlozitMince.pdf | Scénář UC VlozitMince]], [[Media:scenarUCZvolitNapoj.pdf | Scénář UC ZvolitNapoj]].
  
 
==Cvičení 5 - Tvorba třídního diagramu==
 
==Cvičení 5 - Tvorba třídního diagramu==
 
  Cíl cvičení: Vyhledat třídy, jejich atributy a navrhnout operace.
 
  Cíl cvičení: Vyhledat třídy, jejich atributy a navrhnout operace.
 +
*Obsah cvičení [[Media:Cv5.pdf | Diagram tříd]].
 +
*Vyhledávání tříd - pomocí textové analýzy:
 +
 +
#Textovou specifikaci systému pročteme a slova splňující vlastnost kandidáta na třídu, atribut či operaci označíme jinou barvou.
 +
#Sloučíme k sobě pojmy, které mají stejný význam (synonyma).
 +
#Kandidáty setřídíme a a seskupíme sadu pojmů, které spolu vytvářejí kostru třídy.
 +
#K prvotnímu návrhu doplníme atributy či operace, které vyplývají z předešlých  modelovacích činností (UC, scénáře, ...).
 +
#Přeneseme elementy z předchozí práce do grafického editoru a vytvoříme první verzi třídního diagramu.
 +
 +
<!--Příklady tříd: Videopůjčovna, školní systém.-->
  
 
==Cvičení 6 - Tvorba sekvenčního diagramu==
 
==Cvičení 6 - Tvorba sekvenčního diagramu==
  Cíl cvičení: Pro vybrané případy užití a jejich scénáře detailně zachytit komunikaci mezi objekty.
+
  Cíl cvičení: Pro vybrané případy užití a jejich scénáře detailně zachytit komunikaci mezi objekty.
 +
*Obsah cvičení [[Media:Cv6.pdf | Sekvenční diagram]].
 +
 
 +
''Postup při tvorbě sekvenčního diagramu''
 
*Vybrat si scénář, který bude detailněji rozebrán a definovat zprávy mezi objekty.
 
*Vybrat si scénář, který bude detailněji rozebrán a definovat zprávy mezi objekty.
 
*Rozeznané objekty zaznamenat do sekvenčního diagramu.
 
*Rozeznané objekty zaznamenat do sekvenčního diagramu.
Line 45: Line 105:
  
 
==Cvičení 7 - Kontrola konzistence vytvořených diagramů==
 
==Cvičení 7 - Kontrola konzistence vytvořených diagramů==
 +
Cíl cvičení: Zkontrolovat konzistenci již vytvořených diagramů a upravit je dle nalezených nesrovnalostí.
 +
*Obsah cvičení [[Media:Cv7.pdf | Konzistence]].
  
 
==Cvičení 8 - Tvorba diagramu aktivit==
 
==Cvičení 8 - Tvorba diagramu aktivit==
 
  Cíl cvičení: Vytvořit posloupnost akcí, jejichž provedení vede k realizaci vybrané aktivity.   
 
  Cíl cvičení: Vytvořit posloupnost akcí, jejichž provedení vede k realizaci vybrané aktivity.   
 +
*Obsah cvičení [[Media:Cv8.pdf | Aktivitní diagram]].
 +
 
''Tvorba aktivitního diagramu''
 
''Tvorba aktivitního diagramu''
 
 
*Vybrat si úroveň detailu, se kterým budeme přistupovat k formulování modelované aktivity.  
 
*Vybrat si úroveň detailu, se kterým budeme přistupovat k formulování modelované aktivity.  
 
*Pro zvolený případ naformulovat hlavní akce, které případ popisují.
 
*Pro zvolený případ naformulovat hlavní akce, které případ popisují.
Line 58: Line 121:
 
==Cvičení 9 - Tvorba stavového diagramu==
 
==Cvičení 9 - Tvorba stavového diagramu==
 
  Cíl cvičení: Nadefinovat stavy vybraného objektu a provázat je přechody mezi nimi.   
 
  Cíl cvičení: Nadefinovat stavy vybraného objektu a provázat je přechody mezi nimi.   
 +
*Obsah cvičení [[Media:Cv9.pdf | Diagram stavů]].
 +
 
''Tvorba stavového diagramu''
 
''Tvorba stavového diagramu''
 
 
*Nalézt významné objekty, vybrat si jeden pro tvorbu diagramu.
 
*Nalézt významné objekty, vybrat si jeden pro tvorbu diagramu.
 
*Definovat jeho stavy pomocí analýzy hodnot atributů.
 
*Definovat jeho stavy pomocí analýzy hodnot atributů.
Line 70: Line 134:
  
 
==Cvičení 10 - Interpretace diagramů UML==
 
==Cvičení 10 - Interpretace diagramů UML==
 +
Cíl cvičení: Zvládnout interpretaci diagramů vytvořených jiným autorem. Umět porozumět modelu systému jako celku.
 +
*Obsah cvičení [[Media:Cv10.pdf | Interpretace]].
 +
 
==Cvičení 11 - Zpracování vlastního projektu==
 
==Cvičení 11 - Zpracování vlastního projektu==
<!--==Cvičení 12 - x== -->
+
 
 +
'''Informace k projektu'''
 +
 
 +
''Zadání'': Specifikace systému bude upřesněna ve třetím týdnu výuky.
 +
<!--
 +
[[Media:zadaniTaxis.pdf | Systém pro jízdu taxíkem]]
 +
[[Media:losovaniTurnaju.pdf | Systém losování turnajů]] -->
 +
 
 +
''Termín odevzdání'': 5 dnů před zápočtovým týdnem.
 +
 
 +
Projekt bude odevzdán pod označením '''login_OOT.zip''' a bude obsahovat tyto soubory: zdrojový soubor z prostředí VP pojmenovaný login.vpp a dokumentační soubor login.pdf. Dokumentační soubor bude obsahovat níže uvedené položky ve formě uceleného textu, kde budou vloženy požadované diagramy a popsány vůči ''specifikaci systému''. Dle pokynů cvičícího odevzdat mailem na adresu daniela.szturcova@vsb.cz. Pozdní odevzdání je sankcionováno strhnutím 1 bodu za každý započatý den po termínu.
 +
 +
''Hodnocení:''
 +
 
 +
*Počet bodů: až 24 (prezenční)/33 (kombinovaní)
 +
 
 +
*Kriterium hodnocení (každá položka 0 - 3/4 body):
 +
#Zpracování uživatelské specifikace (detailnější popis Vašeho systému)
 +
#Seznam požadavků - funkčních, případně nefunkčních
 +
#Use Case diagram: "hrubý", případně rozpracovaný
 +
#Scénáře z jednoho domluveného modulu (balíčku) - minimálně tři
 +
#Analytický model tříd
 +
#Realizace případů užití (Sekvenční diagram k jednomu vybranému scénáři)
 +
#Aktivitní diagram (pohled na celý systém nebo rozpracování problematické části systému)
 +
#Stavový diagram (objekt, který mění své stavy více než 3x)
 +
 
 +
===Témata projektů===
 +
 
 +
Po domluvě se cvičícím je možné domluvit i jiné téma, nejlépe pokud koresponduje s Vaší absolventskou prací.
 +
 
 +
 
 +
 
 +
 
 +
------------------------------
 +
Financováno z projektu CZ.1.07/2.2.00/28.0308 Inovace bakalářských a magisterských studijních oborů na Hornicko-geologické fakultě VŠB-TUO, spolufinancovaného Evropským sociálním fondem a státním rozpočtem České republiky.

Latest revision as of 10:51, 19 August 2015

Cíle cvičení z předmětu Objektově orientované technologie

  1. Vyzkoušet principy objektových technologií při tvorbě vlastního modelu systému.
  2. Vytvářet základní diagramy modelovacího jazyka UML.
  3. Porozumět a interpretovat základní diagramy UML.
  4. Naučit se postup při tvorbě modelu systému.

Během semestru bude postupně tvořen model systému v prostředí CASE nástroje. (Aktuálně Visual Paradigm for UML. Na stránkách produktu lze najít celou řadu pomůcek a tutoriálů. Licence produktu je pravidelně obnovována, lze si stáhnout odpovídající verzi produktu z webovýcj stránek VP, klíč pro spuštění StandardEdition dostanete na cvičení.)

Požadavky na zápočet

Prezenční studium

  • 24 bodů - projekt (povinný) - termín odevzdání projektu je nejpozději v zápočtovém týdnu. Za pozdní odevzdání bude automaticky stržen 1 bod za každý započatý den. Blíže viz Informace k projektu.
  • 9 bodů - práce na cvičeních.

Pro kombinované studenty

Vypracovat a odevzdat projekt dle pokynů cvičícího. Projekt je u kombinovaných studentů hodnocen 33 body. Bližší informace jsou uvedeny pod bodem Informace k projektu.

Témata zápočtového projektu:


Tvorba modelu systému s použitím diagramů UML

Ucelený výukový materiál pro postupnou tvorbu modelu systému pomocí diagramů UML ve formátu .pdf je možné si stáhnout zde.

Postup je koncipován po jednotlivých cvičeních. Jejich obsah je k dispozici v menších .pdf formátech dále na stránkách, v každém cvičení jsou uvedeny kroky a očekávané výstupy, případně ukázkové příklady.

Cvičení 1 - Specifikace systému

Cíl cvičení: Práce se specifikací systému. 
  • Obsah cvičení Specifikace systému.
  • Práce se specifikací systému pro nákup plechovkových nápojů Nápojový automat.
  • Práce se specifikací systému pro jízdu taxíkem Taxis.
  • Vytvoření dokumentace s rozeznanými prvky systému a jejich vlastnostmi, vztahy a chováním.

Cvičení 2 - Specifikace požadavků

Cíl cvičení: Vyhledat požadavky na systém a vytvořit jejich specifikaci.

Cvičení 3 - Tvorba modelu případů užití

Cíle cvičení: Vytvořit diagram případů užití. Vyhledat aktéry, hranice systému a pro každého aktéra jeho případy užití.

Postup při tvorbě modelu případů užití

  • Nalezneme a vymezíme hranici systému.
  • Specifikujeme aktéry (případně provedeme kategorizaci na primární, zákulisní, pomocné). Postupujte podle návodných otázek pro vyhledávání aktérů, příklad aktérů pro případ nápojového automatu.
  • Specifikujeme případy užití systému jednotlivými aktéry. Upřesnění případů užití s pomůckou -- dotazování na různé aspekty systému (data, události).
  • Vytvoříme diagram případů užití.
  • Ke každému případu užití vytvoříme hlavní scénář (interakce aktéra a systému, max. 10 kroků).
  • Popíšeme alernativy k hlavnímu scénáři (alternativa úspěšná, alternativa chybová včetně ošetření chyb).
  • Nalezneme případy užití, které je možno vyčlenit – vazby include.
  • Navrhneme případy užití rozšiřující hlavní scénář, uvedeme body rozšíření.
  • Do diagramu případů užití doplníme případné další případy užití.

Příklad odpovědí na návodné otázky, vyhledání případů užití příklad UC pro nápojový automat.

Cvičení 4 - Tvorba scénáře pro případ užití

Cíl cvičení: Vypracovat pro případy užití scénáře, zachycující průběh akcí v případu užití.

Cvičení 5 - Tvorba třídního diagramu

Cíl cvičení: Vyhledat třídy, jejich atributy a navrhnout operace.
  • Obsah cvičení Diagram tříd.
  • Vyhledávání tříd - pomocí textové analýzy:
  1. Textovou specifikaci systému pročteme a slova splňující vlastnost kandidáta na třídu, atribut či operaci označíme jinou barvou.
  2. Sloučíme k sobě pojmy, které mají stejný význam (synonyma).
  3. Kandidáty setřídíme a a seskupíme sadu pojmů, které spolu vytvářejí kostru třídy.
  4. K prvotnímu návrhu doplníme atributy či operace, které vyplývají z předešlých modelovacích činností (UC, scénáře, ...).
  5. Přeneseme elementy z předchozí práce do grafického editoru a vytvoříme první verzi třídního diagramu.


Cvičení 6 - Tvorba sekvenčního diagramu

Cíl cvičení: Pro vybrané případy užití a jejich scénáře detailně zachytit komunikaci mezi objekty.

Postup při tvorbě sekvenčního diagramu

  • Vybrat si scénář, který bude detailněji rozebrán a definovat zprávy mezi objekty.
  • Rozeznané objekty zaznamenat do sekvenčního diagramu.
  • Podle scénáře doplňovat zprávy podle logické a časové posloupnosti.
  • Kontrolovat konzistenci s třídním diagramem. V případě nesrovnalostí upravit.
  • Upravit zprávy podle typu.

Cvičení 7 - Kontrola konzistence vytvořených diagramů

Cíl cvičení: Zkontrolovat konzistenci již vytvořených diagramů a upravit je dle nalezených nesrovnalostí. 

Cvičení 8 - Tvorba diagramu aktivit

Cíl cvičení: Vytvořit posloupnost akcí, jejichž provedení vede k realizaci vybrané aktivity.  

Tvorba aktivitního diagramu

  • Vybrat si úroveň detailu, se kterým budeme přistupovat k formulování modelované aktivity.
  • Pro zvolený případ naformulovat hlavní akce, které případ popisují.
  • Od počátečního uzlu pomocí řídících hran propojit akce mezi sebou podle pořadí, jak budou uskutečňovány.
  • Na potřebná místa doplnit rozhodovací uzly, doplnit podmínky pro přechody.
  • Do diagramu zakreslit plavecké dráhy, do kterých budou zařazeny akce dle zodpovědnosti zúčastněných aktérů či objektů.

Cvičení 9 - Tvorba stavového diagramu

Cíl cvičení: Nadefinovat stavy vybraného objektu a provázat je přechody mezi nimi.  

Tvorba stavového diagramu

  • Nalézt významné objekty, vybrat si jeden pro tvorbu diagramu.
  • Definovat jeho stavy pomocí analýzy hodnot atributů.
  • Zaznamenat stavy do diagramu.
  • Dopsat popis stavu do dokumentačního záznamu.
  • Nalézt přechody mezi stavy, případně přechody s návratem do stejného stavu.
  • Zaznamenat přechody do diagramu.
  • Nalézt omezení u jednotlivých přechodů.
  • Zaznamenat omezení do diagramu.

Cvičení 10 - Interpretace diagramů UML

Cíl cvičení: Zvládnout interpretaci diagramů vytvořených jiným autorem. Umět porozumět modelu systému jako celku.

Cvičení 11 - Zpracování vlastního projektu

Informace k projektu

Zadání: Specifikace systému bude upřesněna ve třetím týdnu výuky.

Termín odevzdání: 5 dnů před zápočtovým týdnem.

Projekt bude odevzdán pod označením login_OOT.zip a bude obsahovat tyto soubory: zdrojový soubor z prostředí VP pojmenovaný login.vpp a dokumentační soubor login.pdf. Dokumentační soubor bude obsahovat níže uvedené položky ve formě uceleného textu, kde budou vloženy požadované diagramy a popsány vůči specifikaci systému. Dle pokynů cvičícího odevzdat mailem na adresu daniela.szturcova@vsb.cz. Pozdní odevzdání je sankcionováno strhnutím 1 bodu za každý započatý den po termínu.

Hodnocení:

  • Počet bodů: až 24 (prezenční)/33 (kombinovaní)
  • Kriterium hodnocení (každá položka 0 - 3/4 body):
  1. Zpracování uživatelské specifikace (detailnější popis Vašeho systému)
  2. Seznam požadavků - funkčních, případně nefunkčních
  3. Use Case diagram: "hrubý", případně rozpracovaný
  4. Scénáře z jednoho domluveného modulu (balíčku) - minimálně tři
  5. Analytický model tříd
  6. Realizace případů užití (Sekvenční diagram k jednomu vybranému scénáři)
  7. Aktivitní diagram (pohled na celý systém nebo rozpracování problematické části systému)
  8. Stavový diagram (objekt, který mění své stavy více než 3x)

Témata projektů

Po domluvě se cvičícím je možné domluvit i jiné téma, nejlépe pokud koresponduje s Vaší absolventskou prací.




Financováno z projektu CZ.1.07/2.2.00/28.0308 Inovace bakalářských a magisterských studijních oborů na Hornicko-geologické fakultě VŠB-TUO, spolufinancovaného Evropským sociálním fondem a státním rozpočtem České republiky.