<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://www.512.cz/skins/common/feed.css?301"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
		<id>https://www.512.cz/index.php?feed=atom&amp;target=89.103.96.247&amp;title=Speci%C3%A1ln%C3%AD%3AP%C5%99%C3%ADsp%C4%9Bvky%2F89.103.96.247</id>
		<title>FAV wiki - Příspěvky uživatele [cs]</title>
		<link rel="self" type="application/atom+xml" href="https://www.512.cz/index.php?feed=atom&amp;target=89.103.96.247&amp;title=Speci%C3%A1ln%C3%AD%3AP%C5%99%C3%ADsp%C4%9Bvky%2F89.103.96.247"/>
		<link rel="alternate" type="text/html" href="https://www.512.cz/index.php?title=Speci%C3%A1ln%C3%AD:P%C5%99%C3%ADsp%C4%9Bvky/89.103.96.247"/>
		<updated>2026-10-23T12:04:55Z</updated>
		<subtitle>Z FAV wiki</subtitle>
		<generator>MediaWiki 1.17.0</generator>

	<entry>
		<id>https://www.512.cz/index.php?title=%C3%9Avod_do_technologie_programov%C3%A1n%C3%AD_a_programovac%C3%ADch_styl%C5%AF,_objektov%C4%9B_orientovan%C3%BD_n%C3%A1vrh,_z%C3%A1kladn%C3%AD_UML_diagramy,_psan%C3%AD_program%C5%AF_v_Jav%C4%9B</id>
		<title>Úvod do technologie programování a programovacích stylů, objektově orientovaný návrh, základní UML diagramy, psaní programů v Javě</title>
		<link rel="alternate" type="text/html" href="https://www.512.cz/index.php?title=%C3%9Avod_do_technologie_programov%C3%A1n%C3%AD_a_programovac%C3%ADch_styl%C5%AF,_objektov%C4%9B_orientovan%C3%BD_n%C3%A1vrh,_z%C3%A1kladn%C3%AD_UML_diagramy,_psan%C3%AD_program%C5%AF_v_Jav%C4%9B"/>
				<updated>2017-06-04T07:07:23Z</updated>
		
		<summary type="html">&lt;p&gt;89.103.96.247: /* Jazyk UML */ oprava značení agregace a kompozice&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Úvod ==&lt;br /&gt;
Programování je proces vytváření software splňující určité funkce. K programování využíváme programovací jazyky, dříve procedurální (nestrukturované (asembler) - bez podprogramů, pouze skoky v programu (goto), nebo strukturované (basic, c, pascal) - podprogramy, skoky jen velmi vyjímečně), dnes nejčastěji objektově zaměřené (objekty jsou stavební kameny a obalují funkce, využití technik OOP).&lt;br /&gt;
&lt;br /&gt;
Dříve bylo programování spojeno s testováním, nyní je proces rozdělen do několika fází:&lt;br /&gt;
&lt;br /&gt;
'''Analýza''' - Sbírání informací od zákzníka či zadavatele&lt;br /&gt;
&lt;br /&gt;
'''Návrh''' - Návrh SW tak, aby splňoval požadavky analýzy&lt;br /&gt;
&lt;br /&gt;
'''Kódování''' - Implementace návrhu&lt;br /&gt;
&lt;br /&gt;
'''Ladění''' - Testování a odstraňování chyb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Styly ==&lt;br /&gt;
&lt;br /&gt;
'''Vodopád''' - fáze jdou za sebou, nevracíme se, ani neodbočujeme (nejstarší), týmy se zapojují do procesu pokud je na řadě jejich blok&lt;br /&gt;
&lt;br /&gt;
'''Formální''' - návrh je matematicky zcela do detailu popsán a jednotlivé bloky modelu jsou poté 1:1 implementovány&lt;br /&gt;
&lt;br /&gt;
'''Evoluční''' - začíná se malým funkčním SW, na který nabalujeme další funkce, ale nevíme, jaké funkce bude v budoucnu mít&lt;br /&gt;
&lt;br /&gt;
'''Iterativní''' - proces je rozdělen na iterace, v každé iteraci je naplánováno několik funkčností, iterace stejně dlouhé, po iteraci je SW vždy v kompletní spustitelné podobě&lt;br /&gt;
&lt;br /&gt;
'''Komponentový''' - využití hotových komponent, či implementace vlastních, poté stavění SW z komponent jako z kostek&lt;br /&gt;
&lt;br /&gt;
== Objektově orientovaný návrh ==&lt;br /&gt;
&lt;br /&gt;
OO umožňuje, a klade si za cíle:&lt;br /&gt;
&lt;br /&gt;
'''Znovupoužitelnost''' - abstraktní části kódu jsou univerzální a je tedy možné je používat stále dokola&lt;br /&gt;
&lt;br /&gt;
'''Robustnost''' - návrh předpokládá všechny vstupy, nejen ty, které jsou očekávané&lt;br /&gt;
&lt;br /&gt;
'''Přispůsobivost''' - návrh lze pouze s minimálními zásahy do kódu použít na různých platformách&lt;br /&gt;
&lt;br /&gt;
== Pilíře OO návrhu ==&lt;br /&gt;
&lt;br /&gt;
'''Dědičnost, Zapouzdření, Polymorfysmus''' - PPA2&lt;br /&gt;
&lt;br /&gt;
'''Modularita''' - rozdělení programu na bloky - moduly&lt;br /&gt;
&lt;br /&gt;
'''Abstrakce''' - Návrh na abstraktní úrovni je snadno implementovatelný&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Soubor:[[Soubor:Příklad.jpg]]]]== Jazyk UML ==&lt;br /&gt;
&lt;br /&gt;
Jazyk pro abstraktní návrh OO SW, modelování SW před implementací, navrhujeme pouze strukturu, nikoliv funkčnost.&lt;br /&gt;
Typy UML:&lt;br /&gt;
&lt;br /&gt;
'''diagram tříd a objektů''' - popisují statickou strukturu systému&lt;br /&gt;
&lt;br /&gt;
'''modely jednání (diagram případů užití)''' - dokumentují možné případy použití systému, události, na které musí systém reagovat&lt;br /&gt;
&lt;br /&gt;
'''scénáře činností (diagramy posloupností)''' - popisují scénář průběhu určité činnosti, těchto činností je model jednání složen&lt;br /&gt;
&lt;br /&gt;
'''diagramy spolupráce''' - zachycují komunikaci spolupracujících objektů&lt;br /&gt;
&lt;br /&gt;
'''stavové diagramy''' - popisují dynamické chování objektu nebo systému&lt;br /&gt;
&lt;br /&gt;
'''diagramy aktivit''' - průběh aktivit procesu nebo činností&lt;br /&gt;
&lt;br /&gt;
'''diagramy komponent''' - popisují rozdělení systému na funkční celky a definují náplň jednotlivých komponent&lt;br /&gt;
&lt;br /&gt;
'''diagramy nasazení''' - popisují umístění funkčních celků&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pro návrh diagramu tříd máme následující parametry:&lt;br /&gt;
&lt;br /&gt;
Atributy a metody - definujeme viditelnost a vlastnosti (+ public, # protected, - private, / readonly, in/out směr)&lt;br /&gt;
&lt;br /&gt;
Třída: obdélník, název tučně, pak seznam atributá a metod&lt;br /&gt;
&lt;br /&gt;
Objekt: Název:Třída&lt;br /&gt;
&lt;br /&gt;
Dědičnost - šipka od potomka k rodiči, může být i vícenásobná&lt;br /&gt;
&lt;br /&gt;
Asociace - 0..1  1..1 0..N 1...N  --&amp;gt; šipka od první třídy a ta obsahuje odkazy/využívá x..y objektů druhé třídy (např Podvozek 1 ---&amp;gt; 4 Kola ), nad šipkou název činnosti (pokud možno lepší než &amp;quot;má&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Kompozice - je li objekt v kompozici s jiným, je na něj silně vázán (například seznam a položka seznamu. seznam může existovat i bez položek, ale položka bez seznamu ne), značka plný kosočtverec&lt;br /&gt;
&lt;br /&gt;
Agregace  - volná vazba, abstrakce &amp;quot;používá&amp;quot;, objekty však mohou fungovat i nezávisle na sobě (například počítače v síti), značka prázdný kosočtverec&lt;br /&gt;
&lt;br /&gt;
== Java ==&lt;br /&gt;
&lt;br /&gt;
'''Návrh''' - UML diagramy, CRC karty (karty, kde je pro každá blok sloupec Má za úkol a Vyžaduje). Je li toho na kartě příliš, je vhodné zvážit její rozdělení&lt;br /&gt;
&lt;br /&gt;
'''Implementace''' - podle návrhu, karta odpovídá třídě. &lt;br /&gt;
&lt;br /&gt;
'''Ladění  a testování''' - kontrolní výpisy, logování, watch na proměnných, ..., po té test pro různá data (generovaná, &amp;quot;nepříjemná&amp;quot;)  a sledování správnosti, rychlosti, využití zdrojů, uvolnění&lt;br /&gt;
&lt;br /&gt;
'''Dokumentace''' - štábní kultura, konvence pojmenovávání, komentáře, Javadoc komentáře a generovaná dokumentace&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:fav-kiv-bzinf]]&lt;/div&gt;</summary>
		<author><name>89.103.96.247</name></author>	</entry>

	</feed>