STUDIJJNÍ OPOR O RA M ULU TV MODU VŮRC CE SYSSTÉMU Ivo Špička Michal Červin nka O Ostrava 201 11
Náázev: Au utoři: první, 2011 Vyydání: Po očet stran: Vysoká ško Tisk: ola podnikán ní, a. s. Vyydala: Vysoká ško ola podnikán ní, a. s. v Ostravě Michálkovvická 1810/18 81 710 00 Osttrava – Slezsská Ostrava © © © © Vysoká škol la podnikání,, a.s. v Ostravě ISBN 978‐80‐7 7410‐031‐4
OBSAH Úvvod ..................................................................................................................................... 10 VÝÝSTUPY Z UČ ČENÍ ................................................................................................................ 11 po o ‐ .................................................................................... Chyba! Záložka není definován na. 1
Základní pojmy z teorrie systémů aa systémové analýzy .............................................. 12 1.1
Systém jako obeecný a techniický pojem ............................................................. 13
1.1.1
Vazba systéému na okolíí. ............................................................................. 14
Účelovosst a cílovost ssystému ...................................................................................... 14 1.2
Vývo oj informačn ní technologie v komerční sféře ................................................. 15
Středisko ové dávkové zpracování ................................................................................. 15 Centrálníí databázovéé systémy .................................................................................... 15 Nástup PC počítačů ..................................................................................................... 15 Síťové propojení .......................................................................................................... 15 Koncepcee klient / server ............................................................................................. 16 1.2.1
Koncepce tenký klient/sserver .................................................................... 16
1.2.2
dní době .............................................. 16 Vývoj ultra tenkých klientů v posled
1.2.3
puting ......................................................................................... 17 Cloud comp
né trojím způ ůsobem: ......................... 18 Poskytovvání služeb cloud computtingu je možn Možné neevýhody. ........................................................................................................ 19 2
Vývoj sysstému a jeho o životní cyklu us ........................................................................... 23 2.1
Životní cyklus infformačního ssystému ................................................................. 24
2.1.1
Stručná chaarakteristika metodiky MDIS ............. M ....................................... 24
2.1.2
Informační strategie poddniku ..................................................................... 26
2.1.3
Úvodní studdie systému ................................................................................ 31
2.1.4
Globální annalýza a návrrh IS ....................................................................... 33
2.1.5
Detailní anaalýza a návrhh IS ........................................................................ 35
2.1.6
Implementaace IS .......................................................................................... 36
2.1.7
Zavádění IS S do provozuu ............................................................................. 37
2.1.8
Provoz, údrržba a další rozvoj r IS................................................................. 38
2.1.9
Závěr k tém matu............................................................................................. 39
2.2
přístupů k tvvorbě informačního systéému podle firrmy LBMS ... 40 Charrakteristika p
2.3
Obecné principyy analýzy a náávrhu IS.................................................................. 41
2.3.1 2.4 3
Druhy přístupů k analýzze a návrhu IS ......................................................... 44
hy metodik vvývoje IS a so oučasné tren ndy ...................................................... 45 Druh
Funkční m modely inforrmačních systémů ..................................................................... 53 3.1
Strukturovaný přřístup ......................................................................................... 54
Konceptu uální úroveň modelů, prvvní vrstva ................................................................ 54 Technolo ogická (logickká) úroveň m modelů, druhá vrstva .............................................. 54 Implementační (fyzická) úroveň m modelů, třetíí vrstva ................................................ 55 3.2
Konttextový diagram ............................................................................................ 55
3.3
Sezn nam událostíí .................................................................................................. 56
3.4
Diaggram funkčníí struktury syystému ................................................................... 57
3.5
Diaggram datovýcch toků ....................................................................................... 59
Obecná p pravidla tvorby DFD: ...................................................................................... 62 Další dop poručené zássady pro úložžiště dat: ................................................................ 62 Jazykové prostředky p pro zápis min nispecifikace e: ......................................................... 63 4
model .............................................................................................................. 68 Datový m 4.1
Dato ový modelu vvyjádřený ER RD (Entity Re elationship D Diagram). ....................... 68
Pojem en ntita. ............................................................................................................... 68 Atributy, primární a ccizí klíč ........................................................................................ 69 datovém modelu ............................................................................................ 69 Vazby v d Kardinalitta relační vazby ............................................................................................. 69 Volitelnost relační vazby ............................................................................................. 70 Postup tvvorby datovéého modelu ................................................................................ 70
5
6
4.2
Norm mální formy v datovém m modelu ................................................................... 71
4.3
Integgrita dat ......................................................................................................... 71
4.4
Dato ový slovník ..................................................................................................... 72
4.5
Stavvový diagram m .................................................................................................. 73
PROGRAM MOVACÍ JAZYK A VÝVOJO OVÉ PROSTŘEDÍ ..................................................... 79 5.1
Proggramovací jazyk a vývojové prostředíí........................................................... 80
5.2
Instaalace vývojovvého prostřeedí .......................................................................... 80
5.3
Spušštění vývojovvého prostřeedí........................................................................... 84
5.4
Prvn ní program ...................................................................................................... 84
5.5
Uložžení projektu u .................................................................................................. 87
5.6
Druh hý program .................................................................................................... 88
5.7
Soub bory projektu ................................................................................................. 92
5.8
Spusstitelná podo oba program mu ........................................................................... 95
5.9
Průzzkumník řešeení ............................................................................................... 97
Ovládací prvky ........................................................................................................... 103 6.1
Texttové pole ...................................................................................................... 104
Pravidla pro o tvorbu iden ntifikátoru (jména) jsou n následující: ....................................... 107 Vlastnostt text ............................................................................................................ 107 Další vlasstnosti textovvého pole ................................................................................. 107
6.2
Popiisek .............................................................................................................. 108
6.3
Klávvesové zkratkky a pořadí taabulátoru ............................................................. 110
6.4
Zaškkrtávací políččko ............................................................................................ 114
6.5
Shrn nutí kapitoly ................................................................................................. 115
7
Události ...................................................................................................................... 118 7.1
Události ............................................................................................................. 119
7.2
Obsluha událosttí ............................................................................................... 119
7.3
ba v program mu ............................................................................................. 121 Chyb
7.4
Dalšší události ..................................................................................................... 122
7.5
Knih hovny podpro ogramů .................................................................................... 123
7.6
Voláání podprogrramů ......................................................................................... 123
7.7
Bližšší určování .................................................................................................... 124
7.8
Hlavvní událost objektu ...................................................................................... 124
7.9
Spollečná obsluh ha více událostí ........................................................................ 125
7.10
Přejmenování ud dálosti ...................................................................................... 126
8
Přiřazovaací příkaz ...................................................................................................... 130 8.1
Kopíírování texto ového pole ................................................................................ 131
8.2
Přiřaazovací příkaaz .............................................................................................. 132
8.3
Dalšší přiřazováníí ................................................................................................ 132
8.4
Vícee příkazů v m metodě ....................................................................................... 135
8.5
Sekvvenční zpraco ování ........................................................................................ 137
8.6
Sém mantické chyb by ............................................................................................. 138
9
Datové tyypy a proměnné .......................................................................................... 141 9.1
Nefu unkční kalkulačka ........................................................................................ 142
9.2
Dato ové typy ....................................................................................................... 142
9.3
Kalkkulačka .......................................................................................................... 143
9.4
Vývo ojový diagram m a pseudokkód ....................................................................... 143
9.5
Převvod řetězce n na číslo ..................................................................................... 144
9.6
Prom měnné .......................................................................................................... 145
9.7
Návratová hodnota ........................................................................................... 147
9.8
by za běhu p programu .................................................................................. 147 Chyb
9.9
Ošettření chyb běěhem chodu programu ........................................................... 149
9.10
Deklarace s inicializací ....................................................................................... 152
10 0
Grafikaa ................................................................................................................... 156
10.1
Kresslení čárovýcch obrazců ................................................................................. 158
10.2
Událost paint ..................................................................................................... 159
10.3
ocha ..................................................................... 159 Graffické příkazy a kreslicí plo
10.4
Peraa ................................................................................................................... 160
10.5
Souřřadný systém m okna ...................................................................................... 160
10.6
Kresslení úseček, obdélníků a elips .................................................................... 161
10.7
Vypllněné obrazcce .............................................................................................. 162
10.8
Graffika v části okkna ........................................................................................... 163
10.9
Paneel .................................................................................................................. 164
10.10
Zp pracování vstupu od uživvatele ................................................................... 165
10.11
Geometrie elipsy ........................................................................................... 165
10.12
ompletní obssluha událossti paint ................................................................ 166 Ko
10.13
Vyyvolání událo osti paint .................................................................................. 167
11 1
Objektty .................................................................................................................. 169
11.1
Objeekty a třídy ................................................................................................... 171
11.2
Dokumentace třříd ............................................................................................. 171
11.3
dy pen ...................................................................................... 172 Konsstruktory tříd
11.4
Vlastnosti třídy p pen ........................................................................................... 172
11.5
Statické složky třřídy ........................................................................................... 172
11.6
ogenerující ssložky ........................................................................................ 173 Auto
11.7
Výčttový typ ........................................................................................................ 173
12 2
Pokroččilá práce s p proměnnými .................... . ......................................................... 176
12.1
Sezn nam hlášení .................................................................................................. 177
12.2
Složené přiřazen ní ............................................................................................... 177
12.3
Řádkkování .......................................................................................................... 178
12.4
Složené přiřazen ní a čísla .................................................................................... 179
12.5
Operátory ++ a ‐‐ ‐ .............................................................................................. 180
ŘÍDA ......................................................................................... 181 Okno programu JAKO TŘ 13 3
Čísla ........................................................................................................................ 184
13.1
Deseetinná čísla .................................................................................................. 185
13.2
Číslaa jako objektty ............................................................................................... 185
13.3
Přeh hled výpočtů ů ................................................................................................ 185
13.4
Celo očíselné dělení ............................................................................................. 187
13.5
přeh hled číselných typů ...................................................................................... 187
13.6
Kom mbinace číselných typů ................................................................................. 188
14 4
Podmíněné vykonáávání a rozvěětvení ................................................................... 191
14.1
onávání ..................................................................................... 192 Podmíněné vyko
14.2
řídiccí konstrukcee IF ............................................................................................ 193
14.3
Dokončení progrramu Podmíněné kreslen ní ...................................................... 194
14.4
Rozvvětvení programu ........................................................................................ 194
14.5
Relaační operátorry .............................................................................................. 195
14.6
Vnořřené větveníí ................................................................................................ 196
15 5
Desátáá kapitola ..................................................... Chyba! Záložka není definován na.
Název subkaapitoly ........................................................ Chyba! Záložka není definován na. 15.1
Cyklus ............................................................... Chyba! Záložka není definován na.
15.2
řídiccí konstrukcee FOR ........................................................................................ 200
15.3
Stup pnice ............................................................................................................. 201
16 6
Sítě a b bezpečnost .................................................................................................. 204
Název subkaapitoly ........................................................ Chyba! Záložka není definován na. 16.1
ítačo ové sítě a komunikační teechnologie ........................................................... 205
16.2
Počíítačové sítě .................................................................................................. 205
Význam sítí .................................................................................................................... 205 Souborovvé služby ...................................................................................................... 205 Tiskové služby ............................................................................................................ 205 Webové služby .......................................................................................................... 206 Elektronická pošta ..................................................................................................... 206 orů ............................................................................................ 206 Služby přřenosu soubo 16.3
Topo ologie sítě .................................................................................................... 206
Logická to opologie ...................................................................................................... 210 16.4
Síťovvé protokolyy ................................................................................................ 210
Referenční model ISO O/OSI......................................................................................... 211 Referenční model TCP/IP .......................................................................................... 212 ware ............................................................................................................ 213 Síťový hardw Server ......................................................................................................................... 213 Síťové rozhraní .......................................................................................................... 214 Přenosovvá média ....................................................................................................... 214 Aktivní prrvky sítě ....................................................................................................... 218 16.5
Síťovvé operační systémy a so oftware ................................................................ 219
UNIX ........................................................................................................................... 220 Linux ........................................................................................................................... 220 Solaris ......................................................................................................................... 220 Novell NeetWare ......................................................................................................... 220 Windowss Server ........................................................................................................ 220 Active Directory ......................................................................................................... 221 16.6
Typyy sítí ............................................................................................................. 221
Domácí ssítě ................................................................................................................ 222 Sítě peer‐to‐peer a peersonální sítěě LAN ................................................................... 222
Místní síttě LAN .......................................................................................................... 222 Rozlehlé sítě WAN ..................................................................................................... 223 Bezdrátové sítě Wi‐Fii ................................................................................................ 223 16.7
drátové tech hnologie .................................................................................... 223 Bezd
Technolo ogie WiFi ....................................................................................................... 224 Bezpečno ost WiFi ........................................................................................................ 225 Záávěr ................................................................................................................................... 228 Po oužitá literattura a další zd droje ........................................................................................ 229
modulu tvůrcee systému
Ú Úvod Váážené studen ntky, vážení studenti, do ostáváte do rukou Studijjní oporu díllčí části mod dulu Tvůrce systémů, ted dy dokumen nt, ktterý pro Váss představujee velmi důleežitý výukovýý materiál. Jak J už vyplýývá z názvu, o teento obsáhlýý materiál see můžete „o opřít“. Při stu udiu modulu u Tvůrce sysstémů, získátte mnoho užiteččných a zajíímavých infformací z ob blasti inform mačních a komunikačnícch teechnologií (IC CT). V tomto mateeriálu jsou uvedeny vššechny potřřebné inform mace týkajíccí se obsah hu modulu, jsou popsána všeechna tématta, která bud dou probírán na a procvičo ována v rám mci výýuky. Kaaždá kapitolaa obsahuje d definované cííle, tj. přesně ě uvádí, co b budete umět, čeho budette scchopni a co pro prostud dování kapittoly a vypraccování úkolů ů získáte. Tyyto informacce bu udete moci p použít rovněžž pro vlastní kontrolu a ssebereflexi. Zaadaným úkolům a kontro olním otázkáám věnujte pozornost a zpracováveejte je pečlivě, po o vypracován ní vám umožžní ihned zp prostředkovaat zpětnou vazbu, jak jstte obsah dan né kaapitoly pocho opili a na kolik rozumíte prostudovan nému tématu u. Sttudijní oporaa však není jediným j stud dijním materiálem, kterýý je vhodné a potřebné k ússpěšnému ab bsolvování m modulu prosttudovat. I kd dyž je poměrrně podrobn ná, nezahrnuje ceelý rozsah a obsah mod dulu. Při stu udiu je rovn něž nutné využívat v i daalší odborno ou litteraturu, na kkteré tato op pora v jednotlivých kapittolách odkazuje. Po ozorně si tutto studijní op poru prostud dujte. Pokud d budete posstrádat nějakkou informacci, či Vám nebudee něco jasnéé, zeptejte see příslušného o vyučujícího. Přřejeme Vám m mnoho úspěchů ú při náročném procesu studia s a zísskání spoustty prraktických do ovedností a d důležitých zn nalostí a souvvislostí ve stu udovaném m modulu. Auto oři
VÝÝSTUPY Z UČ ČENÍ
V VÝSTUPY Y Z UČENÍ Po o úspěšném absolvování modulu bud dou student schopni……
11
modulu tvůrcee systému
1 Základ dní pojjmy z teorie t systémů s ů a sysstémové é analýzy Ú ÚVOD Prro pochopen ní významu informačních i h a komunikkačních technologií je vh hodné získatt i his istorický přeehled vývoje těchto systtém. Nesmírrně důležité je si uvědo omit vývojovvé treendy jak ve ssmyslu techn nickém tak i v obsahu ná áplně informačního systéému. Pro úvo od do o systémovéh ho inženýrstvví je také nutno pochopit a jasně porrozumět, co myslíme, kdyyž po oužijeme slovu systém. Rozvoj R interrnetu a síťovvých komuniikací také sillně podporuj uje ro ozvoj distribu uovaných apllikací ve form mě cloud com mputingu. Uvveďte stručněě kapitolu, jeejí za aměření, příp padné pokynyy pro stadium m kapitoly. CÍÍLE KAPITOLY Y Po o prostudová ání této kapiitoly a vypra acování úkollů budete UM MĚT: porozumět důležžitosti počíítačové kom munikace a a význam sítí v oblast inform mačních systéémů a směr jjejich vývoje e; analyzzovat trendy vývoje inforrmačních a komunikačnícch technologgií Po o prostudová ání této kapiitoly a vypra acování úkollů ZÍSKÁTE: poznatkový systém m z oblasti syystémového inženýrství znalossti vývoje informačních syystémů trendů jejich vývvoje inform mace o cloud computingu u Po o prostudová ání této kapiitoly a vypra acování úkollů BUDETE SC CHOPNI: spojit důležitost po očítačových sítí s význam mem a funkcíí informačníh ho systému
Záákladní pojmy z teorie systémů a systtémové analýýzy
Informační sysstémů v souččasnosti sym mbolizují aplikace označo ované jako ER RP (Enterprisses v světě i v naší rep publice začaal na počáttku Reesource Planning). Jejicch rozvoj ve deevadesátých let. K rozvvoji stávajíccích podniko ových inform mačních sysstémů výrazzně přřispěly i dalšší dvě důležžité technolo ogie. V roce e 1991 byl u nás poprvvé zpřístupn něn internet. Ještěě dříve, před d třiceti lety,, se začal pro osazovat oso obní počítačč, další důležžitý ové informattiky. milník podniko dnotlivce nen ní třicet let d dlouhá doba. V této dob bě informačn ní a V porovnání s životem jed omunikační technologie (ICT ‐ Information and Communication Technology))se ko prrosadily: • • • •
inform mační systém my významně projevilyy v každod denním živo otě podniků ů i jednottlivců, inform mační systém my ovlivnily jednotlivce i celou společčnost, inform mační systém my získaly svůj vnitřní „řáád" a termino ologii a oblastt informačnícch systémů u ukázala své h hranice a mo ožná rizika.
Ro ozvoje inform mačních sysstémů (IS) see v podnicícch projevily v rámci změěn výrobních i neevýrobních technologií t a služeb. Zm a měnily se po ostupy a přísstupy lidí a změnami byyly ovvlivněny všeechny důležiité podnikovvé procesy i celé podn nikové (busiiness) mode ely. Těěmito změnami a jejich h řízením see zabývá po odniková informatika. TTa se zařad dila sp polečně s maarketingem, účetnictvím m, personalisstikou, logisttikou a dalšíími nezbytnýým po odnikovým d disciplinám. Výývoj podniko ových IS lze sledovat z růzzných hledise ek: • • • •
měníccí se funkcion nality, trendů ů v implementaci, provozování i očekávaných příno osů.
Zm měny lze pop psat i akronyymem ERP (EEnterprise Re esource Planning). Z počáátku byl klad den dů ůraz na plánování (P ‐ p planning), paak se pozorn nost soustřed dila na všech hny podniko ové zd droje (R ‐ reesources), tjj. hlavně maateriálu, kap pacit a financcí. V Součassnosti se důrraz klaade na podn nik (E ‐ enterprise, a to vv širším slovaa smyslu) a p podnikání, zeejména pak na effektivitu, na udržení a ro ozvoj konkurrenceschopnosti podniku u. Zde ale ch hápeme podn nik jako kooperujjící a zřetězzený v rámcci sítí, o pod dnik otevřen ný vůči parttnerům a dííky informačním ssystémům um místitelný v llibovolné čássti globalizovvaného světaa. Do ominantní se s stává „b business" přřínos aplikací IS podniiku. Takto integrované a op ptimalizovan né podnikovéé procesy umožňují u snižovat náklad dy a podporovat příjmyy z prrodejů novýcch, resp. ino ovovaných výýrobků a slu užeb. „Živottní cyklus" p podnikového IS neekončí jeho symbolickýým uvedeníím do provvozu, ale pokračuje jeho efektivním prrovozováním m, údržbou a dalším rozvo ojem či opěto ovnou inovací. Zm měny a rozvo oj informačních systémů v podnicích (zejména malých a střed dních) aktuállně po odporují i fin nanční prostřředky rozvojjových operaačních programů vyčleněěných pro ČR R z fo ondů EU pro léta 2007‐20 013. (Basl, a d další, 2007)
1..1 Systém m jako obe ecný a tech hnický poje em
13
modulu tvůrcee systému
Prro práci se složitými s a rozsáhlými r o objekty, mezzi které patřří i informačční systémy, je nu utný systém mový přístup p. Informačn ní systém v v podniku je nutno ch hápat ne jaako izo olovanou saamostatnou část celku,, ale je jej nutno chápat kompleexně se vše emi so ouvislostmi aa vazbami ve svém dynam mickém vývo oji. m pojmem teorie systéémů je poje em systém. Tento pojeem lze cháp pat Neejdůležitějším rů ůzným způsobem. Synonyymy slova syystém jsou slova režim, řáád, soustava, uspořádáníí. Jeednou z možn ných definic systému je ((Burý, 2007):: Sttanoví‐ li see vztahy, mezi m na seb be navzájem m působící objekty maateriální, ale e i neemateriální p povahy, je naa objektivní realitě vytvo ořen systém. Systém je definován jaako úččelově uspo ořádaná množina prvků ů a množin na vazeb mezi m nimi, ss dynamickýým ch hováním, kteeré společně určují vlastn nosti celku. Ro ozkladem systému na úččelově vytvo ořené skupin ny systémovýých objektů a jejich vazzeb deefinujeme po odsystém. Podsystém lzee považovatt za prvek syystému nebo o jej lze cháp pat jako nový systtém. Prrvek je část ssystému, kteerý již z hled diska analýzyy nelze (nebo o jej nechceme) dále dě ělit. Po ojem prvku úzce souvisíí s pojmem rozlišovací úroveň. ú Rozllišovací úrovveň určuje, jak j po odrobně bud deme systém m zkoumat a kolik a jakých prvků tento systém bude tvořit. jin nak řečeno, rozlišovací úrovni oznaačujeme, jakk podrobně budeme sysstém zkoumat. Zm měnou rozliišovací úrovvně se mů ůže dřívější prvek systtému stát podsystéme em, po opřípadě i syystémem a n naopak. Deko ompozicí (rozkladem) sysstému na jed dnodušší prvvky see zvyšuje rozlišovací úrovveň.
1..1.1 Vazba systému u na okolí. Každý systém m existuje v určitém pro ostředí, které é jej obklopu uje. Při anallýze systému u z ceelého okolí vybereme jeen ty prvkyy, které nějaakým způsobem mají sse zkoumanýým syystémem urččité podstatn né vazby. Vaazby prvků okolí o se systémem nazývváme vstupyy a výýstupy systém mu. Prvky syystému spojující vazbam mi systém s o okolím se naazývají hraničční (m mezní) prvky. Okolí působí na systém m jeho vstup py a naopak systém ovlivvňuje své okkolí svvými vstupy. tyy, je do určitté míry izolován od ostatních objekttů (okolí). Po okud neexisttují vazby mezi prrvky okolí a a prvky sysstému, pak takový sysstém se naazývá absolu utně uzavře ený (izzolovaný). Opakem O izolo ovaného sysstému je syystém otevřeený. Otevřen ný systém má m vššechny možn né vazby s okolím. o Nejččastějším dru uhem systém mů jsou systtémy relativvně uzzavřené, kterré mají někteeré, z určitéh ho hlediska p podstatné vaazby na své o okolí.
Účelovost aa cílovost syystému N Není‐li určen účel, pro kteerý se systém m zavádí (toto platí zcela obecně), pak chybí kritéria prro vymezeníí systému. Definice sysstému samaa o sobě klade k důraz na účelovo ost. Po oužijeme‐li systém k jiné s ému účelu, n než pro který byl definován (určen),, dopustíme se hrrubých omylů ů. Ú Účelovost je d dána (Burý, 2 2007): 1. z jakého hleediska je systtém zkoumán. odrobnosti zkkoumání. 2. jaký je zvoleen stupeň po
Záákladní pojmy z teorie systémů a systtémové analýýzy
S otázkou cílů ů systémů úzce souvisí vo olba vhodné rozlišovací ú úrovně. Zvýšší‐li se, (p podrobnější rrozlišovací úrroveň) pak prvky daného o systému se mohou stát samotnými syystémy. Naop pak při snížení rozlišovaccí úrovně se ccelý systém může stát prrvkem systém mu deefinovaného na méně po odrobné rozliišovací úrovn ni.
1..2 Vývoj informačn ní technolo ogie v komerční sféře e Krromě speciállních případů ů, jako jsou vědecké a vvojenské apliikace, které měly poněkkud jin né podmínkyy pro nasazzení informaačních techn nologií, prob bíhal nástup p informačníích teechnologií do o komerční sfféry přibližněě v následujíícím členění.
Sttřediskové é dávkové zzpracování Veelké objemyy dat zpracovvávaly dávko ově mohutné, (výkonem m i rozlohou) střediskové é ‐ sáálové ‐ počíttače. Řešily úlohy sklad dové eviden nce, statistikky, účetnictvví nebo jinýých ko omplexních výpočtů. Užživatelé přeedávali ve stanovených termínech podklady pro p zp pracování a poté p po nějaaké době ob bdrželi výsledky ve form mě tiskového výstupu ‐ tzv. tisskových sesttav. Šíření výýsledků tako ového zpraco ování bylo umožněno po ouze v podo obě šířření kopií tisskového výsttupu. Často sse stávalo, že i relativně dobře zpraccované sestaavy měly závažný nedostatek ‐‐ skoro nikdo o je nepoužívval.
Ce entrální daatabázové systémy V dalších leteech došlo k rozmachu in nformačních technologiíí a rozšíření databázovýých prrogramů a trransakčního zpracován. Jádrem tech hnologie se staly centráálně udržovaané daatabázové systémy, s kteeré umožnilly současný přístup vícce uživatelů ů do systém mu (n například leteecký rezervační systém leetenek). Pro o komunikacii se začaly vyyužívat texto ově orrientované specializované terminály obsluhované é zaškoleným m personálem m. Kvvalita zobrazzení poskytovvaných údajů čili forma výstupu bylaa dána možn nostmi texto ově orrientovaných h terminálů.. Interní ko omunikace ve v firemních h informačn ních probíhaaly klaasickým způsobem (telefon, pošta, rrozesílání tištěných brožur apod.). Přříkladem mů ůže býýt technologie SNA (Systeems Network Architecture) od firmy IBM.
Nástup PC p počítačů Érra osobních p počítačů ‐ PC C ‐ odstartovvala jejich vyyužití pro běžžnou kanceláářskou práci. V po očátcích se vvšak jednalo především o o náhradu pssacího strojee počítačem nebo o vede ení jednoduché kancelářské k agendy pom mocí tabulkových progrramů nebo jednoduchýých daatabází. Počítače v počáttcích nebyly sspojeny sítí, takže se přeenos dat provváděl pouze na disketách.
Sííťové propojení Jeednotlivé oso obní počítačče se propo ojovaly počíttačovými síttěmi (LAN i WAN). Hlavvní výýhodou se sttává možnost sdílení, a to jak soub borů, tak i zdrojů (napřííklad tiskáren). Přřibyla možno ost komunikkovat pomoccí elektroniccké pošty. Taato koncepcce se nazýváá " seerver / praco ovní stanice"". Objevují se s však i nevvýhody: zavaalení pracovníků desítkami zp práv elektron nické pošty, které si nevyyžádali a které jim byly p poslány pouzze „co kdybyy je
15
modulu tvůrcee systému
to o zajímalo.: cchaos v soub borech, jejich h místech ulo ožení a názvvech a předeevším obtížno ost řízzení týmové práce.
Ko oncepce klient / servver Ko oncepce přenosů souborrů není většinou vhodná pro potřebyy sdílení informací. Důvo odů je několik: sou ubor může být b editován n v jednom okamžiku o po ouze jedním uživatelem, je btížně zajistiitelná jedineečnost a akttuálnost dokkumentu neehledě k tom mu, že přen nos ob ceelého soubo oru je neefeektivní. Před dstavme si rozsáhlou databázi. d I p při změně jen j něěkolika polo ožek by musela být přřenášena celá. Pokud ale a rozdělím me úlohy mezi ceentrální počíttač a pracovní stanici ‐ koncepce klie ent / server, pak. Ti k serrveru přistup pují prrostřednictvíím svých po očítačů s malými m částm mi této aplikace‐klientyy. Výhodou je možnost serveeru nabízet ssvé služby taakřka neome ezenému poččtu uživatelů ů ‐ záleží pou uze naa výkonnosti serveru. u koncepce kklient / server je větší loggické oddělen ní klienta od serveru, takkže Daalší výhodou ob ba mohou prracovat na ráázných platfo ormách. Tím se služby seerveru, jenž o obvykle běží na sp peciálním op peračním so oftware ‐ tzv. síťovém m operačním m software (Novell, Un nix, W Windows Server atd.), mohou m zpřístupnit i na uživatelsky více přátellské a levně ější platformě a mohou m s nim mi pracovat i méně zku ušení uživateelé. A jedno ou z největšíích výýhod je, že PC již nejsou pouhá zobraazovací zaříze ení, ale mají svou vlastníí výpočetní ssílu a mohou s nabízenými daaty dále praccovat. Jsou vvelmi univerzzální. Existuje pro ně velké duchých programů, utiliit až po vellké množství aplikací, v rozssahu od malých jednod daatabázové prrogramy, DTP apod.
1..2.1 Konccepce tenkýý klient/se erver Pů ůvodní koncepce typu klient/server k předpoklád dala na stran ně klienta kvvalitní a draahý so oftware. Ten nto software navíc vyžad doval výkonn né hardwaro ové prostřed dky. Výkonno ost seerverů se zvěětšovala, zvěětšovala se propustnost počítačovýcch sítí, kteréé byly schop pny přřenášet většší objemy daat. Pak se vyskytla v otázzka, zda by veškeré pro ogramy nebyyly naainstalovány na serverecch a na uživvatelských po očítačích by byl jen softtware schop pný zaajistit zadáváání dat a zobrazování z výsledků. S S tímto návvrhem přišel mimo jiné é i M Microsoft se s systémem W Windows NT, kdy odkoup pí licenci firm my Citrix Systtems a využiil v teerminálu NT 4.0 Server vv rámci projeektu s kódovvým označen ním "Hydra".. Funkčnostt je zaachována i v následujícícch verzích systému Wind dows včetně verze Windows 7 známou po od pojmem vvzdálená plocha. Teermín tenký klient byl vytvořen v v roce 1993 Tim T Negris, viceprezident marketin ngu Seerver Oracle Corp V té době, d Oraclee chtěl odlišiit jejich servver‐orientovaaný software e z plochy orienttované na produkty p spo olečnosti Microsoft. M Negris N se slů ůvkem se pak p po opularizoval jeho časté použití v prrojevech Elliison a rozho ovory týkajíccí se produkktů Orracle.
1..2.2 Vývo oj ultra tenkých klientů v posled dní době Teenký klient využíval v celýý operační syystém, kterýý zajišťuje k jiným počítačům. Dneššní treend směřujee k ultra‐ten nkým klientů ům či nulovýým klientům m. Místo spu uštění běžné ého op peračního syystému se sp pustí jen malé jádro, kte eré pouze iniicializuje síť, zahájí síťovvou ko omunikaci s určeným síťovým s pro otokolem a zprostředko ovává graficcky výstup ze seerveru. Teencí klienti zaaložené na w webových ap plikacích
Záákladní pojmy z teorie systémů a systtémové analýýzy
Titto klienti se spoléhají na software intternetových prohlížečů p pro zprostřed dkování vlastní ap plikace a ukládání dat. Jeediné ale, zaato zásadní sselhání nastaane, když seelže připojen ní k Internetu.
1..2.3 Cloud d computin ng Cloud computting je na model vývoje a používaní počítačových h technologií postavený na internetových technologiiích.[1] Lze jej charaktterizovat jakko poskytovvání služeb či prrogramů uložžených na seerverech přísstupných na Internetu. U Uživatelé k těěmto serverů ům přřistupují pom mocí webovéého prohlížečče nebo klien nta příslušnéé aplikace. Teen je přístup pný prrakticky odku udkoliv, kde je k dispozicci internet. U Uživatelé nep platí (za před dpokladu, že e je slu užba placenáá) za vlastníí software, ale a za jeho užití. u Nabídkka aplikací see pohybuje od kaancelářských aplikací, přees systémy p pro distribuo ované výpočtty, až po opeerační systém my prrovozované vv prohlížečích, jako je například eyeO OS, Cloud či iC Cloud. Charakteristika a Teechnologie C Cloud computingu se vyzn načuje následujícími atrib buty: Multitenancy ‐ tento pojjem lze voln M ně přeložit jako j "více nájmů". n Jedn ná se o to, že po očítačové zdroje jsou sdílené mezi všemi uživateli. • • • •
Obrovvská škálovaatelnost a elasticita ‐ ‐ umožní uživatelům u rychle změnit výpočetní zdroje d dle potřeby. Plať zaa to, co spottřebuješ (Payy as you go)) ‐ tento přísstup je založen na principu kolik ttoho uživatell spotřebuje,, tolik zaplatíí. Aktualizovanost (U Up‐to‐date) ‐ všechen so oftware je automaticky a ný, aktualizovan o tohoto pro ocesu nijak zaasahovat, všee zařídí poskkytovatel. uživattel nemusí do Přístup přes internet ‐ uživateelé se moho ou ke svému softwaru přřipojit kdeko oliv po celém světě.
17
modulu tvůrcee systému
•
OBRÁZEEK 1.1
Cloud comp puting. Zdroj: http:://cs.wikiped dia.org/wikii/ Soubor:Cloud_computiing.svg
Po oskytování služeb clo oud compu utingu je m možné trojím způsob bem: •
• •
Veřejn ný (Public clloud computing) — Někkdy je označčován jako kklasický mod del cloud computingu u. Jedná se o model, kdy k je službaa poskytnuta a nabídnu uta širokéé veřejnosti. Soukro omý (Privatee cloud com mputing) je provozován p organizaci a to pouze pro o buď organizací sam motnou, neb bo třetí stran nou. dní (Hybrid ccloud compu uting) kombiinují jak veřeejné tak sou ukromé cloud dy. Hybrid Naven nek vystupujíí jako jeden cloud, ale jsou propojen ny pomocí staandardizačníích techno ologií.
Infrastruktura komunitníh ho cloudu (Communityy cloud com mputing) je sdílena mezi může spojovvat něěkolika organizacemi, skkupinou lidí, kteří ji využívají. Tyto organizace m beezpečnostní politika, stejný obor zájm mu.
Záákladní pojmy z teorie systémů a systtémové analýýzy
M Možné nevý ýhody. Záásadní nevýh hodou je závislost na poskytovateli p i ‐ společno osti využívajíící cloud ztrácí možnost rozhodovat, který software a kterou ve erzi používatt. Čím větší společností je po oskytovatel, tím hůře see s ním komu unikuje a vyyjednává pod dmínky. Uživvatelé též musí po očítat s tím m, že poskyttovatel můžže zdražit ceny svých služeb, s v horším přípaadě zb bankrotovat. V některýcch případech h je změna na nového poskytovateele neskuteččně náákladná, zvláášť v případech, kdy poskkytovatel pou užívá proprieetární techno ologie. Neeexistuje skkoro žádné dlouhodobéé a spolehlivé doporuččení týkajícíí se používáání teechnologie clloudu. Také komunikacee založená na internetu vyvolává otáázky týkající se beezpečnosti dat. Migrační nákllady ‐ použíívání cloudu M u by mělo snížit náklady za rutinníí IT operace e a um možnit firmáám investovaat více peněěz do vlastníího byznysu.. Neplatí to ale absolutn ně. Prro některé firmy přesun do cloudu znamená pře eprogramováání firemního o softwaru taak, ab by dobře spo olupracoval ss cloudovým řešením, vyšškolit stávajíící zaměstnance ve firmě ě či si nabrat novéé a změnit firemní f pravvidla. Online software může m občas b běžet pomalleji pokud selže iinternetové připojení. neebo být zcelaa nefunkční p Daalším nebezp pečím můžee být odlišnýý právní řád poskytovateele a klientaa. Poskytovatel clo oud computingu může být podřízen jjiné jurisdikcci než jeho klient. Například společno osti síd dlící v USA n nebo poskytu ující službu zz USA jsou povinny podsstoupit data klienta vládě ě v so ouladu s PATTRIOT Act, což může býtt v konfliktu u s povinností ochrany o osobních údaajů uloženou klien ntovi zákonem… ZAPAMATTUJTE SI
povinně
Informačční systémy: • • •
se výýznamně pro ojevily v každodenním živvotě podniků ů i jednotlivců ů, ovlivnily jednotlivvce i celou sp polečnost, získaaly svůj vnitřřní „řád" a teerminologii.
Informačční systémy zzastřešují všeechny důležitté podnikovéé funkce Nejdůležitějšším pojmem teorie systtémů je poje N em systém. Tento pojem lze chápaat r různým způ ůsobem. Syn nonymy slo ova systém jsou slovaa režim, řáád, soustavaa, u uspořádání. SSystém je deefinován jako o účelově usspořádaná množina m prvkků a množin na vazeb mezi n nimi, s dynam mickým chovváním, které společně urččují vlastnosti celku. S Systém vždy chápeme jakko část realitty, modeluje jej včetně vazby na okollí. K Koncepce klie ent znamenáá: • • •
aplikkace běžící na n centrálním m počítači ‐ ‐ serveru ‐see obvykle sttará o data a zdrojje a nabízí služby uživateelům logické oddělen ní klienta od o serveru, oba moho ou pracovat na ráznýcch platfformách . služžby serveru sse mohou zp přístupnit i n na uživatelskyy více přátellské a levnější platfformě
19
modulu tvůrcee systému
Cloud compu C uting je na m model vývojee a používan ní počítačovýých technolo ogií postaven ný n na internetov vých technollogiích T Technologie Cloud computingu se vyzznačuje. • • • •
obro ovská škálovaatelností a elasticitou zásad dou plať za to, co spotřebuješ aktuaalizovanost přístup přes interrnet o užživatele od jeho dat a a to, že není majitelem m Nevýýhodou je oddělení softw warové platfo ormy
KONTROLNÍÍ OTÁZKY
povinně
Co jee systém. Jaký je trend ICT Jaký je trend ve vvývoji inform mačních systé émů
Záákladní pojmy z teorie systémů a systtémové analýýzy
S SHRNUTÍ KA PITOLY
Systéém jako obeccný a techniccký pojem o vazba sysstému na okolí. o účelovosst a cílovost ssystému Vývo oj informačníí technologiee v komerčníí sféře o středisko ové dávkové zpracování o centrálníí databázovéé systémy o nástup PC počítačů síťovvé propojení o koncepcee klient / serrver o tenký klieent/server o ultra ten ncí klienti Cloud d computingg o možné výýhody a nevýýhody. STTUDIJNÍ LITEERATURA Prrojektování informačních h systémů I : strukturovaaný a objekto ový přístup // Dušan Kajzar, Ivan Polášek. ‐‐ Vyd. 1. ‐ Opava : Slezskká univerzita, 2003 ‐ 219 9 s. : il. ISBN 80‐7248‐214 4‐9 (b brož.) Tvvorba inform mačních systéémů II : procces vývoje in nformačního systému / D Dušan Kajzarr. ‐ Vyyd. 1. ‐ Opavva : Slezská univerzita, 20 005 ‐ 221 s. : il. ISBN 80‐7 7248‐288‐2 (b brož.) Tvvorba WWW W stránek pro úplné začátečníky [Brroža, 2006] / / Petr Brožaa. ‐ 5. aktualiz. vyyd.. ‐ Brno : C Computer Press, 2006 do otisk ‐ x, 149 s. : il. ISBN 8 80‐251‐1300‐‐0 (brož.) Inovace podniikových informačních systémů : pod dpora konkurrenceschopn nosti podniků ů / Jo osef Basl a ko olektiv. ‐ 1. vyd.. ‐ Prahaa : Professio onal Publishing, 2011 ‐ 1 150 s. : il. ISBN 97 78‐80‐7431‐0 045‐4 (váz.) Po odnikové info ormační systtémy : podniik v informačční společnossti [Basl, 200 08] / Josef Baasl, Ro oman Blažíčeek. ‐ 2., výrazzně přeprac.. a rozš. vyd. ‐ Praha : Grrada Publishiing, 2008 ‐ 2 283 s. : il. ISBN 978 8‐80‐247‐227 79‐5 (váz.) nalýza a návvrh informaččních systém mů [Řepa, 19 999] / Václavv Řepa. ‐ Vyyd. 1. ‐ Praha : An Ekkopress, 1999 ‐ 403 s. : il. ISBN 80‐86119‐13‐0 (brrož.) Arrchitektury informačních systémů v průmyslo ových a obcchodních po odnicích / Jan J Do ohnal, Jan Pour. P ‐ Vyd. 1. ‐ Praha : Ekopress, 1997 1 ‐ 301 s. s : il. ISBN 80‐86119‐02 2‐5 (b brož.) Prrincipy a mod dely řízení podnikové infformatiky / Jiří Voříšek a kolektiv. ‐ V Vyd. 1. ‐ Prah ha : Oeeconomica, 2 2008 ‐ 446 s. : il. ISBN 97 78‐80‐245‐14 440‐6 (brož.) Informační sysstémy v pod dnikové praxi [Sodomka, 2010] / Pettr Sodomka, Hana Klčováá. ‐ 2. aktualiz. a rrozš. vyd.. ‐ B Brno : Compu uter Press, 2010 ‐ 501 s. : il. ISBN 978 8‐80‐251‐287 78‐ 7 (váz.)
21
modulu tvůrcee systému
Výývoj systému u a jeho živottní cyklus
2 Vývojj systém mu a jeho životn ní cyklus Ú ÚVOD Prro pochopen ní složitosti a a komplexno osti návrhu in nformačního o systému po otřebuje zná át, jakým způsob bem je systéém vyvíjen a a za jakých podmínek může m být jeh ho nasazení a prrovoz úspěšn né. Bez zna alostí osvědčených posttupů si dnees nejde přeedstavit prá áci v o oblasti systéémového pří řístupu. Mettodiky a s níím definova ané etapy žiivotního cykklu syystému nám umožní se o orientovat v ttéto složité ttématice. Pro o úspěšnou p práci ve vývo oji a nasazování informačních h systému v praxi je si vžždy uvědomiit, že nejdůleežitější je zná át cíll, kterého ch hceme, dosáh hnou, že bezz spolupráce zadavatele a tvůrce systému se nelzze ob bejít a v nepo oslední řadě,, že na prosa azování inforrmační strateegie v podnikku je nezbytn ná úččast nejvyššíh ho managem mentu CÍÍLE KAPITOLY Y Po o prostudová ání této kapiitoly a budete umět chápaat význam metodik při výývoji informaačních systém mů chápat význam živvotního cyklu u Po o prostudová ání této kapiitoly ZÍSKÁTTE: přehleed moderních používanýcch metodik znalossti obsahu jednotlivých eetap životního o cyklu a jejich náplně Po o prostudová ání této kapiitoly a vypra acování úkollů BUDETE SC CHOPNI: posou udit návrh infformačního ssystému z rů ůzných hledissek
23
modulu tvůrcee systému
2..1 Životn ní cyklus infformačníh ho systému u Žiivotní cykluus informaččního systém mu zahrnujje celou etaapu tvorby informačního syystému přess jeho uváddění do provvozu až po jeho vlastnní provoz a údržbu. Jaako přříklad
uceeleného
ž životního
cyklu
náám
poslouuží
metoddiky
MD DIS
(M Multidimenssional Deveelopment off Informatio on System) (ŘEPA) ( 2.1.1
Stručnná charakteeristika metoodiky MDIS S
M Metodika M MDIS (Multiidimensionaal Developm ment of Innformation System) by yla deefinována a publikována na VŠ ŠE v Prazee v roce 1992. 1 Její význam tk kví přředevším v tom, že ji můžeme m chápat jako návod, n jako vzor způsoobu uvažováání přři vývoji IS S. Metodikaa nám pom máhá struktu urovat prácii. Je jakým msi seznameem tooho nejdůleežitějšího, čemu č bychoom se mělli v jednotllivých fázícch vývoje IS věěnovat apodd. Důležitý pojeem v této metodice m je pojem „mu ultidimenzioonální". Tvůůrci metodiky tím mto zdůrazňňují, že na vývoj a naasazení inforrmačního systému muusíme pohlížžet z všech možnných úhlů. Každému jednotlivém mu úhlu poohledu pak jinými slovy říkkáme dimennze systémuu. Právě poodcenění tak kové souhrnnné analýzyy vedlo tvůrrce m metodiky naa základě analýz a příčiin neúspěch hů vývojovvých firem při vývojii a zaavádění IS do provozu k tvorbě takto souh hrnné metoddiky. Snahoou je pak co neejvíce omezzit možné přříčiny neúsppěchu vývojje a nasazenní IS. Jinnými slovyy, jde zde o to, abycchom neopo omenuli žáádný faktorr, který mů ůže ovvlivnit úspěěšnost tvorbby a koneččného nasazzení IS. Jeddnotlivé úhhly (dimenzze) poohledu repreezentují užiivatelská a řešitelská ř hlediska vývvoje IS. Běhhem vývoje IS vyycházíme z uživatelskkých pohleddů na systém, ty postuupně transfformujeme na poohledy řešittelské (KAJJZAR, 2005). U Uživatelské p pohledy na systém tvořří: •
pohleedy vrcholovvého vedenní podniku;
•
pohleedy středníhho a prvoliniiového man nagementu;
•
pohleedy výkonnýých pracovnníků - konco ových uživaatelů systém mu.
Řešitelské poohledy na syystém pak zahrnují: z
Výývoj systému u a jeho živottní cyklus
•
proceesy - funkcee systému;
•
datovvé struktury (databáze) systému;
•
HW a SW archittekturu systéému;
•
organnizační a leggislativní aspekty vývojje IS;
•
pracoovní, sociálnní a etické aspekty a nasaazení IS v podniku;
•
ekonoomické (finaanční) aspekty vývoje a nasazení IS I v podnikku.
Dále můžem me definovaat metodickko-organizaační pohleddy na systéém zahrnující pooužité metoody během vývoje v IS, zpracovávan z né dokumennty, metody řízení vývo oje IS S atd. M Metodika MD DIS definuje tyto etapyy životního cyklu IS: •
IST
- etapa info formační strategie podn niku;
•
ÚST - etapa úvoodní studie systému;
•
GAN N - etapa globální analýzzy a návrhu u IS;
•
DAN N - etapa detaailní analýzzy a návrhu IS;
•
IMP - etapa impplementace IS;
•
ZAV - etapa zavvedení IS doo provozu;
•
PÚR - etapa proovozu, údržžby a dalšího o rozvoje IS S.
K Každá z etap zahrnuje náásledující položky: p •
cíl ettapy a dílčí úkoly etapyy;
•
předppoklady (poodmínky) prro zahájení etapy;
•
kritééria (podmínnky) pro ukoončení etapy;
•
klíčoové dokumeenty zpracovvávané v prrůběhu etapyy;
•
kriticcké faktory etapy - fakttory ohrožu ující splněníí cíle a úkolůů dané etap py;
•
nejdůůležitější dílčí činnosti etapy. e
A Abychom coo nejvíce zjeednodušili a zpřehledn nili vývoj IS S je vhodnéé celý systéém m modelovat naa třech záklaadních úrovvních: •
úroveeň konceptuuální repreezentuje pohhled na systéém vyjádřen ný tak, aby jej dobře chhápal uživaatel,
25
modulu tvůrcee systému
je a musí m být nezzávislá na prostředí, p vee kterém budde systém realizován, vyjaddřuje podstaatu (esenci) systému, odrážží reálné proocesy, objekkty, vztahy; •
úroveeň logická (ttaké technologická) vyjaddřuje logickkou strukturuu systému z hlediska prostředí, p vee kterém bud de syystém realizzován, napřř. model datt v relační sttruktuře dattabáze, mod del fuunkcí systém mu; obsahoově musí odp povídat konnceptuálním mu modelu; Tato úroveň ješttě nesmí, zaahrnou fyzicckou realizaaci systému,, je tedy n nezávislá na programovvém a hardw warovém proostředí budooucího syystému.
•
úroveeň implemenntační (fyziccká) odráží implemenntační prostřředí systému u. Jako příkklad můžem me uvést nap př.
daatový modeel v prostředdí relačního databázovéého systémuu Oracle, reaalizace funk kcí poomocí uložeených proceedur a triggeerů apod. Poodstatné je to, že v průůběhu zpracování modeelů IS od koonceptuální úrovně až po úrroveň impleementační přecházíme p od pohled du na systém m ze stranyy uživatele na poohled na sysstém ze straany řešitele. A nyní již přistupme k popisu obsahu jednotlivýchh etap živvotního cyk klu innformačníhoo systému. 2.1.2
Inform mační strateegie podnikuu
Ettapa „Inforrmační straategie podnniku" (IST)) je první etapou živvotního cyk klu innformačníhoo systému, představuje p plán zavádění a inovacce IS/IT v ppodniku. Taato etapa vychází v ze dvou d důležiitých pojmů ů: „globálnní podnikovvá strategie"" a „iinformační strategie" s a jejich vzájeemného vztahu (KAJZA AR, 2005). G Globální poddniková straategie (takéé nazývána stručněji „ppodnikatelsská strategiee", „ppodniková strategie") s jee dokumentt, který urču uje:
•
hlavnní zaměření podniku (sm mysl jeho ex xistence, sm měr vývoje);
•
podniikové cíle, kterých k má být v daném m období doosaženo a jeejich priority y;
•
zdrojee, které buddou určující pro realizacci cílů;
Výývoj systému u a jeho živottní cyklus
•
způsoob ověřovánní plnění cílůů podniku, kritéria pro hodnocení plnění stanovvených cílůů;
•
odpovvědnost (maanažerské fuunkce podniku) za plněění stanovenných cílů.
Prro větší podniky jisttě představvuje globállní podnikková strateggie jeden ze záákladních podnikovýchh dokumenttů. Zpracovává se v něěkolikaletém m (např. pětti i vííceletém) hoorizontu a jee podstatné to, že se neejedná o neměnný dokkument – mu usí tootiž podléhaat změnám v závislostti na změnách vnějšícch a vnitřníích podmín nek firrmy. Sooučasně je nutno staanovit měřřitelná kritééria úspěchhu při napplňování cílů stanovených v globálnní podnikovvé strategiii, tato krittéria nazývváme kriticcké faaktory úspěchu podnikkové strateggie. Tyto faaktory mohhou zahrnovvat jak oblaast finnanční (dossažení danéého zisku - celkově či podrobněji pro jednotllivé pobočk ky, prrodukty apood.), tak i další d oblastii (např. rozšíření prodeeje do danéého regionu uv daaném objem mu zboží, rozšíření sortiimentu výro obků a služeeb apod.). Taato globálníí strategie bývá b rozpraccována v dílčí podnikoové strategii: •
rozprracovávají podrobněji p g globální pod dnikovou sttrategii;
•
nahlííží na globállní podnikoové cíle z určitého úhlu pohledu (ddimenze);
•
sleduují naplnění globální strrategie v daané dimenzi.
Přříkladem mohou být strrategie prodduktů, finan nční strategiie, organizačční strategiee, a pro vývoj innformačníhho systému nezbytná n informační sttrategie.
Innformační sttrategie je jednou z díllčích podnik kových straategií. Vychhází z globállní poodnikové strrategie a tu rozpracováává do oblassti podnikovvé informatiky. A Architektura IS/IT v podniku p nem může být stanovena samoúčelněě - šlo by o pllýtvání finaančními proostředky naa vybavení IS/IT. Muusí vycházeet z (výrobní, obbchodní) činnnosti podnniku a navazzovat na jeh ho další zám měry v „busiiness" oblassti. Sttanovené kritické k fakktory úspěěchu nám pak pomoohou zhodnnotit příno osy
27
modulu tvůrcee systému
jeednotlivých možných řešení v oblasti IS/IT pro naplňování právě těch hto krritických fakktorů úspěcchu. Innformační sttrategie poddniku je dokkument, kterrý (KAJZA AR, 2005): •
stanoovuje cíle a předpoklady p y pro aplikaaci IS/IT v daném d podnniku;
•
stanoovuje prioritty a plány projektů IS/IIT, odhady času, č zdrojůů, přínosů v časovvém horizonntu krátkodoobém (do 1 roku) a střeednědobém (3-5 let);
•
poskyytuje základdní strategiccký rámec pro p nasazováání a inovacci IS/IT v podniku.
Innformační sttrategie poddniku by měěla obsahov vat: •
popiss současné architektury a y IS/IT v podniku (síť HW H a SW kkomponent, pohleed na IS/IT v podniku jako j na celeek);
•
návrhh cílové archhitektury IS S/IT v podn niku (zpracoovaný na záákladě podnikových zám měrů a anallýz trendů v oblast IS/IT T);
•
plán přechodu p zee současnéhho stavu arcchitektury IS S/IT do stavvu cílového..
Jee nutno vzítt na vědomí, že zaváděění a inovaace IS/IT vee velkých ppodnicích jsou innvestiční, finnančně velm mi náročné akce. Tyto o mohou ročně zahrnovvat desítky či stovky milionnů Kč. Scchválení dokumentu „IInformační strategie po odniku" top managemenntem podniku jee pak souhlaasem a signnálem k posstupnému uvolňování u f finančních pprostředků na innovaci infraastruktury IS/IT I v poddniku - v souladu s se schválenouu „Informačční strrategií podnniku". Ne ejdůležitější na celém živvotním cyklu IS a tudíž i metodiky m je stanovení s cíle e, kterého ch hceme dosáh hnout.
Cíl etapy IST T: •
zpracoovat nový resp. inovovat stávajjící dokumeent informaační strateg gie podniiku - tj. zprracovat strattegii (záměrr, plán) vývvoje a fungování IS/IT Tv podniiku na záklaadě analýzyy globální podnikové sttrategie. Vyypracovává se v kráttkodobém časovém horrizontu (do 1 roku) a sttřednědobém m (3-5 let);
Přředpoklady pro zahájenní etapy: •
v poodniku muusí existovvat aktuáln ní globálnní podnikoová strateg gie (podnnikatelská sttrategie);
Výývoj systému u a jeho živottní cyklus
•
vypraacování infoormační strrategie podn niku je zaddáno nejvyššším vedeníím podniiku a zpraccování inforrmační straategie podnniku je podpporováno top t managgementem podniku. p
K Kritéria pro ukončení u etaapy: • je zpraccován dokum ment inform mační strateg gie podnikuu v požadovvané struktuřře; •
podpoora
podnikkatelských
cílů
a
záměrů
podniku
navrhovan nou
architeekturou IS/IIT a jejich vzájemný v vzztah; •
je deffinován vztaah mezi infrastrukturo ou IS/IT v podniku a podnikovým mi processy v oblasti produkční i řídicí sféřee;
•
jsou určeny u prioority dílčích cílů info ormační strrategie a sstanoven pllán přechoodu ze stávaající do navvržené cílov vé architektuury IS/IT v ppodniku;
•
je provveden odhaad potřebnýcch zdrojů prro realizaci informačníí strategie;
•
dokum ment "inform mační strateegie" je schv válen vrchoolovým vedeením
podniku. K Klíčové dokuumenty vzniikající v průůběhu etapy y: •
analýzza záměrů podniku p plynoucích z globální g poddnikové straategie;
•
analýzza současnéé architektuury IS/IT v podniku a podpory podnikový ých záměrrů a kritickýých faktorů úspěchu zee strany souučasné archiitektury IS//IT v podnniku;
•
analýzza trendů v oblasti IS S/IT v časovém horizoontu krátkoodobém (do o 1 roku),, střednědobbém (3-5 lett), případně prognóza dlouhodobá d ;
•
návrh cílové archhitektury IS//IT v podnik ku;
•
plán (harmonogra ( am) přechoodu ze součaasné architeektury IS/IT T v podniku uk navržeené cílové architektuře a e IS/IT.
K Kritické faktoory ohrožující splnění úkolů ú etapy y: •
není zpracovánaa či je nedostatečně stabilizovaaná globálnní podniko ová strateggie (podnikaatelská strattegie);
•
malá angažovanoost a podpoora vrcholo ového vedenní organizaace při tvorrbě inform mační strategie;
29
modulu tvůrcee systému
•
tvůrci informačníí strategie neudrží n kon nzistenci cíllové architeektury IS/IT Ts cíli a záměry z poddniku;
•
tvůrci informačníí strategie zabřednou z do d zbytečnýcch podrobnností, nedodrrží obecnný (globální)) pohled na navrhovano ou architektturu IS/IT;
•
nedosttatečná kvvalifikace a zkušeno ost lidí poověřených zpracováníím inform mační strategie podnikuu;
•
nedoddržení stannoveného času na zpracování informačční strateg gie (zpraccování informační straategie by neemělo přesááhnout 1/200 -1/10 dob by, na kteerou se tato strategie staanovuje).
Přřehled činnoostí etapy: •
stanovvení plánu prací p pro etaapu IST;
•
proveedení analýzzy globální podnikové p strategie; s
•
proveedení analýzzy trendů v oblasti o IS/IT T v potřebnném časovém m horizontu u;
•
analýzza současnéé architektuury IS/IT a její zhodnoocení z hleddiska podpo ory podniikatelských cílů a záměěrů podniku u;
•
upřesnnění dalšíchh požadavkků a pravid del pro zavvádění a inoovaci IS/IT T v podniiku (např. zee strany mannagementu IS/IT podnniku);
•
návrhh cílové archhitektury IS//IT v podniku;
•
stanovvení plánu (harmonogr ( ramu) přech hodu ze souučasné archiitektury IS//IT v poddniku k navrržené cílovéé architektuřře IS/IT;
•
prezenntace návrhhu informačnní strategie managemenntu podnikuu;
•
oponeentura, připoomínkové řízení a úpraavy informaační strategiie;
•
schváálení inform mační strateggie vrcholov vým vedením m podniku.
Zppracováním m informačnní strategiee podniku (resp. zdookumentovááním globální poodnikové sttrategie a náásledným zppracováním m informačnní strategie ppodniku) see v prraxi obvyklle zabývají firmy (tzv.. systémovíí integrátořii a odborníí konzultantti), ktteré mají pracovníky p se znalosstmi a zku ušenostmi v oblasti iinformatiky y i ekkonomiky. Schválením m informačnní strategie vrcholovým m vedením podniku jsou scchválené také budoucíí investice na realizacci cílové arrchitektury IS/IT, tj. na poostupné zavvádění (inovvaci) podnikkových informačních syystémů.
Výývoj systému u a jeho živottní cyklus
2.1.3
Úvoddní studie syystému
Innformační strategie podniku p urrčuje (závaazný) záměěr zaváděnní a inovaace poodnikovýchh IS/IT. V této etapěě hledáme konkrétní řešení prro jednotliivé poodnikové IS S ani dodavaatele těchto řešení. Cílem etapy „Úvodní sttudie systém mu" (ÚST) je j konkretizzovat řešenní IS. Nepůjde o podrobnou analýzu a návrh systéému. Stále se s budeme pohybovat na koncepčční úrrovni, kdy jde o obeecné pojetí řešení. Vy ytváříme si postupně představu o m možném řešeení IS. Cíl etapy ÚST: •
posouudit realizovvatelnost kooncepce systému navržžené na záklladě schváálené inform mační strateggie;
•
navrhhnout alternativy řešeníí, provést sttudii jejich proveditelno p osti a navrhhnout optim mální řešení pro p podnik;;
•
odhaddnout náklaady a přínosy vybraného řešení;
•
rozhoodnout o zahhájení globáální analýzy y daného řeššení.
V průběhu úvodní studie apllikujeme techniku t „ „rozhodova ací analýzy y". Rozhodovacíí analýza jee obecnou technikou t řešení ř situaccí, ve kterýých známe cíl řeešení, není však jasnýý způsob jeeho dosažen ní. Detailněě se lze o ttomto témaatu doočíst v napřř. [ZON97-11]. Jeednotlivé fázze rozhodovvací analýzyy tvoří: •
vymeezení probléému, stanovvení cílů řešeení;
•
rozboor informacíí a podkladůů k problém mu - přípravaa pro stanovvení variantt řešenní a kritérií jejich hodnoocení;
•
stanovení variant řešení a krritérií pro ho odnocení vaariant;
•
hodnoocení variannt podle danných kritériíí;
•
odhaddy rizik jednnotlivých vaariant řešen ní;
•
volbaa nejvhodněj ější variantyy z hlediska zvolených kritérií k hodnnocení.
Jaako příkladyy kritérií, která k lze zvoolit pro possouzení vytiipovaných vvariant řešeení m mohou sloužit:
31
modulu tvůrcee systému
m možnost moddifikace a roozšiřitelnostti systému (KAJZAR, ( 2 2005), •
jednooduchost navvrhovanéhoo řešení,
•
míra spolehlivos s ti,
•
použiití progresivvních technoologií,
•
vztah k dodavateeli,
•
pozice dodavatelle na trhu (rreference),
•
dostuupnost a poddmínky servvisu atd.
Jeednotlivým kritériím přřiřadíme škkály, podle kterých buddeme jednootlivé varian nty vzzhledem k danému krritériu oceňovat (např. 5 bodů = varianta daané kritériu um zccela splňujee, 3 body = částečně spplněno, 1 bod = velmii málo, 0 boodů = vůbec). Jeednotlivá krritéria také nemusí n mít stejný vliv na hodnoceení variant - můžeme jiim přřiřadit tzv. váhu. Váhyy jednotlivýých variantt vyjadřujem me číselně (budeme mít m naapř. kritériuum s váhou 1.0, kritériuum s váhou 0.75, kritériium s váhouu 0.5 atd.). K každé alternativě (vaariantě) řešeení pak odv Ke vodíme její číselné hoddnocení, kteeré see rovná souučtu získanných bodů u jednotlivý ých kritériíí. Obdobně hodnotímee i rizzika jednotllivých variaant řešení. Číselná hodnnocení variaant nám pom máhají: •
diskuutovat v odborném týmuu nad hodno ocením variiant podle sttanovených h kritérrií a podle daných stupnnic;
•
vybraat optimální variantu řeešení z hlediiska číselného ocenění její užitnossti i jejícch rizik;
•
kvaliffikovaně zddůvodnit výbběr varianty y řešení.
K Klíčové dokuumenty vzniikající v průůběhu etapy y: •
zadáání pro zpracování úvoddní studie sy ystému;
•
speccifikace požadavků na systém s (fun nkční a ne-fuunkční požaadavky);
•
konccepční dokuumenty - stuudie realizov vatelnosti jeednotlivýchh variant
řešení; •
výběrr a zdůvodněění koncepcce řešení;
Výývoj systému u a jeho živottní cyklus
•
návrhh schvalovaccích proceduur pro vyvíjjený IS;
•
návrhh plánu testoování a akceeptačních teestů;
•
podroobný harmonnogram další etapy - GAN. G
Pood pojem fuunkční požaadavky zahrrnujeme požžadavky týkkající se funnkcí, které má m IS S obsahovatt. Pod pojem m ne-funkčční požadav vky zahrnujeeme požadaavky, které se neetýkají přím mo funkcí syystému. Mezzi ne-funkčn ní požadavkky napříkladd patří: •
omezeení kladenáá na systém (využití již provozovanných technoologií, spoluppráce se staaršími systém my apod.);
•
podm mínky a term míny dodání systému;
•
impleementační požadavky (vvyužití danéé platformyy operačníhoo či databáázového sysstému apodd.);
•
maxim málně přípuustná cena syystému, pod dmínky spoolupráce, poodmínky
servisu; •
atd.
K Kritické faktoory ohrožující splnění úkolů ú etapy y: •
malá angažovanoost a podporra vrcholového vedení organizace i dalších zástuppců zákaznííka;
•
nevhoodný výběr spolupracovvníků ze strrany zákaznníka do projeektového
týmu; •
výběrr a schválenní nevhodné alternativy řešení;
•
nekvaalitní oponenntura úvodnní studie;
•
překroočení času (ÚST ( by měěla být hoto ova do 3-4 měsíců m od ddata zadání)..
2.1.4
Globáální analýzaa a návrh IS
Ettapa „globáální analýza a návrh IS"" (GAN) vy ychází z konncepce stanoovené v ÚS ST. Cílem etapy je j detailnějšší rozpracovvání požadaavků na systtém zjištěnýých v ÚST. U m malých projeektů vývojee IS může etapa e GAN splynout s etapou ÚST T, resp. mů ůže prroběhnout pouze p ve zkrrácené form mě. Pood pojmem m analýza IS S budeme rozumět r zísskávání a rozbor r inforrmací o no ově vyyvíjeném (iinovovaném m) IS. Anaalýza vycháází ze současného staavu systém mu, pookračuje zísskáváním, doplňováním d m a upřesňo ováním info formací vztaahujících see k
33
modulu tvůrcee systému
noovému systtému. Kvaliitní analýzaa systému je j nutnou podmínkou p pro násled dný zddárný návrhh systému. Pood pojmem návrh IS buudeme rozuumět zpraco ování modellu nového (inovovanéh ho) syystému. Slovvo globální podtrhuje celkový c poh hled na vyvííjený IS. Cíl etapy GA AN: •
rozděělení systém mu do hlavníích subsystéémů;
•
proveedení analýzzy a návrhu hlavních su ubsystémů;
•
návrhh rozhraní syystému vzhlledem k jeh ho okolí;
•
návrhh rozhraní mezi m hlavním mi subsystém my.
I v této etapěě jde stále o hrubou (koonceptuální a technologgickou) úrovveň analýzy ya náávrhu systém mu, tj. musííme si ujasnnit: •
co muusí systém vykovávat v (j (jeho hlavní funkce);
•
jak roozdělit systéém do záklaadních subsy ystémů;
•
které datové objeekty jsou poodstatné;
•
jaké jsou vlastnoosti objektů a funkcí.
V této etappě vytvářím me model struktury systému a jeho suubsystémů na koonceptuálních a technoologické úrrovni. Musíme dát pozzor, abychoom se vyhnu uli im mplementační úrovni modelování. m K Kritické faktoory ohrožující splnění úkolů ú etapy y: •
malá angažovanoost a podporra vrcholového vedení organizace i dalších zástuppců zákaznííka;
•
slabá kontrola úpplnosti analýýzy a návrh hu IS a kvaliity provedenných prací;
•
získánní nepřesných informaccí;
•
špatnéé odstínem konceptuálnního návrhu u od implem mentačních vvlivů (neměěli bychoom jít do věětších detailůů, než je po otřeba);
•
nedoddržení harm monogramu prací; p
•
návrhh systému see odchyluje od cílů IST T a ÚST.
Jaako příklad si uveďmee možnou osnovu o výslledného dokkumentu ettapy GAN, tj. ossnovu dokum mentu "Gloobální návrhh systému": •
Rekappitulace zaddání a princiipů řešení;
Výývoj systému u a jeho živottní cyklus
•
Omezzení kladenáá na systém (HW, SW, termíny, technologická
omezení,…); •
Funkčční a datovýý návrh systém mu: -- topoloogie systém mu, —
SW řešeení aplikačnních vrstev v (ve tříúrrovňové
archittektuře), -- hrubý funkční návrh n systéému a vyznaačení klíčovvých funkcí, ~ aplikačn ní rozhraní směrem s k jinýým systémům m, -- hruubý datový model, m —preezentační rozhraní a zássady pro ov vládání systéému, —zajiištění požaddavků na doostupnost daat a systémuu; •
Technnický návrh systému: ~ fyziická realizaace a konfiggurace aplikačních serverů, ~ fyzickká realizace a konfiguraace datovvých serverůů, —odhhad objemuu dat v databbázích a mohutnosti dattových tokůů, —minnimální a dooporučená konfigurace k e stanic konccových uživvatelů;
•
Orgaanizačně proovozní návrhh: —typpy uživatelůů a jejich poččty, —zajiištění podpoory uživatellů po uvedeení systému do rutinníhho provozu, -princiipy provozoování systém mu, —způůsob správyy systému;
•
Zajištění bezpeččnosti systém mu: —zajiištění ochraany systémuu, —zajiištění dostuupnosti systéému, —souulad řešení IS I s požadavvky bezpečn nostní polittiky stanoveené v podniiku;
• 2.1.5
Návrrh postupu vývoje v a zavvádění systéému do provvozu. Detailní analýza a návrh IS
N Návrh IS zprracovaný v předchozí etapě není ještě j na takkové úrovnii podrobnossti, abby mohla býýt zahájená implementtace systému u, tj. prograamátorské ppráce. V etaapě
35
modulu tvůrcee systému
deetailní analýýzy a návrhhu (DAN) půjde p jak o prohloubenní analýzy systému, tak ko zppracování návrhu n (moodelu) IS na n úrovni podrobnosti p i vhodné k následném mu prrogramovánní. Cíl etapy DA AN: •
prohloubení anallýzy a násleedný návrh systému doo úrovně, v níž je možno ovně, která bude sloužiit jako zadáání začít systém impplementovatt, tj. do úro pro prrogramátoryy;
•
proveedení detailnního návrhuu nové orgaanizační struuktury pracoovišť podniku a provvozní technnologie vzhlledem k nov vě vyvíjeném mu IS.
K Klíčové dokuumenty vzniikající v průůběhu etapy y: •
podroobné funkčnní, datové reesp. další mo odely dle pooužité metoody vývoje IS; I
•
model organizačnní strukturyy podnikový ých útvarů, které k budouu s novým systém mem pracovvat;
•
model provozní technologie t e (podnikový ých procesůů a postupů práce s novým m systémem m);
•
schvaalovací proccedury a pláán testování,, akceptačníí testy;
•
podroobná hardwaarová studiee - konfigurrační analýzza;
•
plán (harmonogr ( ram) zaváděění IS do pro ovozu;
•
plán (harmonogr ( ram) prací další d etapy - IMP.
K Kritické faktoory ohrožující splnění úkolů ú etapy y: •
nízká kvalita inteerview s buddoucími užiivateli systéému a slabá podpora z jejichh strany;
•
nevhoodně navržeené uživatelské rozhran ní;
•
špatněě provedenýý odhad nákkladů na výv voj a zaveddení nového systému do o provoozu;
• 2.1.6
špatnáá koordinacce řešitelskýých týmů (an nalytiků, náávrhářů, proogramátorů)). Impleementace IS S
V této fázi máme m zpracoované modeely nového systému v podrobnosti p i dostatečnéé k zaahájení proggramátorskýých prací. Začíná Z etapaa implementtace IS (IMP P).
Výývoj systému u a jeho živottní cyklus
Cíl etapy IMP P: •
vytvvoření inform mačního sysstému podlee zpracovanného návrhuu;
•
otesttování IS poodle stanoveených testov vacích proccedur.
K Klíčové dokuumenty vzniikající v průůběhu etapy y: •
plán (harmonogr ( ram) prací v etapě IMP;
•
zdrojoové kódy prrogramovýcch modulů a knihoven;
•
technologická, uživatelskáá referenční, operáttorská, proogramátorsk ká, adminnistrátorskáá dokumentaace k systém mu;
•
zprávva o výsledccích testovánní systému;
•
plán migrace m (koonverze) datt do nového o systému;
•
plán školení š uživvatelů;
•
plán pro p zaváděnní, údržbu a další rozvo oj IS.
K Kritické faktoory ohrožující splnění úkolů ú etapy y: •
nedoddržení časovvého plánu etapy IMP;
•
neadeekvátní zaprracování požadavků naa systém do vznikajícíhho SW;
•
nedůssledné odladdění a testovvání systém mu;
•
nedoddržení metodické jednooty program mů.
2.1.7
Zaváddění IS do provozu p
V této fázi je IS naproggramován, otestován, zdokumenttován, probběhla základ dní akkceptace syystému z hllediska jehoo funkčnostti. Následujje etapa zaavádění IS do prrovozu (Z A V). Cíl etapy ZA AV: •
zaveddení IS do ruutinního proovozu.
K Klíčové dokuumenty vzniikající v průůběhu etapy y: •
plán etapy e zaváděění IS do prrovozu;
•
předeppsaná dokum mentace k IS; I
•
školíccí (učební) texty;
37
modulu tvůrcee systému
•
zprávaa ze zavádění IS do proovozu;
•
předávvací protokooly k IS.
K Kritické faktoory ohrožující splnění úkolů ú etapy y: •
malá angažovano a ost a podporra ze strany vedení poddniku (zákazzníka);
•
neefekktivní školeení uživatelůů;
•
nekvaalitní dokum mentace k systému;
•
nedůsledné a leddabylé prověření systém mu v reálném m provozu;;
•
špatnáá koordinacce činností během b procesu zaváděnní IS do proovozu;
•
nekvaalitně zpracoované předáávací protok koly.
2.1.8
Provooz, údržba a další rozvooj IS
c IS - k etapě provvozu, údržby ya Dostali jsme se až k posslední etapě životního cyklu R). Tato etappa životního cyklu IS je j etapou prrovozní (IS je daalšího rozvooje IS (PÚR vyyužíván záákazníkem v rutinním m provozu) a k proccesu vývoje ji obvyk kle neeřadíme. Jeedná se přeesto nejdůleežitější o ettapu životnního cyklu IIS, ve kterrou vyyústily prácce předchozzích etap. Informační I systém by měl, sloužžil v rutinníím prrovozu co nejdéle n a k co c největší spokojenost s ti uživatelů. Etapa PÚR R by tak měěla býýt nejdelší ze z všech etaap životníhoo cyklu. V firmách se provozuují i systém Ve my bez jaký ýchkoliv úpprav během m několik let; V Většina je taakových, u kterých k je neustálý n rozzvoj nezbyttný. Může jjít o zaváděění noových funkkcí nebo o náhradu n funnkcí zastaraalých, o inoovaci HW, komunikačční teechnologie, apod. Bankovní sekktor, poštovvní provoz, telekomuniikace lze uvvést jako přříklad odvěttví s požadavky na úpravyy a další rozzvoj IS. Ettapa PÚR objektivně o oobsahuje i ve svvém názvu „rozvoj". Navazující etapu je pak p opět první p etapa v okamžiku pootřeby inovvace stávajícího, nebo nutnosti ceelkové náhrrady IS sysstémem zceela noovým. Cíl etapy PÚR: •
zajisttit provoz, údržbu ú a dallší rozvoj IS S.
Výývoj systému u a jeho živottní cyklus
K Klíčové dokuumenty vzniikající v průůběhu etapy y: •
provoozní dokum mentace k systému;
•
evideence bezpečnostních inccidentů a neestandardních situací vvzniklých v systém mu;
•
plányy pro zvládáání krizovýcch situací, havarijní h scéénáře, Disasster Recoverry plányy;
•
návrhhy změn v syystému (funnkčnost, výk konnost, bezzpečnost, ovvládání,…).
K Kritické faktoory ohrožující splnění úkolů ú etapy y: •
pomaalá reakce prrovozovatelle na reálné požadavkyy změn podnnikových procesů;
•
pomaalá reakce doodavatele IS S na požadaavky na úpraavy IS, respp. na probléémy při prááci se systém mem;
•
nekvaalitní implem mentace zm měn v IS - v nových verrzích prograamových moduulů jsou chybby;
•
systém m obtížně zajišťuje požžadované paarametry (ochranu dat, dostupnostt systém mu, výkon);;
• 2.1.9
nekvaalitní řízem změn v sysstému. Závěrr k tématu
Poopsali jsme si jednotlivvé etapy živvotního cykllu IS tak, jakk je rozlišujje metodikaa M MDIS (Multiidimensionaal Developm ment of Info ormation Syystem). Jednnalo se o ettapy: inform mační strateggie podnikuu (1ST), úvo odní studie systému s (Ú ÚST), globállní annalýza a návvrh IS (GAN N), detailní analýza a návrh n IS (DA AN), implem mentace IS (IMP), zaveddení IS do prrovozu (ZA AV), provozz, údržba a další d rozvoj IS (PÚR). U každé etappy jsme charrakterizovalli: cííl a dílčí úkkoly etapy,, předpoklaady pro zah hájení etapyy, kritéria pro ukončeení ettapy, klíčovvé dokumennty zpracováávané v prů ůběhu etapyy, kritické ffaktory etap py, neejdůležitějšíí dílčí činnoosti etapy. V dalších kaapitolách skrripta se buddeme podro obněji zabývvat důležitýými procesy ya čiinnostmi v průběhu vývoje v IS. Tyto proceesy a činnnosti obvykkle procházzejí něěkolika etappami životníího cyklu IS S - půjde náám zejménaa o procesy:
39
modulu tvůrcee systému
•
analýýzy a návrhuu IS v podniiku;
•
testovvání IS;
•
zaváddění IS do provozu. p
Přři projektování systému lze vycházet ze dvou orie entací: technokratické a uživatelské.
Teechnokraticcká orientacce projektu se projevujje tím, že aplikace ceelé technologgie zp pracování datt je plně pod dřízena potře ebám a scho opnostem výýpočetní tech hniky. Jedná se hla avně o minimalizaci tiskkových sestavv a návrhy struktur s dat s maximálníím ohledem na da atové objektty z hlediskka optimální potřeby pa aměťových médií. m To ve ede k silném mu na arušení pracovního rytm mu uživatele a je spojené s jeho výýraznou nech hutí k zavádě ění výýpočetní tech hniky. Op pakem techn nokratické orientace o je uživatelský návrh inform mačního systé ému, pro kte erý jso ou charakterristické požadavky na za achování stáv vajícího tvaru u a formy dokladů a jejich to oku. Cílem užživatele je přizpůsobení p automatizov vaného inforrmačního sysstému stávajjící funkční struktu uře organizacce.
2..2 Charakkteristika p přístupů k tvorbě infformačního o systému podle firm my LBMS Přřístup Ad‐hocc se vyznačuje • • •
svobo odou tvorby, převláádajícími vlasstními zkušenostmi a snaho ou projektanttů vyhnout se novým pro oblémům.
Dů ůsledkem to ohoto přístup pu je, že projekt je sice e vyvíjen pod dle plánu, aale následně je mnohokrát přepracováván n. undamentalistický přístup spočívá Fu • •
ve slepé věrnosti d dané soustavvě postupů, zz čehož plyne, že řešitelé často nero ozumějí speccifickým aktivvitám či interakcím meziproduktů.
Vyyvážený přísttup • •
vytvářří rovnováhu u mezi přístupem Ad‐hoc a přístupem m Fundamenttalistickým a pragm maticky komb binuje system matičnost a kkázeň s potřeebnou tvůrčíí volností.
Výývoj systému u a jeho živottní cyklus
2..3 Obecn né principyy analýzy a návrhu IS V následujících odstavcích h obrátíme pozornost p na principy a zásady, kteeré jsou vlastní odám vývoje IS. Princip py, které zm míníme, plattí pro meto ody vššem metodikkám a meto strukturovanéé, objektovéé a další (hybridní), jso ou na nich vystavěny nástroje CA ASE Computer Aid ded System EEngineering) nástrojů a vv používaných technikách h vývoje IS. (C Informační sysstém je nesm mírně složitýý a kompliko ovaný systém m. Prvá skupina principů se naží o boj se složitostí vývvoje IS. Mezi tyto prostře edky řadíme:: sn • • • • •
hierarchiccký rozklad problematiky etapizace a iterace postupu řešeníí modelování a srovnávvání modelů použití graafických vyjaadřovacích prrostředků Princip abstrakce
oblematiky řeší rozděllení složitéh ho systému u na systém my Hiierarchický rozklad pro jednodušší (naa subsystém my) a tento rozklad r provvádí tak dlou uho, až dosááhne potřeb bné úrrovně podrobností. Vznikkne takto hieerarchie subsystémů. V ttéto hierarch hii si lze udě ělat přředstavu o syystému jako celku, o vazbách mezi su ubsystémy i o podobě daaného systém mu naa dané úrovvni podrobn nosti. Hierarrchické rozd dělení systém mu napomááhá plánováání, orrganizování aa kontrole prráce vývojového týmu. Ettapizace posttupu řešení znamená rozdělení složitého procesu vývoje IS n na dílčí etapy s přřiřazením cílů, úkolů, vstupů, výstupů, dokumentace, rizika, díllčích činnosstí, od dpovědných osob, finanččních nákladů ů… Iteerace znamená opakovvané provád dění činnosttí jednotlivých etap. Kaaždé násled dné op pakování čin nností vždy probíhá naa vyšším stu upni porozu umění problému, mnoh hdy zn namená i op pakované návraty k ettapám předcchozím. Účeelem iteracee je postup pné zp pracování problému na různých r úrovvních rozliše ení ‐ od hrub bé představyy o řešení ažž k po odrobnému n návrhu systéému. Modelování jee základní technikou M t po oužívanou během b vývojje IS. Základ dní myšlenkkou modelování jee to, že nep pracujeme s informačním m systémem m jako takovýým, ale s je eho vh hodně vytvo ořeným modelem. Tyto modely a je ejich vývoj jsou mnohem m levnější než n vlaastní systém m jako takový. Pokud se ukáže, že při p analýze systému došllo k omylům m a ch hybám, je op pravy těchto chyb mnoheem levnější, než by byla náprava takkových omylů ů v přřípadě, že byychom budovvali přímo infformační sysstém jako takkový. Grrafické vyjadřovací pro ostředky nám umožňují vytvořit si s názornou u představu o vyyvíjeném IS. Grafické vyyjádření je scchopné néstt daleko věttší množství informací než n po ouze psaný ttext. Je také obvykle mnohem přehle ednější a názzornější. Graafické výrazo ové prrostředky urččené k modeelování IS jso ou součástí C CASE nástrojů ů zaměřenýcch na analýzu u a náávrh IS. Záákladním prin ncipem analýýzy a návrhu u IS je princip p abstrakce. Abstrakce jee myšlenkovýým prrocesem, ktterý vylučuje odlišnosti a zvláštnosti jednotllivých objekktů či jevů a zd důrazňuje společné, obeccné, podstatné vlastnosti sledované m množiny objektů či jevů. Op pakem absttrakce je myšlenkový postup p zvanýý konkretizaace, tj. posttup, při něm mž po ostupně vyčleňujeme z o obecného speecifické vlasttnosti sledovvaných objekktů či jevů.
41
modulu tvůrcee systému
M Můžeme rozliš šit následujíccí tri stupně abstrakce: • • •
katego orizace; agregaace; generalizace.
Kaategorizace jje nejnižším stupněm abstrakce. Znamená seskupování prvků ů (jevů) do tříd (kategorií) podle kritérií, která si zvolíme vzhlede em k účelu těchto prvků ů (jevů). Např. studenty školy rozdělímee do studijjních skupin n podle obo orů studia, podnikové IS ro ozdělíme pod dle způsobu u využití v daném d podn niku, podle požadavků n na bezpečno ost jejjich provozu apod. Aggregace je účelové ú sdru užení prvků (tzv. abstraakce typu "ččást‐celek"), nejde tedyy o zo obecnění sp polečných vlastností v p prvků. Jako příklad aggregace prvvků uvedem me Ko omponenty počítače, skkříň počítačee, monitor, klávesnice, k m ‐ jde o prvky dané myš ého ceelku, tj. počíttače. Geeneralizací rozumíme ab bstrakci typu u "specifický typ ‐ obecn ný nadtyp". P Při generalizaci hledáme spoleečné vlastno osti sledovan ných prvků a a specifikujeme vlastnosti nadřízené ého ceelku jakožto n nositele speccifikovaných společných vlastností (aatributů). Přříkladem může být zo obecnění sp polečných vlastností v prvků "správvce počítače", "o operátor po očítače", "sp právce dataabázových systémů", s "správce HW W". Nositele em sp polečných vlastností pakk bude napřř. "pracovníkk systémovéé podpory p provozu IS/ITT v po odniku". Geeneralizace může být vícestupňovvá. V našeem příkladu u mohou být b ob becnějšími pojmy p "pracovník úseku u IT" nebo dále d obecněě "zaměstnaanec podniku". Op pakem generalizace je m myšlenkový postup zvaný specializacee. M Myšlenkové p ostupy abstrrakce a konkkretizace aplikujeme v průběhu celé aanalýzy a náávrhu IS. Prrincip rozlišovacích úrovn ní je založen na zobrazen ní vyvíjeného o systému na určité zvole ené po odrobnosti rozlišení r detailů. Na nejhrubší rozliššovací úrovn ni je vyvíjenýý IS znázorn něn jako jeden prvvek spolupraacující s oko olím. Smysle em takového o zobrazení jje popis vazzeb daaného systém mu s okolím. Naa následné rozlišovací úrovni ú (označujeme ji "rrozlišovací úroveň ú 0") jiiž vidíme daaný syystém jako množinu m spo olupracujících h subsystém mů. Zobrazen ní daného IS můžeme dáále ro ozpracovávatt až k úrovni,, na které vid díme detaily potřebné prro řešení naššeho úkolu. Prrincip tří arcchitektur úzcce souvisí s principem ro ozlišovacích úrovní. Veškerá zobraze ení vyyvíjeného IS na jednotlivvých rozlišovvacích úrovn ních rozdělím me do tří kaategorií (vrsttev po odrobností). Hovoříme o tzv. vrstvené abstrakci ssystému. Ob bdržíme tyto o vrstvy: 1. vrstva zobraazení systém mu .... koncep ptuální (nebo o také esenciiální) Ko oncept znam mená pojetí, představu. Do první vrstvy zařadíme zobrazení systému na hrrubé rozlišovvací úrovni. TTzn. zobrazeení systému a jeho vazeb b okolní systtémy, dále p pak zo obrazení systtému s vidittelnými hlavvními subsysstémy a vazbami mezi n nimi. Z toho oto zo obrazení je nám n zřejmé,, které subssystémy našeho systému fungují jakožto rozhraaní mezi naším syystémem a jeeho okolím, tj. které subsystémy zpracovávají vstupy a výstu upy mu vzhledem m k okolí. Účeelem zobraze ení systému v této vrstvěě je odpověd dět naašeho systém naa otázku co je obsahem ssystému.
Výývoj systému u a jeho živottní cyklus
• 2. vrstva zo obrazení sysstému .... teechnologickáá (nebo takké logická) D Do této vrsttvy z syystému, která zviditelňu ují, jak je obsah o systém mu realizováán, zaařadíme ta zobrazení zo ohledňují orrganizaci daat (souborový systém, relační daatabázový syystém apod d.), arrchitekturu systému s (kliient/server). Zobrazení systému v této vrstvě není zatíže eno im mplementačn ními specifiky, tj. reallizací IS v konkrétním m prostředí informačníích teechnologií. 3. vrstva zobraazení systém mu .... implem mentační (nebo také fyziccká) V této vrstvě zobrazení je j již vidět detaily konkkrétní impleementace (např. vlastno osti plynoucí z kon nkrétního dattabázového systému. Vid díme, čím je systém realiizován. Prrincip tří arcchitektur aplikujeme v průběhu p cellé analýzy a návrhu IS. Vznikají takkto modely vyvíjeného IS na jednotlivých úrovních ab bstrakce. V jeednotlivých eetapách vývo oje IS se snažíme o zpracován ní modelu ISS v požadovaané vrstvě. Například v etapě globáální an nalýzy je žád doucí vytvořit koncepční model IS (zobrazení sysstému v 1. vrstvě), v etaapě deetailní analýzzy a návrhu IS pak model dále rozp pracovávámee až do potřeebných detaailů vrrstvy 3. Ro ovněž tak při analýze a n návrhu změny (inovace) vv IS se snažím me o identifikaci změny aa o jejjí zapracování směrem shora dolů, tj. od mode elu na nejhrubší rozlišovvací úrovni, na ktteré bude zm měna viditeln ná. Třřetím princip pem aplikovvaným běheem vývoje IS je mod delování ‐ tvvorba mode elu vyyvíjeného ISS. Modelováání je účelové zjedno odušené zobrazení sysstému pomo ocí vh hodných zob brazovacích prostředků.. Jde o absstraktní obraaz reality. M Modelování je jedním ze záklladních princcipů a technik analýzy a n návrhu IS. Jaký je smyssl modelování? Model je formalizovaným pro ostředkem ke znázorně ění vyyvíjeného IS,, prostředkem k dorozum mění mezi odborníky, o m analytikkem systému mezi u a od dborníkem v v oblasti reálného světa (budoucím uživatelem IS). Model n nám umožňu uje zn názornit stru ukturu vyvíjeného IS (ttj. strukturu u procesů, dat, řídicích h procesů) na zvvolených rozzlišovacích úrovních, ú op ptimalizovat strukturu IS vzhledem m ke zvolenýým krritériím. Mod del nám umo ožňuje simulo ovat a studo ovat změny systému a jejjich vliv na dílčí su ubsystémy a na okolí systtému. Ob becně lze po odat následujjící charakteristiku mode elu: model je form mulován jako systém (tzn.., znázorňuje e prvky a jejicch vazby); hrraniční prvkyy realizují vazzby systému s okolím (vsttupy, výstup py); ob bsah (souhrn n prvků a vazeb) v modeelu je objekttivní ‐ každýý prvek modelu odpovíídá něěkterému ob bjektu reálnéého světa, příípadně jde o o prvek pomo ocný; usspořádání prrvků v modelu odpovíd dá uspořádání prvků čássti reálného světa, kterrou model znázorň ňuje. Tvvorbu modelů IS nám v v praxi uleh hčují CASE (C Computer Aided A System m Engineerin ng) náástroje. Tyto o nástroje nám dávajíí k dispozicci výrazové prostředkyy pro graficcké zn názornění a slovní popiss modelů, nabízejí n posttup tvorby modelů, m stru ukturu mode elů čleeněnou pod dle rozlišovaacích úrovníí. Pod pojm mem model IS si v žád dném přípaadě neesmíme přeedstavit pou uze grafické znázorněníí vyvíjeného o IS. Součástí modelu je saamozřejmě i i slovní pop pis modelu jako j celku, popis jeho účelu, popiis jednotlivýých ko omponent modelu, m zobrrazených prvvků, subsysttémů, vazeb mezi prvkyy a vazeb mezi su ubsystémy. V rámci modelu IS se snažííme zachytit všechny anaalyzované dimenze IS, tj. dimenzi:
43
modulu tvůrcee systému
fu unkční (proceesní) Jd de o popis procesů, p kteeré budou probíhat p v syystému, dattových toků a vazeb mezi su ubsystémy. datovou Jde o o popis všech h druhů dat, se kterými b bude vyvíjený IS pracovatt. říd dicí Jd de o popis časových souvvislostí systém mových akcí.. orrganizačně teechnologicko ou Jd de o znázorn nění a popis organizace práce s dan ným IS a pop pis provoznícch technologgií, ktteré budou vvyvíjeným IS realizované. syystémově‐tecchnickou Jd de o popis realizace r implementačněě závislých systémových h funkcí a jejich časovýých náávazností.
2..3.1 Druh hy přístupů ů k analýze e a návrhu IS V průběhu hisstorického výývoje profilo ovaly dva zákkladní přístu upy k analýzee a návrhu IS ‐ přřístup strukturovaný a přřístup objektově oriento ovaný (stručn něji objektovvý). Pochope ení těěchto přístup pů je důležité pro poch hopení meto od, které jsou obvykle s konkrétníími přřístupy svázaané. Metody založžené na stru M ukturovaném m přístupu jsou výsledkkem dlouhod dobého vývo oje metod analýzyy a návrhu ISS. Historicky vznikla řadaa rozličných metod, násttrojů a techn nik; naapříklad metody: DeMarcco, Gane/Sarrson, Warnie er/Orr, Yourd don (viz kapitola 5). Po ojem "struktturovaný příístup" odráží myšlenkovvý postup "sstrukturování" jak postupu zkkoumám dan né problemaatiky, tak i předmětu, který k zkoum máme. Struktturalizace je e v ob blasti analýzyy a návrhu ISS základní pracovní metodou, prostřředkem bojee se složitosttí a má v analýze a návrhu ISS obecný výýznam (to zn namená, že je obecným myšlenkovýým po ostupem nejjen v oblastti strukturovvaných meto od, ale i v oblasti vývo ojově mladšíích ob bjektově orieentovaných m metod analýýzy a návrhu IS). Vííme, že jed dnou ze základních tecchnik použíívaných při analýze a návrhu IS je modelování. Při modelovvání jde o to, zobrazitt daný systtém vhodno ou zobrazovací metodou, z různých úhlů ů pohledu, na n různých úrovních po odrobností. JJde také o to, zo obrazit součaasný (výchozí) stav systtému a stavv cílový spolu s návrhem přechodu u z výýchozího do ccílového stavvu. Po oužitím strukturovaných h metod mo odelujeme zvlášť z struktturu dat sysstému (dato ový model) a zvlášť model datových to oků a procesů zpracovvávajících data. V oblaasti strukturovanéé analýzy a návrhu IS se postupn ně vyvíjely různé r metodické systém my do oporučující rrůzné přístup py k problem matice mode elování IS. Hiistoricky lze takto sledovvat teeorie založené na dato ovém modelování IS jaakožto vých hozím a teo orie funkčníího modelování ISS, pro něž jssou výchozí modely znázorňující pro ocesy a dato ové toky. Dn nes můžeme říci,, že se daatové a fun nkční přístu upy vzájemn ně doplňují,, nahlížejí na prroblematiku analýzy a návrhu IS z různých úhlů pohled du. Myšlenkky datového o i fu unkčního mo odelování IS jako jeden celek definitivně formu uloval konceem 80. let 20. 2 století Edward d Yourdon [YYOU89], m navazujícím m v 90. letech h 20. stol. naa strukturovaanou analýzu u a Daalším vývojovým krokem náávrh IS je ob bjektový přísstup k analýzze a návrhu IS. Strukturo ování probléémů a postupů jejjich řešení zůstává i zde z zachovááno obdobn ně jako u přístupu p strrukturovanéh ho.
Výývoj systému u a jeho živottní cyklus
Ob bjektový přísstup však naavíc zdůrazňu uje zcela novvý aspekt a s ním spojen né myšlenko ové po ostupy ‐ objeekt. V pojetí ob bjektově orrientovaných h metod je systém chápán jjako množiina sp polupracujících objektů reagujících na různé události. Každý K objekkt má přito om deefinované vlastnosti a odpovídá zaa stanovené é operace. Vlastnosti i operace jssou "zzapouzdřené" v jednotlivých objektecch. Prrincipy strukturovaného i objektového přístupu k analýze a návrhu IS sse promítají do ko onkrétních metod m vývojee IS. Existujíí takto meto ody založenéé čistě na sttrukturované ém přřístupu, meto ody založenéé čistě na příístupu objekttovém (viz kaapitola 5). Ob běma přístupům k analýýze a návrhu IS se budem me podrobněěji věnovat v kapitolách 3 3 a 4. Stručný hisstorický vývo oj obou přísstupů a charrakteristika konkrétních metod je pak p so oučástí kapito oly 5. V teorii i praxi se můžeme setkat i s metod dami kombin nujícími obaa přístupy (tj. strukturovanýý a objektovýý). Hovoříme pak o tzv. hyybridních meetodách vývo oje IS. Hyybridní meto ody využívají modelů a postupů z oblasti o strukkturovaného i objektové ého přřístupu. Jako o reprezentanta hybridníích metod jm menujme aleespoň Processní modelováání PD DIT (viz [ŘEP9 99]). Hybridn ní metody see hodí pro ně ěkteré typy IS (např. vývojj aplikací v p prostředí klieent/server). LLze takto například provvádět analýzu u a náávrh IS objektovým přístupem a pro o datový mo odel v prosttředí relačníí databáze pak p po oužít přístup strukturovaaný, u systém mů složitých vv oblasti dattových toků p použít diagraam daatových toků ů (charakterisstický jinak p pro přístup sttrukturovanýý) apod.
2..4 Druhy metodik vvývoje IS a současné trendy Vííme, že meto odika je obeccnějším pojm mem k pojmu u metoda. M Metodika dop poručuje využžití urrčitých metod v průběěhu vývoje IS; jednotlivé metodyy jsou pakk založené na strukturovanéém, objektovvém či kombinovaném (h hybridním) p přístupu k an nalýze a návrrhu IS. ním Jaké jsou zákkladní zdrojee informací o používanýých metodikkách vývoje IS? Základn zd drojem je sam mozřejmě litteratura. V literatuře obvvykle nalezneeme popisy metodik, jejich ob becné principy a doporu učení. Potřeb bujeme‐li infformace z oblasti aplikace metodik, je vh hodné navšttívit školení renomovan ných vývojových firem. Zpracováníí metodik pro p ko onkrétní praxxi vývojové ffirmy je možn no si i objednat u specializovaných fiirem. Takové éto zp pracování zpravidla vycháází z obecných principů n některé stan ndardní meto odiky, resp. jjde o kombinaci principů, p dop poručení a postupů p stan ndardních metodik. m Bero ou se přitom m v úvvahu potřeb by a zkušeno osti dané výývojové firmy, zaměřeníí vývojové firmy na urččité kaategorie či tyypy vyvíjenýcch IS. Takto vvznikají tzv. ffiremní meto odiky. M Metodiky lze č členit na následující druh hy: •
státem m podporovaané metodikyy
Sttát vyžadujee aplikaci těěchto metod dik při vývo oji IS jakožto o státních zzakázek. Cíle em takového příístupu je pomocí ossvědčených standardizo ovaných po ostupů zajisstit přředpoklady pro kvalitu projektován ní IS a výslledného pro oduktu. Příkkladem státe em po odporovanýcch metodik jssou např.: SSSADM (Structtured System ms Analysis aand Design M Method) ‐ Velká Británie; SD DM (System Developmen nt Metodologgy) ‐ Nizozem mí;
45
modulu tvůrcee systému
MERISE ‐ Francie. M •
mezin národní meto odiky
Jd de o metodikky prosazované při mezin národní spolu upráci v oblaasti projekto ování IS. Příkllad mezinárodní m metodiky: Eu uromethod. •
firemn ní metodiky
Jd de o metod diky vytvořeené aplikací obecných principů a doporučeníí pro potře ebu ko onkrétní vývo ojové firmy. Příklady firemních metodik: SEE (System Engineering) ‐ firma LBMS; Orracle CASE M Method; SA AFE (Sybase A Advanced Frramework to o Enable …) ‐ firma Sybasee. V současné době je samo ozřejmostí, že ž autoři me etodik (firem mních metod dik) aplikují ve svvých metodikách obecnéé principy řízení ř jakostii tvorby SW W a obecné principy říze ení jakosti podnikkových proccesů podle požadavků norem n ISO (ISO 9001 ‐‐ Internation nal Orrganization ffor Standardization). Jaké jsou sou učasné trend dy ve vývojji a dalším rozvoji mettodik? Uveď ďme si něko olik hlavních a zřettelně viditeln ných trendů:: po oužívání iteraativních posttupů Iteerativní posttup, jakožto jeden ze základních prin ncipů vývojee IS, je apliko ován v podo obě sp pirálového m modelu vývojee IS a technikky prototypo ování. prronikání objeektových metod, technik a nástrojů Teento trend souvisí s ro ozvojem objjektově orie entovaných metod, tech hnik, nástro ojů, ob bjektově‐relaačních datab bázových systtémů apod. "gglobalizace" p pojetí analýzzy An nalýza a návrrh IS dnes zaahrnuje i problematiku m modelování aa optimalizacce podnikovýých prrocesů. Je zřeejmé, že před automatizací podnikovvých procesů ů v oblasti výýrobní i řídicíí je vh hodné (nutnéé) tyto proceesy optimalizzovat podle zzvolených krritérií. Poté aaž analyzovat a naavrhnout pod dporu podnikových procesů pomocí IS/IT. Probleematika analýýzy a návrhu u IS see takto můžee setkat i s problematiko p ou BPI (Business Process Improvement) nebo BPR B (B Business Proccess Reengin neering). po osun od "harrd" k "soft" m metodám Ro ozbory neúsp pěchů mnoh hých vývojovvých firem ukkázaly, že jed dnou z příčin n neúspěšno osti přři vývoji a zaavádění IS u zákazníka bylo podceně ění či zanedb bání organizaační, sociáln ní a pssychologické dimenze vývoje v IS. In nformační systém je nutno chápatt jako systé ém so ociálně‐techn nický, nelze vidět pouze technické aspekty a IS/ITT. Současné metodiky te edy zaahrnují i tech hniky analýzyy zájmů a po ostojů různýcch skupin uživatelů (různých zájmovýých skkupin v podn niku), školeníí uživatelů, p poskytování konzultačnícch služeb. Stručně řečeno ‐ po odstatnou je i lidská dimeenze informaačního systému. ap plikace meto odik pro implementaci typového aplikkačního SW ((TASW) Tzzn. rozvoj firemních metodik pro zavádění tyypových IS v konkrétním podniku a zaahrnujících složitou problematiku customizacce IS, tj. přizpůsoben ní IS daném mu záákazníkovi. Nejde N zde jen o konfigurraci paramettrů IS, ale i 0 oblast orgganizace prácce,
Výývoj systému u a jeho živottní cyklus
migrace dat a a provozních h technologií z původníího systému u, dopracováání chybějícíích d. Jako příkklad lze uvésst metodikyy pro zavádě ění čáástí (subsystémů) typového IS apod ekkonomického o systému SA AP/R3, produ uktů firmy Oracle apod. vzznik a rozvoj tzv. agilních metodik Po od pojmem agilní meto odiky rozum míme (stručn ně řečeno) metodiky, kkteré se snaží op prostit od administrativně náročnějjších postup pů vývoje IS v zájmu ryychlosti vývo oje. Vzznik těchto m metodik reagguje na potřeeby vývoje u určitých typů ů IS (menší syystémy, WW WW ap plikace apod d.), pro které postupy a doporuče ení stávajících metodik (i přes jejich přřizpůsobení) mohou býýt pociťován ny vývojáři jako zbyteečně složité a neúměrrné vyyvíjenému syystému. Aggilní metodikky mají stanovená svá p pravidla, prin ncipy a postu upy, které jee nutno v praxi do održet. Témaatu agilních m metodik věnuji následujíccí podkapito olu. 2.8 Agilní metodiky vývojee IS Vííme, že pojem m "informačční systém" jee širokým po ojmem a vývvoj IS je složittým procese em. Vo olba postupu vývoje se proto musíí odvíjet od kategorie a a typu vyvíjeeného IS a od ekkonomických h podmínek tak, aby byly b splněné é cíle projeektování IS, tj. funkčníí a beezpečně pracující IS, spo okojený zákazník i spokkojená vývojjová firma. N Na současné ém trhu metodik projektování IS nalézaají své místo o tzv. meto odiky agilní. Jako agilní je ozznačována skkupina meto odik, které vycházejí z to oho, že jedin nou cestou, 3 35 jak prově ěřit sp právnost navvrženého sysstému, je co nejrychleji jej vyvinout, předložit záákazníkovi a na záákladě zpětnéé vazby upraavit. Aggilní metodikky sledují nássledující prin ncipy: •
přírůstkový (iterattivní) vývoj ISS s velmi kráttkými iteraceemi
Výývoj začíná nejdůležitějjšími funkceemi SW, po o jejich odzzkoušení zákkazníkem jssou po ostupně přidávané funkcce další. dů ůraz na komu unikaci mezi zákazníkem a vývojářem m Záástupci zákazníka by měli být člen ny vývojovéh ho týmu, po odílet se úzzce na návrrhu syystému, díky krátkým iterracím vývojee sdělují vývo ojářům své zkkušenosti. •
ované testování SW přísnéé automatizo
Prro daný SW je vytvořenáá komplexní sada testů, pro každou změnu SW musí být tessty přředem sestavvené, prověřřené, poté jee změněný SW W pomocí saady testů testován. V únoru 2001 1 se sešli přeedstavitelé nových n přístu upů k vývojii SW, vytvořřili "Alianci pro p aggilní vývoj SW W" a podepsaali "Manifestt agilního vývvoje SW". Manifest vycháází zee dvou hlavníích myšlenekk: um možnit změn nu SW je mno ohem efektivvnější, než sn nažit sejí zab bránit; běěhem vývojee SW je třebaa se učit reaggovat na nepředvídatelnéé události. Do o skupiny agilních metod dik lze v souččasné době zahrnout tyto o nejznámějšší: • • • • •
ASSD (Adaptivee Software Development) ‐ Adaptivníí vývoj SW; FD DD (Feature‐‐Driven Deveelopment); XP P (Extreme P Programmingg) ‐ Extrémníí programováání; Leean Developm ment; SC CRUM;
47
modulu tvůrcee systému
•
Crrystal metodiky.
Prravidla agilníích metodik nejsou něco pevně daného, neustále se rozvíjjejí na záklaadě zkkušeností z praxe. Před aplikací každéé metodiky vv praxi je nutné se dobře seznámit s jjejími princip py, doporučeeními a postu upy (viz literaatura, článkyy z konferenccí, zdroje naa WWW). V následujících odsttavcích stru učně charakkterizuji aleespoň někte eré vyyjmenované metodiky: a) ASD ‐ Adap ptivní vývoj SW Metodika nah M hrazuje klasiccký postup vvývoje IS „Pláánování‐Návvrh‐Realizacee" dynamickýým cyyklem " Spekkulace‐ Spolupráce‐Učen ní". Cyklus předpokládá p neustálé uččení poháně ěné zm měnami. Odcchylky od pláánu nejsou ch hápány jako chyby, ale jaako příležitosst к učení. Fááze spekulacce zahrnuje určení term mínu ukončen ní projektu, určení optimálního poččtu iteerací, termín nů ukončení každé iteracce, určení ob bsahu jednottlivých iteraccí, přiřazení SSW ko omponent a technologií jjednotlivým iteracím. Ve e fázi spolupráce je prováděn vývoj SSW ko omponent. Důraz D se klad de (jak již pllyne z princiipů agilních metodik) naa komunikacci a interakci členů ů vývojového o týmu. Fááze učení slo ouží к hodnocení a zlepššování proce esu vývoje na konci každ dé iterace. Tjj. к ho odnocení kvaality vyvíjenéého SW, prácce týmu a staavu projektu. b)) FDD‐ Featu ure‐Driven Deevelopment Prroces vývojee v této meetodice je zaaložen na krátkých k (asi dvoutýdenních) iteracíích řízzených vlastnostmi prod duktu (featurre‐driven). V Vlastností (feeature) se zd de rozumí dílčí výýsledek, užiteečný z pohleedu zákazníkka, měřitelnýý a realizovatelný v rámcci dvoutýden nní iteerace. FDD tedy vede vývvojáře к vyytváření funggujících přírůstků každé d dva týdny. FD DD do oporučuje deefinovat tzv. "lehké" proccesy, každý p proces je stru učně popsán n ve struktuře e: • • • •
vstupn ní kritéria pro proces; úkoly (název, účasstníci, povinn nosti, popis ú úkolu); nástro oje verifikacee; výstup pní podmínky procesu ‐ h hmatatelné vvýstupy.
Vee všech pro ocesech se zaznamenávají alternativy řešení. Posloupno ost procesů je náásledující: • • • • •
vypraacování celko ového modellu vyvíjeného o IS; vytvo oření detailníího seznamu vlastností ISS s prioritami jejich řešen ní; pláno ování vývojee pro každo ou vlastnost, každé sku upině (třídě)) vlastností je přiřazzen vlastník, datum ukon nčení; návrh h vlastností, tj. kontakto ování vývojářů realizujících danou vvlastnost SW W a zpracování sekven nčního diagramu řešení d dané vlastno osti; realizace vlastnosstí.
c) XP ‐ Extrém mní programo ování P je metodika vhodná pro malé až střředně velké vývojové tým my, které se musí vyrovn nat XP see zadáním, jeež se rychle mění nebo není jasné. Popis a vyssvětlení meto odiky můžem me naajít v [BEC02]. Metodika XP se opírá o o následující principy: •
u zpětnou vazbu vyplývaající z krátkýých používvá včasnou, konkrétní a nepřetržitou iteračních cyklů výývoje IS;
Výývoj systému u a jeho živottní cyklus
•
přírůstkový přístup k plánován ní počítá s tím m, že plán see může v prů ůběhu projekktu nit; dále vvyvíjet a měn využívvání automattizovaných teestů, na jejicchž sestavení se podíleli programátoři i zákazn níci; důraz je kladen naa verbální komunikaci vývvojového tým mu se zákazn níkem; návrh systému jee evolučním procesem probíhajícím m neustále p po celou do obu u; existence systému úzká sspolupráce p programátorů ů (programování v párech).
• • • •
d)) Crystal mettodiky Myšlenka Crysstal metodikk vychází z toho, M t že jedn na metodikaa nemůže vyyhovovat vše em prrojektům a vývojovým v t týmům. Protto Alistair Cockburn C definoval techniku vytváře ení metodiky "jusst in time". Vychází přittom z trojrozměrné mattice (crystal)) charakterisstik prrojektu. Dimeenze matice tvoří: • • •
počett lidí zúčastněných na pro ojektu; míra d důležitosti vyyvíjeného syystému pro zákazníka; priority projektu.
Po odle úrovně těchto základních faktorrů je vybránaa metodika, kkterá se dálee přizpůsobí a vvyladí podle potřeby kon nkrétního pro ojektu. KONTROLNÍÍ OTÁZKY
povinně
Co jee metodika vývoje inform mačního systé ému. Jaké jsou etapy vvývoje inform mačního systé ému a jaký m mají význam Vyjm menujte někteeré současnéé metodiky vvývoje Co jee to extrémní programovvání Co jssou agilní meetodiky Jaký je hlavní prin ncip crystal m metodiky S SHRNUTÍ KA PITOLY
Živootní cyklus informačnního systém mu zahrnujje celou eetapu tvorb by inforrmačního syystému přess jeho uvád dění do provvozu až po jeho vlastn ní provvoz a údržbuu Metoodika nám pomáhá strrukturovat práci. Je jaakýmsi seznnamem toh ho nejddůležitějšíhoo, čemu bycchom se měěli v jednotllivých fázícch vývoje IS věnoovat Metoodika MDIS S definuje tyyto etapy žiivotního cykklu IS: •
IST
- etapa innformační sttrategie pod dniku;
•
ÚST T - etapa úvvodní studiee systému;
•
GAN N - etapa gloobální analýýzy a návrh hu IS;
•
DAN N - etapa deetailní analýýzy a návrhu u IS;
49
modulu tvůrcee systému
•
IMP P - etapa im mplementace IS;
•
ZAV V - etapa zaavedení IS do d provozu;;
•
PÚR R - etapa prrovozu, údrržby a dalšíh ho rozvoje IS. I Přístu up Ad‐hoc see vyznačuje
• • •
svobodou tvorbyy, převládajícími vlaastními zkušeenostmi a snahou projektan ntů vyhnout se novým prroblémům.
Důsledkem tohoto přístu D upu je, že prrojekt je sice e vyvíjen pod dle plánu, ale následně jje m mnohokrát p přepracováváán.
Funddamentalistiický přístup spočívá • •
ve sleepé věrnostii dané soustaavě postupů,, z čehož plyne, že řešiteelé často nerrozumějí speecifickým akttivitám či inteerakcím mezziproduktů. Vyvážený přístup p
• •
vytvááří rovnováhu mezi přístu upem Ad‐hoc a přístupem m Fundamen ntalistickým a pragmaticky kom mbinuje systeematičnost a kázeň s potřřebnou tvůrččí volností. Mezii prostředky vývoje IS řaadíme: • • • • •
hierarchiický rozklad problematikky etapizacee a iterace postupu řešen ní modelovvání a srovnávání modelů ů použití grafických vyjjadřovacích p prostředků Princip abstrakce
Záklaadní principyy modelován ní IS: • • •
princcip rozlišovaccích úrovní; princcip tří architeektur; princcip modelováání Agiln ní metodiky sledují s násleedující princip py:
• • •
přírů ůstkový (iteraativní) vývoj IS s velmi kráátkými iteraccemi důraz na komunikaci mezi zákazníkem a vvývojářem přísn né automatizzované testování SW Meto odika extrém mního progrramování XP P se opírá o následující pprincipy:
• • •
použžívá včasnou u, konkrétní a nepřetržitou zpětn nou vazbu vyplývající z krátkkých iteračníích cyklů vývoje IS; přírů ůstkový přístu up k plánováání počítá s tíím, že plán sse může v prů ůběhu využíívání autom matizovanýcch testů, na jejichž sestavení se podíle eli
Výývoj systému u a jeho živottní cyklus
• • • •
programátoři i záákazníci; na verbální ko omunikaci výývojového týýmu se zákazzníkem; důraz je kladen n m procesem probíhajícím m neustále po o celou dob bu návrh systému jee evolučním mu; existence systém úzká spolupráce programátorů (programování v páreech). projeektu dále vyvvíjet a měnit;; Myšlenka Crysttal metodik vychází z toho, že jedna metod dika nemůžže ovovat všem projektům a vývojovým ttýmům vyho
51
modulu tvůrcee systému
STTUDIJNÍ LITEERATURA Prrojektování informačních h systémů I : strukturovaaný a objekto ový přístup // Dušan Kajzar, Ivan Polášek. ‐‐ Vyd. 1. ‐ Opava : Slezskká univerzita, 2003 ‐ 219 9 s. : il. ISBN 80‐7248‐214 4‐9 (b brož.) Tvvorba inform mačních systéémů II : procces vývoje in nformačního systému / D Dušan Kajzarr. ‐ Vyyd. 1. ‐ Opavva : Slezská univerzita, 20 005 ‐ 221 s. : il. ISBN 80‐7 7248‐288‐2 (b brož.) Tvvorba WWW W stránek pro úplné začátečníky [Brroža, 2006] / / Petr Brožaa. ‐ 5. aktualiz. vyyd.. ‐ Brno : C Computer Press, 2006 do otisk ‐ x, 149 s. : il. ISBN 8 80‐251‐1300‐‐0 (brož.) Inovace podniikových informačních systémů : pod dpora konkurrenceschopn nosti podniků ů / Jo osef Basl a kolektiv. ‐ 1. vyd. ‐ Prahaa : Professio onal Publishin ng, 2011 ‐ 1 150 s. : il. ISBN 97 78‐80‐7431‐0 045‐4 (váz.) Po odnikové info ormační systtémy : podniik v informačční společnossti [Basl, 200 08] / Josef Baasl, Ro oman Blažíčeek. ‐ 2., výrazzně přeprac. a rozš. vyd.. ‐ Praha : Grrada Publishing, 2008 ‐ 2 283 s. : il. ISBN 978 8‐80‐247‐227 79‐5 (váz.) nalýza a návvrh informaččních systém mů [Řepa, 19 999] / Václavv Řepa. ‐ Vyyd. 1. ‐ Praha : An Ekkopress, 1999 ‐ 403 s. : il. ISBN 80‐86119‐13‐0 (brrož.) Arrchitektury informačních systémů v průmyslo ových a obcchodních po odnicích / Jan J Do ohnal, Jan Pour. P ‐ Vyd. 1. ‐ Praha : Ekopress, 1997 1 ‐ 301 s. s : il. ISBN 80‐86119‐02 2‐5 (b brož.) Prrincipy a mod dely řízení podnikové infformatiky / Jiří Voříšek a kolektiv. ‐ V Vyd. 1. ‐ Prah ha : Oeeconomica, 2 2008 ‐ 446 s. : il. ISBN 97 78‐80‐245‐14 440‐6 (brož.) Informační sysstémy v pod dnikové praxi [Sodomka, 2010] / Pettr Sodomka, Hana Klčováá. ‐ 2. aktualiz. a rrozš. vyd.. ‐ B Brno : Compu uter Press, 2010 ‐ 501 s. : il. ISBN 978 8‐80‐251‐287 78‐ 7 (váz.)
Fu unkční modeely informačn ních systémů ů
3 Funkčční mod dely info ormačníích systé émů Ú ÚVOD Ka aždý informa ační systém můžeme rozzdělit na dvěě oblasti. Jed dna oblast popisuje, jak IS fu unguje, jaké jsou jeho fu unkce a vazzby, jaká je jeho struktu ura. Popisujee jinými slovvy dyynamiku IS. P Procesy, kterré uvnitř systtému probíhají. Pro ověřření návrhu ssystému nutn ně po otřebujeme n nějaké nástrroje, na kterýých bychom mohli funkcci systému namodelovat a ná ásledně ji zkoumat z jakk ze strany vývojáře, tak t i za strrany zadava atele. Ověření fu unkčnosti IS n nám umožní nástroje funkčního modeelování. CÍÍLE KAPITOLY Y Po o prostudová ání této kapiitol úkolů bu udete UMĚT T: použíít principy funkčního mod delování uplatn nit strukturovvaný přístup p k návrhu IS Po o prostudová ání této vyprracování úko olů ZÍSKÁTE:: znalossti diagramu datových to oků znalosst principu sttrukturní anaalýzy systému Po o prostudová ání této kapiitoly úkolů B BUDETE SCHO OPNI: navrhnout stavovýý model systému dodržeet konzistenci jednotlivých funkčních h modelů
53
modulu tvůrcee systému
3..1 Strukturovaný přístup Sttrukturovanýý přístup je h historicky staarším přístup pem k analýýze a návrhu IS. Formováání jeho principů proběhlo naa konci 70. a a během 80. let 20. století. Pojem ""strukturovaaný přřístup" odrážží postup zko oumání danéé problematiiky zkouman ného i předm mětu. Analýzaa a náávrh IS musí obsáhnout p procesy prob bíhající v systtému a data, se kterými ssystém pracu uje a která produkkuje. Skupinaa modelů • • • •
zobrazzí procesy a datové toky mezi nimi, zobrazzí datové struktury systému, zachyttí změny stavvů systému vv čase, zobrazzí hierarchii ssoftwarových komponen nt vyvíjeného o IS.
p je charakteeristické relaativně samosstatné zobraazení datovýých Prro strukturovvaný přístup struktur systéému v jedno om modelu; datových to oků a processů zpracovávvajících dataa v ném modelu. jin Prro přehledno ost znázorním m dále popisované mod dely v násled dujícím schématu: Staticcké modely realitty Modely dynamiky d syystému Obr. 3.1 Schém ma modelů strukturovaané an nalýzy a návrrhu IS V uvedeném schéématu jsou je ednotlivé mo odely napojeené spojnice emi naa datový slovvník (Data Dictionary). TTím chci zdůraznit souvisslost jednotliivých modelů ů s ceentrální strukturou obsaahující popiss všech prvkků, které see v jednotlivvých modele ech vyyskytují. Ho ovořili jsme o principu tří architektur ‐ tří vrstev zobrazzení systém mu. V průbě ěhu modelování ISS získáváme ssoubor modeelů vyvíjenéh ho IS: • •
z různých úhlů poh hledu ‐ tj. vytváříme jedn notlivé druhyy modelů; v rámcci téhož úhlu u pohledu naa různých úro ovních rozlišeení detailů.
Modely znázo M orňující vyvíjený IS z téh hož úhlu pohledu a lišíccí se rozlišovvací úrovní lze sd družit do tří zzákladních vrrstev zobrazeení systému::
Ko onceptuáln ní úroveň modelů, p první vrstvaa Ko onceptuální model je obsahový o po opis systému (bez impllementačních specifik), tj. identifikujemee hlavní dattové toky (vstupní, ( vnitřní, výstup pní), specifikujeme hlavvní me jejich chaarakteristiky. Takto vznikklý model reeality je tvořřen daatové objektty a uvedem něěkolika druhyy dílčích mod delů: • •
datovýým modelem m ‐ obsahuje statický pop pis systému ((prvků + vazeeb); funkččním modeleem ‐ obsahu uje popis pro ocesů a vztahů mezi nim mi; o modele em řízení ‐ jde o popiss časové násllednosti proccesů.
Ko onceptuální modely v dalších vrstvách zobrazení rozpracovávváme, doplňu ujeme detailyy.
Te echnologiccká (logickáá) úroveň modelů, d druhá vrstvva Tyyto modely jiiž obsahují: • • •
entitn ní množiny a jejich primáární klíče v daatovém mod delu; vazbyy mezi entitními množinaami v datovém modelu; dílčí subsystémy, s jejich strukkturu, datové é toky a datová úložištěě ve funkčn ním modeelu.
Fu unkční modeely informačn ních systémů ů
Im mplementaační (fyzickká) úroveň ň modelů, ttřetí vrstvaa Vyyvíjený IS je zobrazen taakové podrob bnosti, aby b byl způsobilýý k zahájení implementaace (p programován ní) systému. Modely již m musí odrážett specifika im mplementačn ního prostře edí, tzn. programo ovacího jazykka a použitéh ho SŘDB ‐ sysstému řízení báze dat. modelů existtují v rámci m metod analýýzy a návrhu IS doporuče ené Prro kontrolu kkonzistence m po ostupy, napřř. [ŘEP99] uvvádí pravidlaa pro kontrolu konzistence modelů, ččerpá přitom m z [YYOU89], Všeechny zpraco ované modeely vyvíjeného IS tvoří jeden celeek znázorňujjící vyyvíjený inform mační systém m z různých ú úhlů pohledu u a na různýcch rozlišovaccích úrovních h. Prráci při mod delování IS nám usnad dní CASE (C Computer Aiided System m Engineerin ng) náástroje. CASEE nástroje mnohdy rozlišují pouze dvě základní vrrstvy zobrazeení, a to: 1. vrstva zobrazení ‐ logická úroveň modelů Od dpovídá konceptuální a technologiccké vrrstvě výše uvvedené třívrsstvé architekttury modelů. 2. vrstva zob brazení ‐ fyzzická úroveň ň Odpovídá implementaační vrstvě výše uvede ené tříívrstvé archittektury mod delů. Grrafické značkky používanéé ke znázorn nění prvků modelu m se lišší dle použitté metodiky. V to omto textu budeme použžívat notaci YYourdon‐DeM Marco.
3..2 Kontexxtový diaggram Prrvním modeelem, kterým m se budem me zabývat, je kontextový diagram.. Tento mod del řaadíme mezi tzzv. modely vvnějšího chovvání systému u (viz obr. 3.1 1). Jak už z uvedeených pojmů vyplývá, účeelem modelu u je: • • •
zobrazzit vyvíjený ssystém v kon ntextu s jeho okolím; popsaat vazbu systéému na jeho o okolí; vymezzit hranice syystému, defin novat extern ní zdroje a od dběratele dat.
Prrvky používané v kontexttovém diagraamu jsou: Prroces Prroces definu ujeme jako množinu čin nností, které é transformu ují vstupy n na požadovaané výýstupy. Vn nější entity (tterminátory)) Vn nější entitou u (terminátorrem) rozumííme vnější zd droj dat pro modelovanýý systém, ne ebo přříjemce dat modelovanéého systému. Termináttor je tedy externí prveek, který ne ení so oučástí modeelovaného syystému. Daatové toky Jde o znázornění toků ů dat mezi vyvíjeným systémem aa jeho okollím (teerminátory).. úložiště dat (D Data Store) de o označení místa sloužžícího k uložeení dat (databáze). Jd Uvvedeme příkklad kontexttového diagrramu pro vyyvíjený IS "Zpracování m mzdové agen ndy po odniku" (zjed dnodušeně): Ch harakteristika kontextovéého diagram mu: •
Reeprezentuje hranici mezi vyvíjeným ssystémem a vvnějším světtem.
55
modulu tvůrcee systému
• Zn názorňuje vyyvíjený systéém jako jedin ný proces, propojený p daatovými tokyy s okolím m. • Zn názorňuje, kd do se systém mem komunikkuje, tj. vnějšší entity (terrminátory). Vn nějšími entittami přitom mohou býtt lidé, organ nizace, jiné informační ssystémy apo od. Zo obrazuje vstu upní a výstup pní datové toky, tj.: o daata vstupujíccí do systému u z okolí, kte erá mají být systtémem zpraacována (transformován na na výstu upy); o zprracovaná daata vyystupující ze systému do okolí. Zo obrazení dattových úložiššť není pro kontextový diagram typ pické. Konteextový diagraam ovvšem může zzobrazit i úložiště dat, po okud: • • •
jde o o úložiště dat, která jsou sdílen ná společněě vyvíjeným m systémem m i terminátory; chcem me zdůraznitt důležité úlo ožiště dat, které k bude vytvořené v naašim vyvíjenýým systém mem a budee je využívat ii okolí (vnějšší svět); chcem me zdůraznitt úložiště dat, které vytvvořil vnější svět a bude jje využívat n náš vyvíjeený systém.
Krromě grafického znázornění je součástí modelu: • •
slovní popis významu jednotlivvých externícch entit; slovní popis významu a obsahu u znázorněnýých datových h toků.
Ko ontextový diaagram je výcchozím modeelem při mod delování info ormačního syystému. Jeeho účelem je zachytit veeškerou kom munikaci (dattové toky) m mezi vyvíjeným systémem m a jeho okolím, rrovněž tak zaachytit všech hny s vyvíjen ným systémeem komuniku ující entity. Jde o model příslu ušející konceptuální vrstvvě zobrazení vyvíjeného IS. Lzze také říci, že kontexto ový diagram je speciálním m případem m diagramu d datových tokků. Beezprostředníím rozkladem m kontextovvého diagraamu na vyššší rozlišovaccí úroveň to otiž do ostaneme diaagram datovvých toků na tzv. nulté úrrovni ‐ diagraam úrovně 0 0.
3..3 Seznam m událostíí Seeznam událo ostí je opět m modelem znáázorňujícím vnější chováání systému, obdobně jaako ko ontextový diaagram. Je vššak zaměřen speciálně na datové tokky vstupující do vyvíjené ého syystému z oko olí, které majjí charakter podnětů k vyyvolání reakce systému, k nastartováání daalších návazn ných procesů ů a datových toků. Úččelem modelu je: • • •
znázornit podnětyy, které působí na systém m z jeho okolíí; znázornit externí eentity, které podněty vyssílají; zachyttit souvislostt mezi podněěty působícím mi na systém m a reakcemi systému.
Ud dálosti působ bící na systém jakožto po odněty lze klasifikovat náásledovně: •
F‐událost (Flow) Jde o událo ost spojenou u se vstupem m dat do systému. Např. přícho od objednávvky zboží ze strany zákaazníka, přích hod faktury za poskytnu uté službyy, příchod paacienta k lékkaři apod. F‐událostí nejssou odvozen né datové to oky uvnitřř systému a d další, již odvvozené vstup py dat. Např. vyžádám si dodacího lisstu a porovnání faktu ury s dodacím listem je e již odvozenou činnosttí po prvotním podněětu "přišla faktura".
Fu unkční modeely informačn ních systémů ů
•
•
T‐událost (Tempo oral) Jde o událost u půso obící na systtém jakožto podnět, kte erá m nezávisí naa příchodu dat, d ale na čase (hovořím me o tzv. časové události). ovsem Napříkklad: o 3. deen v měsíci se provádí výýpočet mezd d; o každý páátek v 17:00 se provádí inventura; o 30. 6. je n nutno odeslaat příslušné p pololetní hláššení. C‐událost (Contro ol) Jde o ud dálost povelového typu u, např. sep pnutí snímačče, otevři.V pod dstatě se jeedná o zvlášštní případ T i F událo osti. Tento typ t zavři/o událossti se vyskytu uje zejména u systémů p pracujících v reálném čase.
Naa vyšší rozliššovací úrovn ni rovněž můžeme znázornit i odvo ozené datovéé toky ‐reakkce syystému. Získááme takto ob braz o příčin nách a násled dcích ‐ viz náásledující obrázek: Obr. 3 3.5 Přříklad seznamu událosttí s odvozen nými datovýými toky Přříklad znázo orňuje jedinou ud dálost působ bící jako pod dnět pro práci systému "investiční účtárna". Jd de o F‐událo ost "p příjem fakturry". Ostatní znázorněné datové tokyy jsou již odvozenými daatovými toky ‐ reeakcemi na vvzniklý podněět. Tj. investtiční účetní ssi vyhledá přříslušný dodaací list, potvrdí so oulad fakturyy s dodacím listem a přeedá nadřízen nému útvaru u k podpisu (k souhlasu se zaaúčtováním).. M Model nám taakto nabízí p pohled na systém, jako n na souhrn neeustále vznikaajících událo ostí a na řetězec "u událost ‐ reaakce systému u". mu na událossti lze rozděliit na následu ující druhy: Reeakce systém • • •
výstup p zprávy o výýskytu události; výstup p zprávy o náásledku události; pouzee uložení info ormace o tom, že událosst nastala (reeakce systém mu následuje až při kombinaci určitých událosttí).
Krromě grafického znázornění je součástí modelu: • •
slovní popis významu jednotlivvých externícch entit; slovní popis význaamu a obsahu znázorně ěných událostí i odvozených datovýých toků.
Seeznam událostí hraje důleežitou roli v návrhu diagrramu datovýých toků pod dle E. Yourdo ona Jaký je vztah h seznamu událostí a kontextové ého diagram mu? Mezi d datovými to oky s událostí a datovými tokyy kontextového diagram mu (znázorněním událostí) seznamu neemusí být jed dnoznačná kkorespondence. V seznam mu událostí n nás zajímají p pouze podně ěty (sttimuly), na které systém k m reaguje. Ko ontextový diiagram musíí znázornit vvšechny dato ové to oky mezi systtémem a oko olím, tedy i d datové toky, které jsou z hlediska sezznamu událo ostí jižž odvozeným mi datovými ttoky (součásst následné p provozní tech hnologie). Seeznam událo ostí naaproti tomu může zobrazzovat i časovvé události a události řídicího typu.
3..4 Diagraam funkčníí strukturyy systému Úččelem diagraamu funkční struktury systému (FSD ‐‐ Function Sttructure Diaggram) je: • po opsat dekom mpozici (rozkllad) systému u na dílčí funkční celky (su ubsystémy); • do okumentovat funkční hieerarchii systé ému; • po oskytnout pohled p na vyvíjený v systtém se zam měřením na hierarchickkou výstavvbu systému.
57
modulu tvůrcee systému
Diiagram funkčční strukturyy systému naahlíží na systém jako na ccelek, který se dělí na daalší su ubsystémy ažž do potřeb bné úrovně podrobností p . FSD vznikl na počátku u 20. stol. jaako prrostředek pro o vyjádření o organizační sstruktury pod dniku a výrob by. Prrvky modelu FSD jsou nássledující: • •
unkce (proces, subsystém m); fu sp pojnice pro zznázornění vvazeb ve stro omové strukttuře subsystéémů.
V modelu můžžeme rozlišit více druhů ffunkcí: • prrocesní funkkce Jde o funkce maající na starosti zpraco ovávání údaajů (transformace vstu upů na výstu upy). • dialogové funkkce vyjadřujíí použití (menu) nabídek voleb. • říd dicí funkce sloužící ke ko s oordinaci čin nností ostatn ních funkcí. V V FSD by mě ěla být říd dicí funkce nejvýše jednaa. názornění fu unkcí: Prravidla pro zn • Grrafickým vyjáádřením funkce je čtyřúh helník. • Kaaždá má své číslo podle ú úrovně dekompozice a svvůj název. • Čííslování funkkcí se provádíí pomocí dessetinného záápisu ‐ např. 1, 1.1, 1.2, 1 1.3, 1.2.1, 1.2.2,…. • Náázev funkce by měl vystiihovat vykon návanou funkkci ‐ např. Výýdej materiáálu, Objed dnání zboží, P Příjem objednávky,…. • Po opis funkce m může vypadaat takto: 1.1 Výdej materiálu, 1.2 Přííjem materiáálu, Při konstrukci FSD postupujem me metodou shora‐dolů: ní je název celého systém mu (znázorněění systému jakožto jediiné • Neejvyšší úrovn funkcee). • Daalší úroveň (vyšší rozlišovací úrovveň) tvoří subsystémy, které mohou vyjadřřovat různé organizačn ní celky v podniku, p rozdělení orgganizace pod dle zpraco ování konkréétních obcho odních případ dů (objednávvky, zakázky)) apod. • Naa dalších úrrovních podrobností vyb bíráme pro dekompozicci subsystém my, které je vhodné ro ozdělit na su ubsystémy (funkce) jedno odušší. Takto o pokračujem me až na potřebnou ú úroveň podro obností. Přříklad modeelu FSD ukazuje obrázeek: Obr. 3.6 6 Ukázka diagramu fun nkční struktu ury syystému ‐ základní rozliššovací úroveeň Obr. 3.7 7 Ukázka diagramu fun nkční struktu ury syystému ‐ vyššší rozlišovaccí úroveň 54 4 Kromě graafického znáázornění musí být součáástí modelu také sslovní charakkteristika jednotlivých znáázorněných ffunkcí (subsyystémů). t model někdy neb bývá uváděn ný. FSD lze totiž považžovat za staarší V literatuře tento vaariantu diagramu datovýcch toků (DFD D ‐ viz dále po odkapitola 3 3.5). Po odle mého názoru je však v FSD užitečným násstrojem k ro ozdělení sysstému na dílčí su ubsystémy. TTyto dílčí sub bsystémy pakk může analyytik dále rozp pracovat pom mocí diagram mu daatových toků ů. Ro ozdíly mezi FFSD a DFD jso ou následujíccí: • FSSD je zaměřřený na znázzornění hierrarchické strruktury subssystémů až do potřeb bné podrobn nosti. Jde o sstatický pohle ed na systém m.
Fu unkční modeely informačn ních systémů ů
• DFFD je zaměřeený na datovvé toky a pro ocesy transfo ormující vstu upy na výstup py. Jde o dynamický p pohled na sysstém.
3..5 Diagraam datovýcch toků Úččelem diagraamu datovýcch toků (DFD ‐ Data Flow Diagram) je: • zo obrazit dynam mický pohled d na vyvíjenýý systém; • zn názornit místta, kde doch hází k transfo ormaci dat d do jiné formyy ‐ tj. znázornit tzv. prrocesy; • po opsat, z jakýcch procesů aa jejich návazzností se systtém skládá; • zn názornit a popsat dato ové toky sloužící s jako o vstupy a jako výstu upy jednottlivých proceesů. Diiagram datovvých toků neevyjadřuje čaasové uspořáádání procesů ani datovýých toků. Zn názorněná návaznost mezi procesy a datovými toky v DFD D je čistě daatová (data do prrocesů vstup pují a z proceesů vystupují). Chybí zde e znázornění návazností mezi datovýými to oky a procesyy v závislosti na čase a naa pořadí dato ových toků a procesů. Prro DFD se v liiteratuře pou užívá i jiných h pojmů, nap př.: • • • •
fu unkční model systému; word‐flow diagram; prrocesní modeel; bu ublinový diaggram.
Po ojem "funkčn ní model" zd de odráží sou uvislost se staatickým typeem zobrazen ní systému, tjj. s výýše popsaným m FSD. Prro znázorněn ní systému see v DFD použžívají následu ující prvky: • prrocesy Procees je množin na činností trransformujíccích vstupy n na požadovaané výstup py. • úložiště dat (Data ( Store) Úložiště dat d znázorňu uje místo u uložení dat, tj. na data v systému (reprezentuje dataa v klidu). reprezzentuje statický pohled n • daatové toky (D Data Flow) D Datové toky znázorňují p přesuny dat m mezi procesyy a datovýými úložišti. Datový tok reprezentuje e dynamickýý pohled na d data v systém mu (repreezentuje dataa v pohybu). • teerminátory (externí ( enttity) Termin nátory jsou externí entity v tomttéž významu, jako to omu bylo v kontextovém m diagramu. Termináto ory mohou být b ovacích úrovn ních modelu u DFD ke zdů ůraznění vazzby zobrazzené na hrubých rozlišo "subsyystém vyvíjeného IS <‐> ss ním komun nikující externí entita". Přříklad diagramu datovýcch toků: Klient výběr peněz požadavvek výběru p potvrdí stavu i Úččty doklad do o archivu Ukkázka diagraamu datových toků ‐ výběr v z účtu u Ve výše uvedeném u přříkladu vidím me zo obrazení pro ocesů (transfformují vstup pní datové toky t na dato ové toky výsstupní), dato ové to oky a úložištěě dat. Je zde zobrazená i externí entitta ‐ klient. Krromě grafickkého znázorrnění musí být součástíí modelu i slovní popis všech prvvků vyyskytujících sse v grafické části modelu u.
59
modulu tvůrcee systému
V dalším textu u blíže charakkterizuji jedn notlivé prvkyy modelu DFD D. Vlastnosti procesů: • Jd de o činnosti transformující vstupy naa výstupy. • Grraficky bývajjí znázorněnéé kruhem ressp. elipsou. ¨¨ • Prrocesy musíí být pojmeenované a pojmenován ní každého procesu musí vyjadřřovat podstatu transform mace. • Prrocesy musí být číslované. Při dalšíím rozkladu procesu naa dílčí proce esy používváme číslovvání dílčích procesů takk, aby z něěj byla patrná hierarch hie processů. Např. prroces 1, je na vyšší rozliššovací úrovn ni rozložen n na procesy 1.1, 1 1.2, 1..3, další úrovveň hierarchiie pak čísluje eme 1.1.1, 1..1.2, 1.2.1 atd. • Prrocesy lze rozdělit na dvaa hlavní druh hy ‐ datové a řídicí. o Datové procesy vyjad dřují jakouko oliv transform maci dat, tj. změnu hodn not dat, vznikk dat, zrušeníí dat. o Řídicí pro ocesy vyjadřu ují algoritmu us řízení procesů, řídicí p pokyny v čase. Jde o zachycení real‐time charaakteristik ap plikace. Výsttupem řídicíího procesu jssou řídicí impulsy. ových toků: Vlastnosti dato • Daatový tok vyyjadřuje poh hyb entit me ezi částmi syystému, mezzi systémem m a okolím m, znázorňuje propojení (komunikacci) procesů syystému, reprezentuje daata v pohyybu. ornění datovvého toku ‐ šipka. Grrafické znázo • Daatový tok mů ůže vyjadřovvat pohyb infformací, ale ii zboží, mateeriálu apod. • Daatový tok mu usíme pojmeenovat, náze ev datového toku musí vvyjadřovat je eho obsah h. • Naa konceptuáální úrovni zobrazení z je datový tok abstrakcí jaakékoliv form my přeno osu dat (neříkká nic o konkkrétní techno ologii použitéé k přenosu d dat). • Daatový tok sm měřující z pro ocesu do úložžiště dat reprezentuje jakkoukoliv form mu modiffikace dat daným proceseem (insert, u update, delette). • Daatový tok sm měřující z úlo ožiště dat sm měrem k pro ocesu reprezentuje využžití dat daaným procesem (select). Vlastnosti úložžiště dat (Data Store): • Po omocí úložiště dat modeelujeme mno ožinu dat v kklidu, přeruššení toku dat v čase (jjde o pasivníí prvek modeelu). • Úlložiště dat je formou propojení procesů (daatový tok je zde v čaase přeruššen). Graficcky znázorním me úložiště d dat pomocí d dvou rovnoběěžných úsečeek. • Naa konceptuáální úrovni jee úložiště datt abstrakcí jaakékoliv form my uložení dat, neříkáá nic bližšího o konkrétní formě ulože ení. • Im mplementacee úložiště dat může být rrůzná ‐ můžee jít o databááze v prostře edí databázového servveru, o texto ové soubory apod.
Fu unkční modeely informačn ních systémů ů
• Úlložiště dat m musíme pojm menovat, pojjmenování m může odrážet i plánovanou implem mentaci ‐ kartotéka, šanon, soubor, ttabulka dataabáze apod. Dů ůvody existeence úložiště dat jsou nássledující: • užživatel určitéé informace p požaduje, prroto je nutnéé tyto inform mace uložit; o o v důsled dku implemeentace vznikkají mezivýsledky, které je nutné ulo ožit na určittou dobu. delu DFD. Z toho plyne ‐ data do a a z • Úlložiště dat je pasivním prvkem mod datového úložiště musí vždy tééci přes procces (!!). Vlastnosti term minátorů (exxterních entitt): • Přředstavují prrvky ležící již mimo námii vyvíjený systém, tj. zdrroje a příjem mce dat v okolí systém mu. Těmito externími e prvky mohou být lidé, jinéé podniky, jiiná odděleení, jiné info ormační systéémy apod. • Grrafické znázo ornění terminátoru ‐ obd délník. • Daatový tok mezi m termináátorem a vyyvíjeným IS je součástí rozhraní mezi vyvíjeným IS a jeho okolím. musí být pojm menován, po ojmenování vvolíme výstižžné, vyjadřujjící • Teerminátor m typ zd droje, místo jeho výskytu apod. • Vzztahy mezi terminátory t s DFD D vyvíjeného o IS, z hledisska již nejsou součástí vyvíjeného IS nás tyto vztahy nezajímaají. Pokud by b nás dato ové toky mezi termin nátory zajím maly (byly by pro vyvvíjený IS podstatné), musíme daané termin nátory nahraadit procesy a zahrnout je do rámce vvyvíjeného ISS. ejhrubší rozliišovací úrovn ni. Tzn. systé ém Diiagram datovvých toků neejprve zpracujeme na ne je znázorněn jako několik subsystémů (procesů), vvzájemně si vvyměňujících h data. V dílčíích modelech systtému (tj. v zo obrazení na vyšší rozlišovvací úrovni) jednotlivé procesy, dato ové to oky i úložištěě dat rozložžíme (dekom mponujeme) na prvky jednodušší. Prvek (proces, daatový tok, úložiště ú dat), který se jeví jako jednolitý na určité rozllišovací úrovvni zo obrazení, mů ůže na vyšší rozlišovací úrovni ú odhallit svoji vnitřřní strukturu u. Např. procces může být zobrazen jako n několik vzájemně kooperrujících podp procesů, dato ový tok vidím me "d drobnohledem" jako několik n datových toků ů přenášejíccích různé typy dat či reeprezentující různé přeno osové techno ologie, úložišště dat můžee být podrob bněji zobraze eno jako několik úložišť. Po ostupnou dekompozicí m modelu DFD ssměrem k vyyšším rozlišo ovacím úrovn ním dostávám me hierarchii mod delů DFD. harakteristika hierarchie DFD; Ch p , že složitý reálný systé ém • Vyytváření hierarchie DFD vychází z předpokladu nelze popsat jedin ným DFD modelem. elů musíme podle pottřeb definovvat • Přři vytváření hierarchie DFD mode jednottlivé rozlišo ovací úrovn ně podrobn ností, na kterých k vyvvíjený systé ém zobrazzíme. • Po ostupnou prrací na mod delech IS zíískáváme usspořádanou množinu DFD modelů podle rozzlišovacích úrovní ú ‐ získááváme hieraarchické uspo ořádání dílčíích DFD.
61
modulu tvůrcee systému
• Naa vrcholu hieerarchie modelů se nach hází kontexto ový diagram vyvíjeného IS, který zznázorňuje vvyvíjený IS jako jeden pro oces komunikující s okolíím. • R Rozkladem ko ontextového o diagramu získáváme základní DFD ‐‐ model na tzv. rozlišo ovací úrovni 0 (měl by znázorňovat assi 3‐9 hlavnícch procesů ssystému). • Daalším rozklad dem DFD úro ovně 0 získáme dílčí modely zobrazu ující vyvíjenýý IS na vyššší rozlišovaccí úrovni pod drobností ‐ naa tzv. rozlišovací úrovni 1 1. • V průběhu rozzkladu proceesy vhodně ččíslujeme (naapř. proces 3 3.1 je rozlože ený 1.1, 3.1.2 a 3.1.3). na 3.1 • V postupné dekompozici pokračujeme e tak dlouho o, až získámee obraz celé ého ostí pro im mplementaci systému. Tj., T vyvíjeného IS s dostatečnou podrobno mpozicí se pro opracujeme až k tzv. elem mentárním p procesům. postupnou dekom procesy již dáále nerozkládáme, transformaci vstu upů na výstu upy • Elementární p hto elementtárních proccesech popíššeme pomocí tzv. minisspecifikací (viz v těch dále). Jak již bylo řeččeno, rozklád dáme postup pně i úložiště ě dat a datovvé toky. Běěhem rozkladu prvků je nutno dbát na návaznosst zobrazenýých prvků meezi vyšší a niižší ro ozlišovací úro ovni, např. máme‐li na dané rozlišovací úrovni datový tokk "a", na vyyšší ro ozlišovací úrrovni jej dekomponujem me na dato ové toky "a1", "a2", paak musíme (v daatovém slovn níku) tuto souvislost zazn namenat (např. "a" = "a1 1" + "a2".).
O Obecná pra vidla tvorb by DFD: •
Kaaždý (dílčí) m model DFD m musí mít vysvě ětlující záhlaví.
Naapř.: Název projektu: Náázev modelu u: Výchozí model: m Autor: Verze: Dattum: • Proce esy musí být přehledně číslováány. • Náázvy procesů musí výsttižně vyjadřo ovat náplň procesu, naapř. "vystave ení fakturry", "ověření í telefonního o čísla" apod.., nikoliv jen "zpracování dat". • Naa jedné rozlišovací úrovn ni se doporučuje zobrazitt 3‐9 procesů ů. Je‐li proce esů méně,, může to ukkazovat na pravděpodobnou neopod dstatněnost ttéto rozlišovací úrovně. Větší mno ožství zobrazzených procesů může býýt na úkor ssrozumitelno osti ednost zobraazení, estettický vzhled a zobrazzení. « Je nutné dbátt na přehle uspořádání grafickkých symbolů ů. dla konzistence dílčích modelů m (hlavvní z nich jssou • Jee nutné dodrržovat pravid uvedeené v dalších bodech). • Neesmí existovvat proces, ktterý bez pom mocí vstupů p produkuje daata. • Neesmí existovvat proces, ktterý pouze sp potřebováváá data. • Úlložiště dat m mohou být prropojená jen pomocí procesů. • Daatový tok z/d do termináto oru musí vést přes proces. • Daatový tok s týmž názvem m může být použit v DFFD na více m místech, v to om případ dě jde o tenttýž datový to ok (se stejným m obsahem)..
Další doporučené zásaady pro úlo ožiště dat: • V modelu DFD D zobrazujem me úložiště d dat až na té rrozlišovací úrovni, na kte eré jsou viditelné proccesy, které s ním pracují. • Šipka směrem m dovnitř úložžiště dat znamená jakoukkoliv aktualizzaci dat.
Fu unkční modeely informačn ních systémů ů
• Daatové toky ze/do z úložišště dat obsaahují pouze atributy entit, které se e v úložištti dat vyskytují. Výýše jsme uvvedli, že pro ocesy rozdělujeme na datové d a říd dicí, tj. na procesy, kte eré zp pracovávají d data a na pro ocesy zajišťující řízení systtému. Nyyní uvedemee několik pravidel pro znáázornění řídiicího procesu u v DFD. • Říídicí proces dává pokyn ny k zahájen ní či ukončení činností jjiných proce esů (zpraccovávajících d data). • Říídicí proces vv DFD by měl být z důvod du přehledno osti nejvýše jjeden. • Říídicí proces d dostává vstup, jestliže naastane nějakáá událost (up plynutí dané ého času, jjiný sledovan ný proces ukkončí svou čin nnost apod.)). • Říídicí vstupní a výstupní impulsy znázorňujeme přerušovano p ou šipkou. Tyyto impulssy (toky) neesou signály přerušení, tj. t jde o pokkyny "proveď ď", "počkej", ® Řídicí proces neemusí ihned d reagovat na zachyceený signál, může signáály kumulovat ve zvláštním úložištti dat ‐ v tzv. event store. p rozpracován ve stavové ém • Allgoritmus říídicího proccesu bývá podrobně diagraamu (STD) Řeekli jsme si, žže v průběhu u tvorby DFD D vytváříme h hierarchii dílččích modelů znázorňujícíích vyyvíjený IS posstupně na vyyšší a vyšší ro ozlišovací úrrovni. Processy rozpracovaané (z hledisska po otřeb implementace) jižž dostatečn ně podrobně ě, nazývámee elementárrními procesy. Trransformaci vvstupů na výýstupy v těch hto elementáárních proceesech je samozřejmě nuttné op pět popsat.. Popisu algoritmu a pro transforrmaci vstup pů na výsttupy v rám mci elementárního o procesu říkáme minisspecifikace (Process specification). M Minispecifikaace má rovněž sváá pravidla a d doporučení. Uvveďme nejprrve požadavkky na minispecifikaci: Prro každý eleementární proces p na neejvyšší rozliššovací úrovn ni rozkladu DFD je nuttno vyytvořit právě jednu minisspecifikaci. M ce musí pop psat pravidlaa transformace datovýcch toků, kte eré • Minispecifikac vstupu ují do elementárního pro ocesu, na výsstupní datové toky. • Minispecifikac M ce musí pop psat postupyy a pravidla transformacce dat v rám mci elemeentárního procesu, p niikoliv však implementaci těchto o pravidel v prograamovacím jaazyce. • Minispecifikac M ce musí býýt srozumite elná analytiikovi i uživvateli, analyytik používvá minispeciifikaci při ko onzultacích se s zákazníkeem ‐ podle toho je nuttno volit i jazykový pro ostředek pro o minispecifikkaci.
Jaazykové prrostředky p pro zápis m minispecifikace: • Jazykový prosstředek pro minispecifika m aci musí umožnit zachyccení základníích řídicícch struktur allgoritmu ‐ tj. sekvenci, vě ětvení, cyklus. • Prro minispeciffikaci není vh hodné používvat programovací jazyk. Minispecifikacce neznamená program. Pro minisp M pecifikaci můžeme použžít: o vývojo ový diagram; o speeciální struktturovaný jazyyk na bázi přřirozeného jaazyka. ost Přři volbě jazyykového prosstředku pro minispecifikkaci klademee důraz na ssrozumitelno záápisu, zejmén na pro uživattele. Uživatel musí postu up zachycenýý minispecifikkaci pochopit a
63
modulu tvůrcee systému
po otvrdit. Při volbě v jazykovvého prostřeedku netrvám me na forměě, volíme ko ompromis mezi přřesností (stro ohostí) zápisu algoritmu a jeho srozumitelností. Výýsledkem tvvorby DFD jee tedy hieraarchie dílčícch modelů vyvíjeného v ssystému, kte eré zn názorňují vyvvíjený IS na rrůzných rozliššovacích úro ovních. Na neejvyšší rozlišovací úrovnii je syystém znázorrněný do podrobností po otřebných pro implemen ntaci, elemeentární proce esy jso ou popsané fformou miniispecifikaci. Zd důrazňuji, že součástí graafického zob brazení systému je i slovn ní popis jedn notlivých prvvků vyyskytujících sse v modelu.. Mám zde n na mysli výsttižné názvy ttěchto prvků ů a slovní popis jejjich významu a struktury. Tento slovní popis je součástí datového slovníku (viz dále), ktterý vytvářím me souběžn ně s tvorbou u DFD. Základní slovní popis prvkků DFD (popis výýznamu jednotlivých prvkků) by ovšem m měl být i přřílohou grafické části DFD D.
Fu unkční modeely informačn ních systémů ů
ZAPAMATTUJTE SI
povinně
Strukkturovaný přřístup je histtoricky staršším přístupem k analýzee a návrhu ISS. Analýýza a návrh IS musí obssáhnout proccesy probíhaající v systém mu a data, se s kterýými systém p pracuje a která produkuje e. Skupina m modelů • • • •
zobraazí procesy aa datové tokyy mezi nimi, zobraazí datové sttruktury systému, zachyytí změny staavů systému u v čase, zobraazí hierarchii softwarovýých kompone ent vyvíjenéh ho IS. Pro strukturovan s ný přístup jee charakterisstické relativně samostattné zobrazen ní datových struktu ur systému v jednom modelu; daatových tokků a processů m modelu. zpraccovávajících data v jiném V prů ůběhu modeelování IS získkáváme soub bor modelů vvyvíjeného ISS:
• •
z různých úhlů po ohledu ‐ tj. vvytváříme jed dnotlivé druh hy modelů; v rám mci téhož úhlu pohledu n na různých úrovních rozlišení detailů.. Koncceptuální úro oveň modelů ů, první vrstva
Konceptuálníí model je obsahový K o po opis systému u (bez impleementačních h specifik), tj. t identifikujem me hlavní daatové toky (vstupní, ( vniitřní, výstup pní), specifikkujeme hlavn ní d datové objek kty a uvedem me jejich chaarakteristiky. Takto vznikklý model reaality je tvoře en n několika druh hy dílčích mo odelů: • •
datovým modeleem ‐ obsahuje statický po opis systému u (prvků + vazzeb); funkkčním modellem ‐ obsahu uje popis pro ocesů a vztah hů mezi nim mi; o modelem m řízen ní ‐ jde o popis časové následnosti pro ocesů.
Konceptuálníí modely v dalších vrsstvách zobrrazení rozprracováváme, doplňujem K me d detaily. Technologická (lo ogická) úroveeň modelů, d druhá vrstva T Tyto modely již obsahují: • • •
entittní množiny a jejich prim mární klíče v d datovém mo odelu; vazb by mezi entitními množin nami v datovém modelu; dílčí subsystémyy, jejich strukkturu, datovvé toky a dattová úložištěě ve funkčním m delu. mod Impleementační (ffyzická) úrovveň modelů, třetí vrstva
Vyvíjený IS je zobrazen takové podrobnossti, aby byyl způsobilýý k zahájen V ní implementacce (program mování) systému. Mo odely již musí m odrážžet specifikka implementaččního prostřeedí, tzn. pro ogramovacího o jazyka a použitého SŘDB ‐ systém mu ř řízení báze da at. Seznam událostíí je opět modelem m znáázorňujícím vnější chovvání systému u, obdo obně jako kontextový diaagram. Je všaak zaměřen sspeciálně na datové tokyy vstup pující do vyyvíjeného systému z okolí, které mají m charakteer podnětů k
65
modulu tvůrcee systému
vyvolání reakce ssystému, k naastartování d dalších návazzných processů a datovýcch toků. Účeleem diagram mu funkční struktury systému s (FSSD ‐ Function Structurre Diagrram) je: • popsat dekom p mpozici (rozkklad) systém mu na dílčí fun nkční celky (subsystémy)); • dokumentov d vat funkční hiierarchii systtému; • poskytnout p p pohled na vyvíjený v systtém se zaměřením na hierarchicko ou výstaavbu systému. Ú Účelem diagr ramu datovýých toků (DFD D ‐ Data Flow w Diagram) jee: • zobrazit dyna z amický pohleed na vyvíjen ný systém; • znázornit z místa, kde do ochází k traansformaci dat do jinéé formy ‐ tj. t znázo ornit tzv. pro ocesy; • popsat, z jaký p ých procesů a jejich návaazností se sysstém skládá;; • znázornit z a popsat dattové toky sloužící s jako vstupy a jako výstup py jedno otlivých proccesů. D Diagram dato ových toků n nevyjadřuje ččasové uspořřádání proceesů ani datovvých toků. KONTROLNÍÍ OTÁZKY
povinně
V čem m spočívá prrincip struktu urovaného přístupu analýýzy a návrhu u IS? Co jee pro strukturovaný návrh charakterisstické Co jee to konceptu uální úroveň modelu a k čemu slouží Charakterizujte technologickou úroveň m modelů Vysvětlete obsah h implementaační úroveň modelu Kteréé znáte funkčční modely ssystému?
Fu unkční modeely informačn ních systémů ů
S SHRNUTÍ KA PITOLY
Funkkční modely informačníích systémů ů jsou založženy na strrukturovaném m přístupu k modeelování IS. Z hlediska podrobnosti modelu vvytváříme tři t úrovně: o první vrstvu ‐koncep ptuální úrove eň modelů; o druhou vvrstvu ‐ tech hnologickou ((logickou) úrroveň modelů; o třetí vrstvu modelů ‐ implementaační (fyzickou u) úroveň. Mezii jednotlivé ffunkční modeely můžeme zahrnout: o kontexto ový diagram; o seznam u událostí; o diagram funkční struktury systém mu; o diagram datových toků . STTUDIJNÍ LITEERATURA po ovinně Projeektování info ormačních systémů s I : strukturovaaný a objekttový přístup p / Du ušan Kajzar, Ivan Polášek. ‐ Vyd. 1. ‐‐ Opava : Sle ezská univerzzita, 2003 ‐ 2 219 s. : il. ISBN 80 0‐7248‐214‐9 9 (brož.) Tvvorba inform mačních systéémů II : procces vývoje in nformačního systému / D Dušan Kajzarr. ‐ Vyyd. 1. ‐ Opavva : Slezská univerzita, 20 005 ‐ 221 s. : il. ISBN 80‐7 7248‐288‐2 (b brož.) Tvvorba WWW W stránek pro úplné začátečníky [Brroža, 2006] / / Petr Brožaa. ‐ 5. aktualiz. vyyd.. ‐ Brno : C Computer Press, 2006 do otisk ‐ x, 149 s. : il. ISBN 8 80‐251‐1300‐‐0 (brož.) Inovace podniikových informačních systémů : pod dpora konkurrenceschopn nosti podniků ů / Jo osef Basl a kolektiv. ‐ 1. vyd. ‐ Prahaa : Professio onal Publishin ng, 2011 ‐ 1 150 s. : il. ISBN 97 78‐80‐7431‐0 045‐4 (váz.) Po odnikové info ormační systtémy : podniik v informačční společnossti [Basl, 200 08] / Josef Baasl, Ro oman Blažíčeek. ‐ 2., výrazzně přeprac. a rozš. vyd.. ‐ Praha : Grrada Publishing, 2008 ‐ 2 283 s. : il. ISBN 978 8‐80‐247‐227 79‐5 (váz.) nalýza a návvrh informaččních systém mů [Řepa, 19 999] / Václavv Řepa. ‐ Vyyd. 1. ‐ Praha : An Ekkopress, 1999 ‐ 403 s. : il. ISBN 80‐86119‐13‐0 (brrož.) Arrchitektury informačních systémů v průmyslo ových a obcchodních po odnicích / Jan J Do ohnal, Jan Pour. P ‐ Vyd. 1. ‐ Praha : Ekopress, 1997 1 ‐ 301 s. s : il. ISBN 80‐86119‐02 2‐5 (b brož.) Prrincipy a mod dely řízení podnikové infformatiky / Jiří Voříšek a kolektiv. ‐ V Vyd. 1. ‐ Prah ha : Oeeconomica, 2 2008 ‐ 446 s. : il. ISBN 97 78‐80‐245‐14 440‐6 (brož.) Informační sysstémy v pod dnikové praxi [Sodomka, 2010] / Pettr Sodomka, Hana Klčováá. ‐ 2. aktualiz. a rrozš. vyd. ‐ Brno : Compu uter Press, 20 010 ‐ 501 s. : il. ISBN 978 8‐80‐251‐287 78‐ 7 (váz.)
67
modulu tvůrcee systému
4 Datovvý mode el Ú ÚVOD Da atový modell se nijak ned dotýká funkccí IS. Zajímajíí nás data, a to ne z obsa ahové stránkky, alle z pohledu vzájemných závislostí a ze schopnossti popisovatt realitu. Pro návrh datovvé zá ákladny IS jee nutné znát, t, jakými pro ostředky můžžeme struktu uru informaccí zapsat, ab by sp plňovaly všecchny atributyy pojmu info ormace. Je neesmírně důleežité pochop pit principy, n na ktterých spočívvá konzisten nce dat inforrmačního sysstému. Výběěr podstatnýých vlastností, ktteré definují určitou entittu, skutečnosst, jev, osobu u… je význam mný i v ostatn ních oblastecch živvota, nejen p při tvorbě infformačního ssystému. CÍÍLE KAPITOLY Y Po o prostudová ání této kapiitoly budetee UMĚT: Sestavvit jednoduch hý datový model Připravit návrh ERD modelu Po o prostudová ání této vyprracování úko olů ZÍSKÁTE:: Přehleed metod datové analýzyy Znalosst pojmů absstrakce, speccializace a ko olektivizace vv datovém m modelu Po o prostudová ání této kapiitoly úkolů B BUDETE SCHO OPNI: Provésst datovou analýzu systému a pocchopit konzistentní vazb by na funkční model systému
4..1 Datovýý modelu vvyjádřený ERD (Entitty Relation nship Diaggram). V této kapito ole se zaměříme na problematiku p u datového modelu z hlediska je eho zo obrazení pom mocí ERD (Entity Relation nship Diagraam). Úččelem datovvého modelu u (ERD ‐ Entiity Relationsship Diagram m) je zobrazitt strukturu d dat vyyvíjeného IS, tj. znázornitt entity, jejich h atributy a vvztahy mezi množinami eentit. S historií vývo oje ERD je spojeno s jmééno P. Chen ‐ zavedl do d modelováání IS tzv. ERA Diiagramy (En ntity Relationship Attributes Diagramy). Dále můžeme zmínit M. A. Jacksona, jako ožto tvůrce tzzv. Strukturn ních diagramů. RD znázorňu ují podrobno ou strukturu u úložišť dat, která jsm me zobrazili v diagrame ech ER daatových toků ů. Uveďme si nejprve nejdůležitější po ojmy souviseející s ERD.
Po ojem entitta. Po od pojmem eentita rozum míme každý o objekt, o kte erém má býtt uchovávanáá informace ve vyyvíjeném IS. Musí jít o rozlišitelný a identifikovvatelný objeekt reality, n např. konkrétní věěc, osoba, přředmět, zbožží, zákazník, b budova atd. Atributy enttity jsou prvkky entity, kte eré
Daatový model
slo ouží k popissu vlastnostíí entity. Např. entita "o objednávka"" může mít atributy "číslo ob bjednávky", "číslo zbožíí", "množstvví" atd. Entita "zaměstn nanec" můžee mít atribu uty "o osobní číslo", "organizačční středisko", "příjmem", "jméno" atd. a Hodnotty atributů pak p daanou entitu ccharakterizu ují, například pro zaměstnance Novákka: "2586, O Oddělení vývo oje SW W, Novák Dalibor, …". En ntity mající tytéž atributyy (lišící se po ouze hodnotaami atributů ů) tvoří skupiny (kategorie), ktteré nazývám me množiny entit. Někteeré atributy čči uspořádan né množiny aatributů majjí v ráámci entity zvláštní význaam pro iden ntifikaci této entity v dan né množině entit nebo p pro vaazby mezi entitami (různýých množin eentit). S tímtto významem m souvisí pojeem "klíč".
Attributy, prrimární a cizí klíč Prrimární klíč je atribut (rresp. uspořáádaná množžina atributů ů), jehož hodnoty sloužíí k jednoznačné identifikaci jeednotlivých eentit. N v množině en ntit Prrimární klíč musí být v dané množiině entit práávě jeden. Například "zzaměstnanci"" bude prim márním klíčem m atribut "o osobní číslo"", pokud je jjednoznačné é v ráámci všech zaaměstnanců podniku. Cizí klíč je atrribut (resp. uspořádaná množina attributů), který je v jiné množině en ntit prrimárním klíččem. Cizí klíčč slouží k defiinici vazeb m mezi množinaami entit. Alternativní kllíč je atributt (resp. uspo ořádaná mno ožina atributtů), jehož ho odnoty sloužží k jednoznačné identifikaci jednotlivých h entit, přittom tento atribut a (resp p. uspořádaaná množina atributů) nebyl zvvolen primárrním klíčem. Prrimární klíč m muže být v rámci dané m množiny entit pouze jedeen. Presto m může existovaat i jin ný atribut (u uspořádaná množina attributů), který entitu jeednoznačně identifikuje. V to omto případěě jde o alteernativní klíčč. Například zaměstnancce kromě atributu "osob bní čísslo" jednoznačně identifiikuje v dané množině entit i atribut ""rodné číslo"". Neejednoznačn ný klíč je atribut (resp. uspořádaná u množina atrributů), kterýý danou entitu jednoznačně n neidentifikuje, blíže ji však vymezuje e a je proto u užitečný pro o vyhledáván ní a tříídění entit podle zadanýcch vlastnostíí. Jee‐li klíč tvořřen jedním atributem, hovoříme o o jednoduch hém klíči, jee‐li klíč tvořřen usspořádanou množinou attributů, hovo oříme o klíči složeném.
Vaazby v dattovém mod delu V datovém mo odelu je důleežité i znázornění vazeb (vztahů ‐ relací) mezi mn nožinami enttit. U každé relacee přitom urččujeme stupeeň, kardinalitu a voliteln nost vazby. Jiiž jsme se výýše seetkali se vztahem mezi m množinami en ntit "zaměstn nanci" a "pracoviště". Po od pojmem sstupeň relace rozumíme počet množžin entit svázzaných v rám mci téže relacce. M Množina entit t může být v relaci sama se sebou, ho ovoříme pak o relaci unárrní. Mezi dvěma množinami entit může existovat i více různýcch relací. V praxi obvykle M modelujeme případy, p kdyy některé mn nožiny entit mají množsství různých vazeb s jinýými množinami en ntit.
Kaardinalita relační vazzby Daalší vlastnosstí relace je kardinalita (mocnost, násobnost).. Pod pojmeem kardinalita ro ozumíme poččet entit, které vstupují d do daného vzztahu. Ro ozlišujeme kaardinalitu:
69
modulu tvůrcee systému
• 1:1, tzn. jednaa entita (prvn ní množiny e entit) je svázáána s jednou u entitou dru uhé N "zaměstnanci“ 1 vlastn nit 1 „praco ovní průkazzy“ množiiny entit Například: „zaměěstnanci“ „p pracovní prů ůkazy" Zamě ěstnanec vlaastní pouze jeden (práávě jeden)) pracovní prrůkaz. • 1:N, tzn. jedn na entita (první množinyy entit) je svvázána s někkolika entitaami druhéé množiny en ntit Například: "zaměstnanci" 1 vlasttnit N "praco ovní pomůckky" Zaměsstnanec můžže obecně vlaastnit více prracovních po omůcek. • N N:1, tzn. více entit (první množiny en ntit) je svázáno s jednou entitou druhé množiiny entit Nap příklad: "zam městnanci" N N pracuje 1 ""pracoviště" "zaměstnanci" "praco oviště" Na jeednom praco ovišti pracuje e více zaměsttnanců. • M M:N, tzn. vícee entit (prvn ní množiny entit) e je svázzáno s více eentitami dru uhé množiiny entit Například: "zzaměstnanci"" M používvá N "praco ovní nástrojje" "zaměěstnanci" "p pracovní náástroje" Zam městnanec používá vícce pracovníích nástro ojů, přitom kkaždý nástrojj může být po oužíván více zaměstnancci současně. Daalší příklad: ""autoři" M n napsat N "knihy" V evidenci je více kn nih téhož au utora, naopak v evvidenci jsou kknihy napsan né kolektivem m autorů.
Vo olitelnost relační vazzby Daalší vlastnosttí relace je vo olitelnost vazby. Ro ozlišujeme: nou, k jedno omu výskytu entity A z množiny enttit Ma může e a • vaazbu voliteln nemusí existovat vvýskyt entityy B z množinyy entit Mb. Naapříklad: po oužívat ochrranné pomů ůcky "Zaměsstnanec" mů ůže, ale nemusí používvat occhranné pom můcky. Voliteelnou vazbu zzdůrazníme ggraficky prázzdným kolečkem. "zzaměstnanci"" « vazbu po ovinnou, k jeednomu výskkytu entity A A z množiny entit Ma musí vžždy existovat alespoň jeeden výskytt entity B z množiny entit e Mb. Po ovinnou vazzbu zd důrazníme grraficky plným m kolečkem. V ERD lze rovvněž zachytitt vztah geneeralizace a sp pecializace entit. e V modelu se moho ou, vyyskytnou enttity mající ob becné atributty a entity, kkteré mají naavíc další speeciální atributy. Vzznikají takto vztahy nadříízených a po odřízených en ntit.
Po ostup tvorrby datové ého modelu u Po ostup tvorbyy datového m modelu stano ovíme v násle edujících bod dech: 1. výběr nejdůležitějjších množin n entit (napřř. zaměstnan nec, pracovišště, náklado ová střediska, katalog povolání, mzzdové složkyy atd.); 2. určeníí atributů jed dnotlivých m množin entit; 3. určeníí primárního o klíče jednottlivých množin entit; 4. vyhledání vazeb (relací) mezi množinami e entit; 5. zakresslení množin entit a vazeb do ERD; 6. určeníí kardinality a volitelnostti vazeb; 7. odstraanění zbytečných tranzitiivních vztahů ů mezi entitaami; 8. odstraanění nadbyttečných mno ožin entit a atributů; 9. normaalizace datovvého modelu u; 10. zaznam menání omeezujících podmínek pro hodnoty atrib butů (integrittní omezení);
Daatový model
pletace hieraarchie množžin entit (generalizace a specializacee, nadřízené é a 11. komp podřízzené entity); 12. ověřeení úplnosti d datového mo odelu. V praxi postup pujeme běheem tvorby modelu iterativním způsob bem. Pomoccí opakovanýých prrůchodů mo odel postupně zpodro obňujeme, doplňujemee a zpřesňujeme. Takkto zp pracujeme saadu datových h modelů zob brazených naa různých rozlišovacích ú úrovních: • • •
datovýý model na kkonceptuálníí úrovni zobrrazení; datovýý model na ttechnologickké (logické) ú úrovni zobrazzení; datovýý model na implementačční (fyzické) ú úrovni zobraazení.
Naa technologgické a imp plementační úrovni zob brazení získááváme modely a názve em Reelation Data Diagram, tj. model logických datových struktur aa model fyzicckých datovýých struktur.
4..2 Normáální formy v datovém m modelu V průběhu tvvorby datového modelu u se zabýváme i otázko ou normalizace modelu u a ottázkou zajištěění integrity dat. Množina entitt je v první normální fo M ormě, jestliže všechny její atributy mají atomární (d dále již nedělitelné) hodnoty. Množina entitt je ve druhé normální formě, jestliže je v prvn M ní normální formě a navíc kaaždý atribut jje závislý na celém primáárním klíči (n nikoliv jen na části klíče). Množina entitt je ve třetí normální fo M ormě, jestliže e je ve druh hé normální formě a navíc vššechny neklíččové atributyy jsou vzájem mně nezávislé é. Daalší normáln ní formy (Bo oyce‐Coddova normální forma, čtvrttá a pátá no ormální form ma) slo ouží jako sp peciální případy. V praxxi obvykle vystačíme s datovým modelem (jeh hož veeškeré množiny entit jsou u) ve třetí no ormální form mě. V praxi někdy řešíme i pro oblematiku účelové a aplikačně závisllé denormaliizace datové ého modelu. Důvo odem denormalizace může m být sn naha o zvýššení výkonno osti některýých prrocesů v rámci IS (větššinou na úkkor procesů jiných). Exxistují způsoby a techniky deenormalizacee, techniky p pro zajištění iintegrity den normalizovan né databáze..
4..3 Integriita dat Daalší oblastí jee problematika integrity dat (zajištění celistvosti d databáze). Rozlišujeme: • • •
integrritu doméno ovou, data musí m vyhovo ovat stanovvenému dato ovému typu u a aplikačním pravidllům (businesss rules ‐ apliikační logice). integrritu entity, každá entitaa z dané množiny m enttit musí býtt jednoznaččně identiffikovatelná ((pomocí prim márního klíče e). integrrita referenčční, znamen ná zajištění konzistence mezi mn nožinami en ntit pomocí vazeb prim márních a cizzích klíčů.
Tvvorba datovéého modelu je náročná ttvůrčí práce. Špatně zpraacovaný dataabázový desiign může negativn ně ovlivnit výýkonnost celého informaačního systém mu a po naplnění datovýých struktur daty je velmi obtížné o provvádět změnyy databázového designu u. Obvykle lze mnohem snad dněji upravit algoritmus vvýpočtu, nežž strukturu d databáze. Tvorba datové ého
71
modulu tvůrcee systému
modelu by prroto měla býýt v rámci vývojového v týmu t svěřen ná zkušeným m databázovýým deesignérům. Ob btížnost rozh hodování v p průběhu tvorrby datového o modelu lzee demonstro ovat alespoň na něěkolika násleedujících otázzkách, na kteeré musí databázový dessignér odpovědět: • • • • • • • • • • • •
Které množiny enttit se budou v systému vyyskytovat? Jaké b budou atributy jednotlivýých množin e entit? Jaké m máme zvolit p primární klíčče jednotlivýcch množin entit? Nebylo by vhodněější rozdělit danou množžinu entit (horizontálně, vertikálně) na několiik dílčích množin entit? Které množiny en ntit budou ob bsahovat rellativně stálá data, které množiny en ntit u obsahovat data rychleji se měnící? budou Které množiny enttit budou obsahovat dataa charakteru u číselníků? Jaké (alternativní, nejednozznačné) klíčče budou jednotlivé j m množiny en ntit obsah hovat? Kolik b bude k jedno otlivým množžinám entit p příslušet klíčů? Je databázový model dostateččně normalizovaný (ve třeetí normální formě)? Nebud de vhodnějšíí databázovýý model účelo ově denormaalizovat? Jakým m způsobem na implem mentační úro ovni zajistím me integritu dat (použittím constrraints, triggeers)? Jakým m způsobem na implemeentační úrovvni zajistíme aplikační lo ogiku (použittím uložen ných procedu ur, triggers)? Jakým m způsobem na implemeentační úrovvni zajistíme požadovano ou bezpečno ost systém mu (ochranu dat, dostupnost dat)? ® atd.
V průběhu traansformace m modelu z tecchnologické (logické) úro ovně zobrazení do mode elu d i ke e změně po oužívané terrminologie pro p naa implementační (fyzickké) úrovni dochází jednotlivé prvky modelu: • • • • •
množiiny entit se sstávají databázovými tabulkami; atribu uty množin entit se stávajjí sloupci dattabázových ttabulek; vazby (relace) mezzi entitami nazýváme refferencemi; integrritní omezen ní jsou zajišťťována pomocí datových typů, constraints, rules, defaults; klíče jssou realizovaané pomocí ttzv. indexů.
4..4 Datovýý slovník Úččelem datovvého slovnííku (DD ‐ Data D Diction nary) je popis všech p prvků systém mu vyyskytujících se ve zpracovaných modelech. Jde o výýznamový slovník vše ech identifikátorů a spojení meezi prvky mo odelu. oužíváme jazzyk Daatový slovníík je modeleem, ve kteréém pro zobrazení vyvíjeeného IS po slo ovního popissu. Daatový slovníkk musí obsah hovat popis prvků uvede ených v jednotlivých mod delech (dato ové to oky, množinyy entit, atrib buty, vztahy apod.). Pop pis musí býtt přehledný,, srozumiteln ný, musí zachycovvat i vazby m mezi popisovaanými prvky.. ůže být násleedující: Sttruktura popisu prvku mů
Daatový model
• • • •
jednozznačný identtifikátor prvkku; vysvěttlení význam mu prvku v rámci vyvíjené ého IS; popis složení prvku (z elementtárních prvků ů); speciffikace formáttu a hodnot, kterých prve ek může nab bývat (integritní omezeníí).
4..5 Stavovvý diagram m Úččelem stavo ového diagraamu (STD ‐ State Transsition Diagraam) je modeelování časo ově záávislého chovvání systému u. Stavový diiagram zachyycuje chován ní systému, jjeho reakce na vn nější nebo vn nitřní událostti. Sttavové diagraamy mají výýznam zejmééna při mode elování systéémů pracujíccích v reálné ém čaase (real‐timee systémy). Sttavový diagraam zobrazujee situace typ pu:
stav 1 1 — > událosst (podmínkaa, akce) — > sstav 2.
Sttavovým diaagramem znázorníme "cco se stane, když …“. Sttavový diagrram nazývám me ro ovněž modelem řízení ISS, zachycuje totiž reakce systému naa jednotlivé události, kte eré jso ou schopné o ovlivňovat (řřídit) chování systému. Sttavový diagraam je tvořen následujícím mi hlavními kkomponentami: • • •
uzly reeprezentují jednotlivé staavy systému. orienttované hrany Orientovaané hrany vyyznačují změěny stavů, p přechody mezi stavy. skladišště událostíí (Event Sttore) Slouží k uložení informací o proběhlýých událosstech. Systém totiž nem musí na danou událost reagovat ihn ned, ale až po jistém m čase, může reagovat až na určitou kkombinaci ud dálostí apod..
Co o rozumíme pod pojmem m stav systém mu? Chceme e‐li hovořit o o stavu systéému, musíme e v prrvní řadě deefinovat parametry (tzv.. stavové ve eličiny), vzhledem ke ktterým budem me stavy systému u posuzovat. Paarametry sttanovíme podle toho, co je pro o sledování systému p podstatné. Při laboratorním pokusu takto o můžeme sttanovit param metry např. "objem, tlakk, teplota". m je stanoveení hodnot těěchto param metrů (rozmeezí hodnot), kterými budou Daalším krokem jednotlivé stavvy charakterizované. Naapř. stav čísslo 1 bude charakterizovván hodnotaami: objem 10‐16 1 dm3, tlak 0.5 ‐ 0..55 kP Pa, teplota 20 2 ‐ 21 °C. Obdobně popíšeme další stavy, vee kterých see systém mů ůže naacházet. Vidíme, že pod dle "jemnosti" rozlišováání hodnot stavových s veeličin můžem me ro ozlišit více či méně stavů systému. V případě info ormačního systému se volba v parame etrů (stavových veličin) systému mů ůže op pírat o dílčí kkroky techno ologického po ostupu, charrakterizující sstav zpracováání během d dne (m měsíce) apod d. Systém se může nacháázet ve stave ech např. "čeekání na heslo", "čekání na po otvrzení o ukončení zpracování", z "čekání naa přijetí daat", "zpraco ování denníího vyyúčtování plaateb" atd. Syystém procháází v čase růzznými stavy. Impulsem kk přechodu syystému z jed dnoho stavu do stavu druhého o je nějaká událost, kteerá nastala vně či uvnitř systému. Např."uplyn nul ubsystému XY" X stanovený čass", "přišla oččekávaná datta", "bylo ukkončeno zprracování v su ap pod.
73
modulu tvůrcee systému
Sttavovým diaagramem tedy znázornííme jednotliivé stavy syystému a vššechny možžné přřechody mezzi stavy. Každ dý stav charaakterizujeme hodnotami stavových veeličin. Kaaždý přechod d mezi stavy charakterizu ujeme důvod dem přechod du, tj.: • •
ud dálostí, kteráá přechod vyyvolává (podm mínkou přecchodu); čin nností, kteráá během přecchodu mezi sstavy probíh há.
Grraficky zobraazíme stav kruhem (uzel grafu) a pře echod mezi sstavy šipkou (orientovanou hrranou grafu). Po ostup vytvářeení stavovéh ho diagramu je následujíccí: 1. 2. 3. 4.
identiffikujeme všeechny stavy ssystému, kte eré budeme rrozlišovat; identiffikujeme všeechny možnéé přechody m mezi stavy; určíme stav počáteční a stav (sstavy) konco ový; me z počáteččního stavu, zkoumáme přípustné zm měny stavu, přechody mezi vyjdem stavy, přitom se sn nažíme odpo ovědět na otáázky: • Je množina staavů úplná? • Jso ou všechny sstavy dosažittelné? Lze se e dostat do každého stavu? • Neechybí ve staavovém diagramu některrý přechod m mezi stavy? • Lze všechny sttavy (kromě koncových stavů) opustitt? • Od dpovídají zm měny stavů všem možným událosteem (podmín nkám)? Nebyyly brrány v úvahu u jen běžné p podmínky? • Je daný konccový stav skkutečně kon ncový? Má systém v ttakovém staavu pravdu setrvat? Nejde o analytickou chybu? op
V průběhu praací na návrhu struktury programového systému (v oblasti sttrukturovanýých metod analýzyy a návrhu ISS) můžeme aplikovat následující techniky: • • •
modulární návrh n na základě fu unkční dekom mpozice; ¨ modulární návrh n na základě an nalýzy datovvých toků; modulární návrh n na základě an nalýzy datovvých strukturr.
V praxi lze pou užít kombinaaci dvou dílčíích technik: • •
transfformační anaalýzy; transaakční analýzyy.
Trransformační analýza spočívá v odvo ození SCH z DFD, přičem mž se zaměřu ujeme na čáásti DFFD tvořené za sebou následujícími (sekven nčními) pro ocesy. Sekveenční proce esy traansformují kkrok po krokku vstupní daatové toky d do výstupních datových ttoků obdobn ně, jako probíhá transformacee materiálu n na výrobní lin nce. nalýza spočívvá v odvozeení SCH z DFFD, přičemž se zaměřujjeme na míssta Trransakční an věětvení ‐ na procesy p rozh hodování o dalším postu upu práce. Například N naa různá men nu, věětvení processů podle pod dmínek apod d. Cíílem transakkční analýzy je identifiko ovat procesyy DFD, kteréé rozhodují, kam směrovvat vsstupní datovéé toky, či kam m předat řízeení zpracování.
Daatový model
75
modulu tvůrcee systému
ZAPAMATTUJTE SI
Pod pojmem P m entita rozumíme každýý objekt, o ktterém má býýt uchovávaná informacce v ve vyvíjeném m IS. Musí jít o rozlišitelný a identifiko ovatelný objeekt reality. EEntity majíccí tytéž atriibuty (lišící se pouze hodnotami atributů) ttvoří skupin ny (kategorie), kkteré nazýváme množinyy entit Primární klíč je atribut (resp. uspořáádaná množina atributů), jehož hod P dnoty slouží k jednoznačné identifikaci jednotlivých h entit Cizí klíč je attribut (resp. uspořádaná množina attributů), kterrý je v jiné m C množině enttit íčem. Cizí klííč slouží k deefinici vazeb mezi množin p primárním kl nami entit Je‐li klíč tvořřen jedním atributem, hovoříme o o jednoduchéém klíči, je‐‐li klíč tvoře en u uspořádanou u množinou aatributů, hovvoříme o klíčči složeném. Je‐li klíč tvořřen jedním atributem, hovoříme o o jednoduchéém klíči, je‐‐li klíč tvoře en u uspořádanou u množinou aatributů, hovvoříme o klíčči složeném. P Pod pojmem kardinalita rrozumíme po očet entit, ktteré vstupujíí do daného vztahu. R Rozlišujeme kardinalitu: 1 jedna en ntita (první množiny m entiit) je svázána s jednou eentitou druh hé • 1:1 množžiny entit • 1:N. 1 jedna entita e (prvníí množiny entit) e je svázzána s něko olika entitam mi druhé množiny eentit. • N:1 více enttit (první mn nožiny entit) je svázáno o s jednou eentitou druh hé množžiny entit • M:N více en ntit (první množiny m entit) je svázán no s více en ntitami druh hé množžiny entit Množina enttit je v prvníí normální fo M ormě, jestliže e všechny jeejí atributy m mají atomárn ní (dále již neděělitelné) hodnoty. Množina enttit je ve druh M hé normální formě, jestliže je v prvn ní normální fformě a navííc k každý atribut t je závislý naa celém prim márním klíči (nikoliv jen na části klíče)). Množina enttit je ve třetíí normální fo M ormě, jestliže e je ve druhé normální fformě a navííc v všechny nekl íčové atributty jsou vzájeemně nezávisslé integrity dat (zajištění celistvosti dataabáze). Rozliššujeme: • • •
integgritu doménovou, data musí vyhovo ovat stanoveenému dato ovému typu a aplikkačním pravid dlům (busineess rules ‐ ap plikační logicee). integgritu entity, každá entitta z dané množiny m entit musí být jednoznačn ně identtifikovatelnáá (pomocí priimárního klíčče). integgrita referen nční, znamená zajištění konzistencee mezi mno ožinami enttit pomocí vazeb priimárních a cizích klíčů.
Účelem dato Ú ového slovn níku (DD ‐ Data D Diction nary) je pop pis všech prrvků systém mu v vyskytujících se ve zpraco ovaných mod delech. Účelem stavového diagramu (STD ‐ State Transition Diagram Ú m) je modelování časovvě z závislého cho ování systém mu. Stavový diagram zacchycuje chovvání systému u, jeho reakcce n na vnější neb bo vnitřní události.
Daatový model
KONTROLNÍÍ OTÁZKY
povinně
Co jee principem d datového mo odelování, Vysvětlete pojem m entita, atrib but, entitní vvazby Vysvětlete pojem m kardinalita vazby Co jee to primárníí klíč a co je ccizí klíč a jako ou hrají v dattovém modeelu roli
77
modulu tvůrcee systému
S SHRNUTÍ KA PITOLY
Dato ové modelováání je pohled d na vyvíjenáá IS z pohledu u datové zákkladny. Záklaadní model n na konceptuáální úrovni je e entitně relaační datový m moder ERD. Doplněním ERD m modelu je staavový model systému Záklaadní pojmy vv oblasti ERD D je entita, je ejí atributy, rrelace mezi aatributy, klíčče a vazzby mezi entitami. ‐ STTUDIJNÍ LITEERATURA Prrojektování informačních h systémů I : strukturovaaný a objekto ový přístup // Dušan Kajzar, Ivan Polášek. ‐‐ Vyd. 1. ‐ Opava : Slezskká univerzita, 2003 ‐ 219 9 s. : il. ISBN 80‐7248‐214 4‐9 (b brož.) Tvvorba inform mačních systéémů II : procces vývoje in nformačního systému / D Dušan Kajzarr. ‐ Vyyd. 1. ‐ Opavva : Slezská univerzita, 20 005 ‐ 221 s. : il. ISBN 80‐7 7248‐288‐2 (b brož.) Tvvorba WWW W stránek pro úplné začátečníky [Brroža, 2006] / / Petr Brožaa. ‐ 5. aktualiz. vyyd.. ‐ Brno : C Computer Press, 2006 do otisk ‐ x, 149 s. : il. ISBN 8 80‐251‐1300‐‐0 (brož.) Inovace podniikových informačních systémů : pod dpora konkurrenceschopn nosti podniků ů / Jo osef Basl a ko olektiv. ‐ 1. vyd.. ‐ Prahaa : Professio onal Publishing, 2011 ‐ 1 150 s. : il. ISBN 97 78‐80‐7431‐0 045‐4 (váz.) Po odnikové info ormační systtémy : podniik v informačční společnossti [Basl, 200 08] / Josef Baasl, Ro oman Blažíčeek. ‐ 2., výrazzně přeprac. a rozš. vyd.. ‐ Praha : Grrada Publishing, 2008 ‐ 2 283 s. : il. ISBN 978 8‐80‐247‐227 79‐5 (váz.) nalýza a návvrh informaččních systém mů [Řepa, 19 999] / Václavv Řepa. ‐ Vyyd. 1. ‐ Praha : An Ekkopress, 1999 ‐ 403 s. : il. ISBN 80‐86119‐13‐0 (brrož.) Arrchitektury informačních systémů v průmyslo ových a obcchodních po odnicích / Jan J Do ohnal, Jan Pour. P ‐ Vyd. 1. ‐ Praha : Ekopress, 1997 1 ‐ 301 s. s : il. ISBN 80‐86119‐02 2‐5 (b brož.) Prrincipy a mod dely řízení podnikové infformatiky / Jiří Voříšek a kolektiv. ‐ V Vyd. 1. ‐ Prah ha : Oeeconomica, 2 2008 ‐ 446 s. : il. ISBN 97 78‐80‐245‐14 440‐6 (brož.) Informační sysstémy v pod dnikové praxi [Sodomka, 2010] / Pettr Sodomka, Hana Klčováá. ‐ 2. aktualiz. a rrozš. vyd.. ‐ B Brno : Compu uter Press, 2010 ‐ 501 s. : il. ISBN 978 8‐80‐251‐287 78‐ 7 (váz.)
PR ROGRAMOVA ACÍ JAZYK A VÝVOJOVÉ P PROSTŘEDÍ
5 PROG GRAMOV VACÍ JA AZYK A V VÝVOJO OVÉ PRO OSTŘEDÍÍ Ú ÚVOD Ob becné modeely informaččních systém mu se na zá ákladě proveedených ana alýz postupn ně přřevádějí do fo ormy progra amového vyb bavení systém mu. Prro vývoj pro ogramů jsou u k dispozicii speciální programy, p v vývojový pro ostředí, kterré um možňují vyttvářet jedno oduché i komplikovan k í programyy či skupin ny programů. Výývojářem mů ůže být jedno otlivec, dnes spíše kolektiivy programá átorů. CÍÍLE KAPITOLY Y Po o prostudová ání této kapiitoly a vypra acování úkollů budete UM MĚT: Nainsstalovat vývo ojové prostřeedí Visual C# Po o prostudová ání této kapiitoly a vypra acování úkollů ZÍSKÁTE: znalossti základních h funkcí vývo ojového prosstředí. Po o prostudová ání této kapiitoly a vypra acování úkollů BUDETE SC CHOPNI: Vytvořřit funkční program ¨
79
modulu tvůrcee systému
5..1 Prograamovací jazyk a vývo ojové prosttředí V této učebnici budeme používat p pro ogramovací jazyk j C# vytvvořený firmo ou Microsoft v ráámci projektu u. NET. Výývojové pro ostředí je sp pecializovanýý program pro vývoj programů. TToto vývojo ové prrostředí shrn nuje několik, dříve samostatných pro ogramů, jako o je editor, ggrafický editor, přřekladač, náástroje ladění programu a pod V následujícícch kapitolách se budem me seeznamovat s obecnými principy p psan ní programu u, využijeme volně dostu upné vývojo ové prrostředí Micrrosoft Visual C# Express EEdition. Jazyk C# a vývvojové prosttředí Visual C C# jsou svázané s operačním systém mem Window ws. m systémem Windows a nainstalovaané Kee studiu budeme potřebovat počítačč s operačním prrostředí Miccrosoft Visuaal C# Expresss Edition. Vzhledem V k tomu, že firma Microso oft sp pecifikaci jazzyka C# zveřřejnila, je možno m v jazyyce C# programovat i n na platformáách daalších operaččních systém mů. Pro začáátky však do oporučuji Windows a Vissual C#. Pak se bu udete moci d držet příkladů v textu.
5..2 Instalaace vývojového prosttředí Instalační soubory vývojovvého prostřeedí Microsofft Visual C# EExpress Edition lze zdarm ma stáhnout z webových w sttránek firmyy Microsoft.. Je k dispo ozici ve více verzích, my m po oužijeme verzi 2010. Tato je dosstupná z adre esy htttp://www.m microsoft.com m/visualstud dio/en‐us/pro oducts/2010 0‐editions/vissual‐csharp‐ exxpress. Před zahájením stahování programu se objeví dialo ogové okno. Nejjednodu ušší po ostup je zvo olit volbu Sp pustit kliknuttím na příslu ušné tlačítko o. Po spuštěění stáhnuté ého prrogramu se objeví dialo ogové okno o s průběhem m stahováníí jednotlivýcch kompone ent výývojového prrostředí. OBRÁZEEK 4.1
Instalace výývojového prrostředí
Prroces instalace vývojovéh ho prostředí lze rozdělit d do čtyř násleedujících kroků: • • • •
Kontro ola systémovvých požadavků ‐ pro verzi 2010 potřřebujete alespoň Windows XP. ní instalace. Vlastn Volitelně instalacee opravného balíčku (Service Pack) výývojového prrostředí. Registtrace program mu – je zdarma a je ji nutno provést do třiceti dn nů.
PR ROGRAMOVA ACÍ JAZYK A VÝVOJOVÉ P PROSTŘEDÍ
V průběhu instalace je důležité v obrazzovce „Licence terms" zaaškrtnout sou uhlas s licenčční mlouvou (pollíčko „I have…“). sm OBRÁZEEK 4.2
Průběh instalace
Jeednotlivé části produktu sse budou postupně staho ovat a instalo ovat na váš p počítač.
81
modulu tvůrcee systému
OBRÁZEEK 4.3
Ukončení in nstalace
Po o prvním spu uštění prograamu v nabídcce (menu) He elp zvolíte Help > Registeer Product. O Objeví se dialogové okno o, kde zvolítee Obtain a registration key k online. V Vytvoříte si dle d po okynů účet u firmy Microsoft, M z zadáte požaadované infformace včeetně platné ého em mailového účtu ú a nakonec vám naa obrazovce prohlížeče vyskočí okn no, ze kterého zkkopírujete registrační kód d a potvrdítee registraci produktu.
PR ROGRAMOVA ACÍ JAZYK A VÝVOJOVÉ P PROSTŘEDÍ
OBRÁZEEK 4.4
Registrační klíč
OBRÁZEEK 4.5
Přředpokládám m nyní, že jsste instalaci úspěšně zvládli, a můžžeme se pusstit do prvníích prrogramů. Needaří‐li se vám m nějakou n náhodou program nainstalovat, požádejte o pom moc vyyučujícího, zkkušenějšího kolegu či kaamaráda. Insstalace vývojového prosttředí na vaše em po očítači je kro ok nezbytně n nutný k dalšíímu pokračování!
83
modulu tvůrcee systému
5..3 Spuště ění vývojovvého prosttředí Běěhem instalaace se vytvořří zástupce vv nabídce Sttart. Odtud můžete vývo m ojové prostře edí sp pustit. Při prrvním spuštěění proběhn ne konfiguraace program mu a pak se objeví úvod dní ob brazovka pod dobná té z obrázku 5.6 OBRÁZEEK 5.6
Okno novéh ho projektu
5..4 První p program Ukkážeme si, žee vytvořit fun nkční prograam není vůbe ec obtížné. Z nabídky Filee /zvolíme Ne ew Prroject. V novvém dialogo ovém okně,, viz obráze ek 5.7. V jeeho hlavní části nazvaané „TTemplates" je třeba vybrat vhodnou u šablonu po odle toho, jaaký druh pro ogramu chce ete vyytvářet. My b budeme vytvvářet předevvším aplikace s grafickým m uživatelským rozhraníím, prroto myší kleepněte na „W Windows App plication", re esp. „Window ws Forms
PR ROGRAMOVA ACÍ JAZYK A VÝVOJOVÉ P PROSTŘEDÍ
OBRÁZEEK 5.7
Dialogové o okno pro vytvvoření projekktu
2
1
3 4 oject“, v 5.7 7 je červeně zarámovánaa. Objeví se n nové dialogo ové Vyybereme volbu „New Pro okkno, které můžeme vidětt nav5.8. Posstupně, podle e číslovaných h rámečků vyybereme v p poli „In nstalled Tem mplates" volbu „Visual C#“ C (krok 1)). Pak ve druhém kroku u vybereme ve střředním poli „Windows FForm Application". Dále je potřeba no ový projekt1 1 v poli „Nam me" něějak pojmenovat. Můžette zvolit názeev např. „M MujPrvniProgrram" (3) a vvše odsouhlaasit stiskem tlačítkka „OK" (4). m vidět na obrázzku 5.8, bude nahrazen na prostřed dím Úvvodní obrazzovka, jak můžeme „N Návrháře“ – – „Design“ v zatím jed diné záložce e vývojovéh ho prostředí. „Návrháář“ um možňuje v grafické forrmě návrh uživatelského rozhraní programu. Prvotní návvrh prrogramu obssahuje čtverrcové okno nového pro ogramu. Program má v titulkové lišště náápis „Form1" a ikonky pro p minimalizaci, maxim malizaci a zavření okna programu. Jde vlaastně o zcela funkční ko ostru nového o programu, který obsah huje mnohé z toho, na ccop jseem u programů zvyklí.
85
modulu tvůrcee systému
OBRÁZEEK 5.8
Vzhled vývo ojového prosstředí po vytvvoření projektu
ový program m spustit. A A to i přestto, že jsmee zatím vůb bec Nyyní si můžeeme náš no neeprogramovaali. Vývojovéé prostředí vytvořilo v nášš první projeekt z plně fu unkční šablon ny. M toho sice neumí, ale poběží. Program v té Moc éto formě sp pustíme tak,, že z nabíd dky Deebug vybertee položku Staart Debuggin ng. Ve spodn ní stavové lišště vývojovéh ho prostředí se po ostupně objeeví nápisy „B Build started", „Build pro ogress" a „Bu uild succeed ded". Docházzí k tzvv. sestavováání programu u. Program jee během chvvilky připraveen a vývojovvé prostředí ho sp pustí. Vzhled d spuštěnéh ho programu u odpovídá tomu čtvercovému okn nu, které byylo zo obrazeno v zááložce „Návrrháře“. Běžíccí program m má svou vlasttní ikonu, zástupce dole na hlavním panellu Windows. Program lzee minimalizovat, maximaalizovat, okno o programu lze m za okraj nebo n za roh. V tuto chvííli jsme úspěěšně vytvořili a spustili náš n zvvětšit tažením prrvního programu. Než po okročíme dále, nezapome eňme spuštěěný program zavřít ikonkkou s kkřížkem.
PR ROGRAMOVA ACÍ JAZYK A VÝVOJOVÉ P PROSTŘEDÍ
5..5 Uložen ní projektu u Neež budeme p pokračovat vv práci, nejprve náš proje ekt uzavřem me. Ve vývojo ovém prostře edí můžeme praccovat vždy jen s jedním projektem. Vývojové prostředí p ted dy musí zavvřít akktuální projekt., tzn. v naašem případěě „Můj prvníí program", zzeptá se váss, jestli stávajjící prrojekt chcetee uložit. Obdržíme tři mo ožnosti: Ulložit náš projjekt (1). Neeuložit či neu uložit změnyy (2). Zrrušit akci (3). Zvvolíme možnost (1), „Savve“, uložit. OBRÁZEEK 5.9
1
2
3
V novém okněě volíme, jakkým způsobeem a kde chceme projekkt uložit. Mááme k dispozzici po ole: OBRÁZEK K 5.10
Dialog pro u uložení proje ektu
11 22
55
66
44
33
77
• Jm méno projekttu (1), zde m můžeme změn nit jeho jmén no. • Um místění projeektu (2), vyb bíráme složku u, do které sse má projekkt uložit. Pokkud už jsm me někdy toto t umístění zadávali, pak šipkou u (5) můžem me vybírat ze seznam mu složek, p pro výběr složžky lze také vvyužít tlačítkko „Browse“ (6). • Náázev řešení (3), může být b shodný se s jménem projektu, p mů ůžeme uklád dat ještě d další nastaveení našeho řeešení. • Vyytvořit složku pro řešení (4), pokud je políčko zatrženo, z vytvoří se složžka řešeníí se jménem určeným v p poli (3).
87
modulu tvůrcee systému
V našem příkladu tedy zvvolíme složku u, ponechám me jméno prrojektu, zruššíme zaškrtnutí 4) a projekt uložíme tlaačítkem „Savve“ (7). Zvo olenou složkku (2), do kkteré vývojo ové (4 prrostředí umíístilo náš prrojekt, si do obře zapamaatujeme. Pokkud projekt budeme ch htít přřenést jinam, někam odeeslat, musímee odeslat obsah této složžky.
5..6 Druhý program Zaatím se opěět ke psaní programu moc m nedostaaneme. Mno oho věcí, zeejména vzhlled ro ozličných prvvků se určujee přímo grafiickým návrhe em. Jiné vlasstnosti, jako jsou napříkllad po opisky, veliko ost, typ a barrva text se vo olí nastaveníím příslušnýcch vlastnostíí prvku. Po ostup a princcip si vysvětllíme na prvkku, který jsme použili již ve svém prvvém program mu. Jee to okno prrogramu. Říkkali jsme, že okno má v titulkové v lišště jméno programu. To oto jm méno lze změěnit. Obdobn ně lze nastavvit počátečníí velikost okna, kterou m má program při svvém spuštěníí. Zm měna velikossti okna je veelmi jednodu uchá. V „Návvrháři“ změn níme velikostt okna tažením zaa některý z jeeho úchytnýcch bodů, cožž jsou malé ččtverečky naa okraji oknaa. Vyzkoušejm me si změnu velikkosti a pak sp pusťme program. Program se spustí ss novou velikkostí okna. N Než bu udeme pokraačovat dále, program uko ončete. Náázev okna a a jeho další vlastnosti lzze změnit po omocí „Edito oru vlastnosstí a událosttí“, ktterý se nacchází v paneelu „Propertties“. Panel zobrazíme z nabídky View volb bou Prroperties Window. Můžeeme použít i klávesovou zzkratku Ctrl++W, P (nejprvve zmáčknem me kláávesu Ctrl a pak klávesu W, následněě samostatně ě klávesu P). OBRÁZEK K 5.11
Jak zobrazitt panel Vlastn nosti
V tomto paneelu se zobrrazují všechny vlastnossti právě vyybraného objektu. Pokkud po otřebujeme například zm měnit titulekk v záhlaví okna, musímee v grafickém m editoru to oto okkno nejprvee vybrat kleepnutím ukaazatele myšii někam do o tohoto okkna. V pane elu
PR ROGRAMOVA ACÍ JAZYK A VÝVOJOVÉ P PROSTŘEDÍ
vlaastností ‐ „Properties“ „ ‐ se zobrazí vlastnosti vybraného o prvku, v n našem přípaadě vyybraného okkna. Vzhled vývojového v m vypadat podobně ttomu, které je prostředí může zo obrazeno na obrázku. Zeeleně (1) je na obrázku zvýrazněno vybrané okn no v grafické ém ed ditoru „Desiggn“ a červen ně (2) panel vvlastností „P Properties“. O Okno se jmeenuje „Form1“, au utomaticky jssou zobrazen ny i jeho vlasstnosti. OBRÁZEK K 5.12
Objekt oknaa programu aa jeho vlastn nosti v panelu u Vlastností
1
2
V panelu vlasstností (2) jssou vypsány všechny vlaastnosti přísllušného objeektu. Věnujm me teedy několik o okamžiků a seeznamme see s tím, co ten nto panel ob bsahuje. mi, naahoře můžeme vidět seeznam všech objektů (1), Níže je umístěna liišta s ikonam ktterými můžeeme určovat,, co a jakým m způsobem bude zobrazeno v seznaamu vlastno ostí vyybraného ob bjektu (2). Úplně na spodu s je pole, ve kteerém se vypisuje struččná ch harakteristikaa, co která vvlastnost urču uje. Seznam vlastností, jaak jej vidímee na obrázku u je minimalizovan ný, Jsou zde zobrazenyy jen skupiiny vlastnosstí. Každá sskupina se dá ro ozvinout klikn nutím na práázdnou šipku u vlevo.
89
modulu tvůrcee systému
OBRÁZEK K 5.13
Okno vývojového prosttředí po zobrrazení Editorru vlastnostíí a událostí
1 1
2
3 3 naši práci se ujistěme, že e je Vrraťme se nejprve k ikonáám. Jejich účel shrnuje taabulka. Pro n vyybrána ikonaa vlastností, m má tvar prossvětleného tlačítka. Pak je pro tento p případ klikně ěte naa první ikonu u, řazení do sskupin podlee společné ch harakteristikky skupiny vlaastností. Jed dná see například o vlastnosti, které urččují vzhled prvku. Mno ohdy je výhodnější řaze ení vlaastností podle abecedy. Pokud rozkliikneme všechny skupiny,, nevejdou se nám do okkna a na boku see zobrazí posuvník. Neemusíme si pamatovat význam všeech vlastnosstí, věětšinou si zaapamatujem me jen ty neejpoužívanějšší. Ostatní bývají b nastaaveny tak, aby a vlaastnosti prvku vyhovovaaly v co možžná nejvíce případech. Pokud nám nestačí kráttký po opis té kteeré vlastnossti v poli naspodu n okna (3), pak jej můžeeme dohled dat v d dokumentacci vývojového o prostředí. O O hledání v n nápovědě see zmíníme po ozději. ¨
PR ROGRAMOVA ACÍ JAZYK A VÝVOJOVÉ P PROSTŘEDÍ
Taab. 1 Rozlišen ní způsobu u uspořádání vlastností TABULK KA 5.1
Ikony panelu Vlastnosti
Kattegorie ‐ řazeení dle kateggorií
ností Abeecedně ‐ řazeení dle vlastn
Vlastnosti ‐ zob brazit vlastno osti Udáálosti ‐ zobraazit události
Stráánky vlastno ostí
ost. Zvvolíme‐li abeecední řazeníí, pak je na kkaždém řádku Editoru je zobrazena jeedna vlastno V levém sloup pci je její názzev, v pravém m její hodno ota. Důležitéé vlastnosti o okna program mu sh hrnuje Tab. 5.2. Zkuste některé z nich n změnit. Pak program m spusťte (jjiž víme jak)) a po odívejme, jakk se změnil vvzhled a cho ování našeho o programu (okna). Hodn notu konkrétní vlaastnosti změěníte tak, žee na ni klep pnete. Pak buď zapíšete novou ho odnotu určujjící vyybranou vlasttnost, nebo jji vybereme z nabízeného seznamu. TABULK KA 5.2
Důležité vlaastnosti oknaa programu
V Vlastnost okn na
Po opis
TText B BackColor
Teext v titulkové liště okna Baarva pozadí okna; lze vyybírat ze systémových barev (záložkka „System"), nebo z doporu učených barrev pro internet (záložkka „W Web"), nebo uživatelem d definovaných h (záložka „C Custom“). Styyl rámečku o okna (např. zzda jde okno zvětšovat attp.) Urrčuje, zda okno má ikonkku pro minim malizaci. Urrčuje, zda okno má ikonkku pro maxim malizaci. Urrčuje, zda okno má ikonkku pro nápovvědu.
FFormBorderSStyle M MinimizeBox x M MaximizeBox x H HelpButton
hled našeho druhého pro ogramu. Vidííte, že text v titulku oknaa je Naa Obr. 11 je zzobrazen vzh zm měněn na „D Druhý Program“ a místo vvlevo je umísstěn vpravo,, někam zmizzely ikonky p pro minimalizaci aa maximalizaaci okna a přřibyla ikonkaa s otazníčkeem, ikona náápovědy. Barrva po ozadí okna jee na modrá.
91
modulu tvůrcee systému
OBRÁZEK K 5.14
Vzhled oknaa programu p po změnách vlastnosti okna
Vššechny změn ny byly proveedeny změno ou příslušnýcch vlastností: • • • • •
text titulkové lištyy okna na „Drruhý program m", do po ole vlastnosti „RightToLLeft“ byla vepsána v (lép pe vybrána z nabídnuté ého seznam mu) hodnotaa „Yes“ ‐ nad dpis v okně je e zarovnán zprava dolevaa, vlastnost „HelpButton“ byla nastavena na hodnotu „trrue“ ‐ zobrazzila se ikonka s otaznííkem, vlastnosti MinimizzeBox a MaxximizeBox byyly nastavenyy na hodnotu False, ikon nky ezobrazily, pro minimalizaci aa maximalizaci okna se ne na hodnotu „„GradientActtiveCaption““. barva pozadí „BacckColor“ bylaa nastavena n
Po okud jste pozorně p přečetli předch hozí text, všimli jste si, s že různé vlastnosti se deefinovaly růzzným způsob bem. Všimněme se zatím následujících možností: Taam, kde byl vvýběr jen ze dvou možno ostí, například ikona se zo obrazí / ikona se nezobraazí, jsm me také vollili jen ze dvvou možnosstí: „true“ a „false“, praavda, platí, 1 a nepravd da, neeplatí, 0. Jedná se o lo ogické hodnoty. Logické é výrazy mo ohou nabývaat pouze dvvou ho odnot. Vlastn nost, která b buď je, nebo není, také naabývá pouzee dvou hodno ot, je logické ého tyypu. Něěkteré vlastnosti, napříkklad velikostt okna, nabývají číselnýých hodnot. Tyto hodno oty mohou být celočíselní neb bo desetinné. Tittulek okna jee libovolný teext, tato vlasstnost nabývvá textových hodnot.
5..7 Soubo ory projektu Jižž jsme několikrát hovořili o pojmu prrojekt. Podívvejme se, co si pod tímto slovem mám me přředstavit. Prrojekt tvoří soubor složek a souborů na disku počítače. V V Průzkumnííku W Windows si zobrazíme slo ožku, do nížž jsme uložilli např. Druh hý program.. Obsah složžky bu ude vypadat obdobně tomu, co lze viidět na obrázzku Obr. 5.15 5.
PR ROGRAMOVA ACÍ JAZYK A VÝVOJOVÉ P PROSTŘEDÍ
OBRÁZEK K 5.15
Složka s pro ojektem v Prrůzkumníkovvi
2 2
1 3
4
3
Vee složce projjektu vidímee složky v mo odrém ráme ečku (1), deffiniční soubo ory projektu ve fiaalovém rám mečku (2) s příponami csproj. c user a csproj, soubory zdrrojových kó ódů prrogramu, s příponou reesx. V této chvíli jsou u pro nás nejdůležitějjší soubory s přříponou.cs, ttedy ty v červvených rámeečcích (3). Tě ěmto souborům říkáme zdrojové texxty prrogramu (někdy se také říká zdrojovvé kódy). Tytto soubory o obsahují vlasstní zápis (kó ód) prrogramu zapsaný v prrogramovacíím jazyce C#. C Jde vždy o soubory prostéh ho, neeformátovan ného textu. Takovéto T so oubory si mů ůžete prohléédnout v ediitorech jako je naapř. Poznám mkový blok, PSPad P apod.. Také je lze e v těchto ed ditorech vyttvořit případ dně up pravovat.
93
modulu tvůrcee systému
OBRÁZEK K 5.16
Zdrojový text Form1 .cs v Poznámko ovém bloku
Přříklad zdrojového kódu FForm1. cs v P Poznámkové ém bloku vid díme na obráázku 5.16. Te ext je pěkně čiteln ný, zatím mu u v počátku studia prograamování pravvděpodobněě nerozumíte e. drojové textyy jsou základ dní formou uložení proggramu. Přestto, že uživattelské rozhraaní Zd prrogramu navvrhujeme grraficky pomocí grafického editoru, ten je ukláádá v podo obě zd drojového kó ódu. Obrázekk návrhu okn na s titulkovo ou lištou a ikkonkami v okně grafické ého ed ditoru nebo Editor vlasttností a udáálostí, to jso ou nástroje, které vývo ojové prostře edí naabízí programátorovi. Vlastní V obrázzek okna prrogramu nikkde na diskku nenajdem me. Ottevřeme‐li dříve uloženýý projekt, vývojové prosttředí Visual C# vytvoří o obrázek návrrhu okkna i nastavví hodnoty jeho vlastno ostí podle zd drojových kó ódů program mu! Kdykoli ve výývojovém pro ostředí změn níme podobu okna nebo o jeho vlastn nosti, prostřeedí tyto změ ěny uloží ve zdrojo ovém kódu p programu.
PR ROGRAMOVA ACÍ JAZYK A VÝVOJOVÉ P PROSTŘEDÍ
Krromě zdrojovvých textů see ve složce p projektu nale ezneme soub bor s přípon nou. csproj, ccož je definiční so oubor projekktu. Tento soubor s určitýým způsobem zastřešujee celý proje ekt, říkká, co všechn no do projekktu patří, kteeré zdrojové texty, odkazzy na knihovn ny atd. Dovn nitř so ouboru nebudeme nikdy přímo zasah hovat. Soubo or nikdy nemažeme. OBRÁZEK K 5.17
Složka proje ektu DruhyP Program
v progrramových syystémů tak, že Výývojové prosstředí umožňuje rovněž vytváření větších něěkolik příbuzných projeektů sdružit do jednoh ho řešení (ssolution). Paak v kořeno ové (záákladní) složžce projektu nalezneme soubor s přííponou sln, jde j o tzv. deefiniční soub bor řeešení. Soubo or obsahuje seznam obssahující, kterré všechny projekty p pattří do určité ého řeešení. Tento ssoubor také nemažeme aani sami neu upravujeme. Ch hcete‐li přen nést rozpraco ovaný program např. ze školy domů ů, je nejjednodušší přené ést ceelou složku projektu se všemi soub bory a podslložkami. Některé soubo ory není nuttné přřenášet (vytvvářejí se vžd dy znovu), ale a pro jednoduchost raaději zkopíru ujte vždy celou slo ožku projekttu. Po přeneesení složky na nové míssto, poklepejte buď na ssoubor. csprroj, neebo na soubor. sln. Projeekt se vám o otevře ve vývvojovém pro ostředí, kteréé ale na dané ém po očítači musí být instalovaané.
5..8 Spustittelná podo oba prograamu Zd drojové textyy, soubory projektu jso ou pouze pro ostředky k vytvoření v prrogramu v tzv. sp pustitelné po odobě. Takovvý soubor po oznáme podle přípony. eexe. Uživateléé potřebují m mít prrogram ve spustitelné podobě, pouzze poklepat na příslušnýý.exe soubor, případně na jeho zástupce,, a začít s pro ogramem pracovat. br. 14 Ukázkka spustitelnéé podoby pro ogramu (částt) Ob
95
modulu tvůrcee systému
OBRÁZEK K 5.18
Spustitelnýý program ve e strojových instrukcích
Sp pustitelný prrogram tvoříí sled instrukkcí určených pro proceso or počítače. Instrukce jssou zaapsány ve strrojovém jazyyce. Tento kó ód je pro človvěka obtížně srozumiteln ný (obr. 5‐18). Sp pustitelná po odoba vznikká během seestavování programu. p T Toto sestavo ování proběh hlo v o okamžiku, kd dy jsme chtěěli program spustit. V průběhu sesstavování spu ustitelného kkódu docházzí: •
•
K překkladu prograamu z prograamovacího jaazyka do jazyyka strojovéého, který ješště není spustitelný. s Tomuto kód du říkáme objektový o kó ód a příslušný soubor má m přípon nu obj. Náš program to otiž potřebujje využívat různých r funkcí, které jssou společčné pro většiinu programů a které jso ou umístěny vv tzv. knihovvnách. Další ffází je spojování různých h částí progrramu a k vyttváření vazeb b na knihovn ny, případ dně jiné sou učásti operačního systém mu. Jedná se s o takzvan né sestavováání (linkovvání) programu, jejím výsledkem je sspustitelný so oubor.
PR ROGRAMOVA ACÍ JAZYK A VÝVOJOVÉ P PROSTŘEDÍ
V našem přípaadě se po ússpěšném sesttavení DruhyyProgram. exxe zapíše do o podsložky b bin P se do o této složkky podívámee, zjistíme, že složka bin b hlavní složky projektu. Pokud bsahuje dvě další, pojmeenované Deb bug a Releasse. Během p práce na proggramu, běhe em ob tzvv. ladění, kd dy hledáme rozličné chyyby v prograamu, využívááme podložkku Debug a ve fin nální verzi vzznikne koneččný tvar proggramu, který je umístěn vve složce Release. Do o složky bin\\Debug se prrogram sestaavuje při volbě Debug > Start Debuggging. Do složžky bin\Release see program vyytváří, pokud d volíme příkaz Debug >> Start Witho out Debuggin ng, d > Build solu ution (sestavvení bez spušštění). přřípadně Build
5..9 Průzku umník řeše ení Kaaždý projekt je tvořen ceelou řadou so ouborů, odkaazů atd. Protto je potřebaa, aby vývojo ové prrostředí obssahovalo náástroj, který se s jedno otlivými sou učástmi pro ojektu dokááže prracovat. Tímto nástrojem m je Průzkum mník řešení Jeho panel zobrazíme zz nabídky Vie ew vo olbou Solutio on Explorer. Prrůzkumník řeešení se standardně zob brazí na pravé straně okna vývojovvého prostře edí, stejně jako Editor vlastnosstí a událostíí. Pokud jsou u oba nástroje zobrazenyy současně, p pak si příslušnou část č okna ro ozdělí napůl. Panely lze také t střídat s využitím zzáložek. Pane ely mohou být taaké automatticky uzavírány. Pokud chceme, c abyy panel byl vvždy zobraze en, přřipíchneme jej špendlíkeem do okna (klepneme n na něj), poku ud jej chcem me skrývat, p pak šp pendlík vytáh hneme (opěět klepnutím m kurzorem myši). Autom matické ukrýývání okna lze také zvolit příkazem „Auto oHide“ a to ttak, že na lišštu panelu kllepneme praavým tlačítke em myši. OBRÁZEK K 5.19
Vývojové prostředí se sspuštěným p průzkumníkeem
a a)
b b)
c)
Výývojového prostředí se sspuštěným P Průzkumníke em řešení ukkazuje Obr. 5 5.19. V přípaadě a) je zobrazen Průzkumníkk a panel Vlastnosti, v příípadě b) je zo obrazen pou uze Průzkumn ník a panel Vlastn nosti je skryttý za svou záložku, v příípadě c) jsou u oba panelyy ukryty a jssou zo obrazeny pou uze dvě záložžky.
97
modulu tvůrcee systému
Jeednotlivé čássti řešení (ssolution) jso ou v Průzkumníku organizovány hieerarchicky. Na vrrcholu u horrního okrajee panelu Prů ůzkumník, je e ikona řešeení ‐ DruhyProgram. Je eho so oučástí je jed diný projekt D DruhýPrograam. Projektu obsahuje přředevším zdrrojové texty: • • •
Form1 1. cs, Prograam, cs a Form1 1. Designer. cs. Tento so oubor se objeví po klepnutí na ikon nku s prázdnou šipkou u, vedle ikonky Form1. css. OBRÁZEK K 5.20
Zobrazení p panelu Návrh háře z konte extové nabíd dky
Prrůzkumníka řřešení budem me používat zejména k akcím: •
•
•
Zobrazení návrhu Návrhářem ‐ pokud si N Návrháře om mylem zavřem me; v takové ém dě klepnemee v Průzkumn níku pravým m tlačítkem n na Form1.cs a z kontexto ové případ nabídkky vyberte View V Designer (klávesovvá zkratka Sh hift+F7, stiskkneme kláve esu Shift aa pak současně funkční klávesu F7). Zobrazení zdrojo ového kódu. Činnosti, které bud dou vytvářeené program my provádět, zapisujjeme do zd drojového kódu k Form1 1.cs. Pro jeeho zobraze ení klepneeme pravým m tlačítkem n na Form1. css a z kontexttové nabídkyy vyberte Vie ew Code (klávesová zkratka F7). Přejmenování řeššení, projekttu, nebo zdrrojových texxtů. Provedeeme klepnuttím m tlačítkem m na přísluššnou položkku a z kon ntextové nabídky vyberrte pravým Renam me.
PR ROGRAMOVA ACÍ JAZYK A VÝVOJOVÉ P PROSTŘEDÍ
Jisstě jste si všimli, v že zd drojových teextů je něko olik. V našem m příkladu máme tako ové so oubory tři, rozsáhlé r pro ojekty jich obsahují o tře eba tisíce. Tím, T že rozssáhlý prograam ro ozčleníme naa jednotlivé soubory, se zvýší přeh hlednost cellého program mového kód du. Členěn není nahodilé, nýýbrž je smyysluplně. Kažždý soubor obvykle osahuje nějakkou logicky ucelen nou část proggramu. Šaablona „Win ndows Application", která nám possloužila k vyytvoření naššich program mů, ob bsahuje tři zdrojové z sou ubory. Oba soubory s Form m1 se týkajíí hlavního okkna program mu. So oubor Program, cs je jaakási koordiinátor našeh ho programu u. Anglické slovo „Form m", v ččeštině jej ozznačujeme „formulář", o označuje okno programu. Těch může být více. Jejiich jm ména vývojové prostředí pojmenovává „Form1", „Form2“ atd., formu uláře postup pně číssluje. Jedná o „první form mulář", „prvn ní okno", „Druhý formuláář“… Jména těchto objekktů je možné změnit tak, aby b byl zřejmý jeejich funkce. So oubory začín nající Form1 jsou dva Form1. cs a Form1.Desiggner.cs. Soubor Form1. cs up pravuje proggramátor, říká, co má nášš program dě ělat. So oubor Form1 1.Designer.css vytváří Návvrhář a zapissuje do něj, jjaká okna a ovládací prvvky prrogramátor n navrhl a jakéé jsou jejich vvlastnosti. Z ffunkčního hllediska na náázvech zdrojových textů programu n nezáleží. Pro přehlednostt je sp právné je vo olit smyslup plně. Název zdrojového souboru by měl naznačovat, funkci prrogramu tentto zdrojový kkód řeší. ZAPAMATTUJTE SI
povinně
K programovvání se používá vývojovvé prostředíí např. vývo K ojové prostřeedí Microsoft V Visual C# Exp press Edition. N Nové program my se vytvářří jako projekkty z nabídkyy File > New Project. Programy s grafickým uživatelským P u m rozhraním se vytvářeejí ze šablon ny „Window ws A Application", , resp. „Wind dows Forms Application"" K vizuálnímu návrhu uživvatelského ro K ozhraní proggramu slouží Návrhář. Jeh ho součástí jje e editor Vlastn nosti umožňující nastavo ování různýcch vlastnosttí okna proggramu (barvaa, t text titulkové é lišty atd.). EEditor se vyvvolá nabídkou View > Pro operties Window. P Připravené p rogramy se sspouští pomocí nabídky Debug > Starrt Debuggingg. Projekty se n P na disku ukláádají vždy do o samostatné é složky. Jejím m přeneseníím lze projekkt p přenést na jiiný počítač. Složka projeektu obsahujje několik zd drojových textů a dalších h, p převážně pom mocných sou uborů. K manipulaci s projektem slouží Průzkumník ře K ešení. Jeho zobrazení z jee možné pře es n nabídku View w > Solution Explorer. Programy see uživatelům P m distribuují ve spustitellné podobě jako soubory s přípono ou .exe.
99
modulu tvůrcee systému
KONTROLNÍÍ OTÁZKY
povinně
K čem mu slouží vývvojové prosttředí Co jee to projekt aa jaké soubory jej tvoří Jak vvypadá spustitelná podob ba programu u. Co musíte m zkopírrovat, pokud d chcete pře enést prograam z jednoho o počítače na jiný
PR ROGRAMOVA ACÍ JAZYK A VÝVOJOVÉ P PROSTŘEDÍ
S SHRNUTÍ KA PITOLY
Pro vvývoj program mů používám me vývojová prostředí, Projeekt tvoří různé soubory, které jsou u umístěny ve složce projeektu, která sse jmen nuje tak, jak jjsme ji pojmenovali v začčátku tvorby projektu. Vých hozí formou p programu je jeho zdrojovvý kód Po sestavení pro ogramu vývo ojovým prosstředím vznikkne spustiteelný program m. Ten m má příponu eexe. STTUDIJNÍ LITEERATURA Moderní proggramování : učebnice pro M p začátečníky / Radeek Vystavěl. ‐ Ondřejovv : moderní progrramování, 20 007 ‐ 193 s. :: il. ISBN 978 8‐80‐903951‐‐0‐7 (brož.) Moderní proggramování : sbírka úloh M h k učebnici pro začáteečníky / Rad dek Vystavěll. ‐ On ndřejov : mo oderní prograamování, 2007 ‐ 137 s. : il. ISBN 978‐8 80‐903951‐1 1‐4 (brož.) Acccelerated C# 2008 / Treey Nash ; [fo oreword by W Wes Dyer]. ‐ Berkeley : A Apress, c2007 ‐ xxxviii, 510 s. : il. ISBN 978‐1‐59059‐ 9 ‐873‐3 (brožž.)1‐59059‐8 873‐3 (chybn né)978‐1‐430 02‐ 03 338‐4 (e‐knih ha) Algoritmizace / Jana Pšenčíková. ‐ Vyd d. 1. ‐ Kralicce na Hané : Computer M Media, c2007 ‐ 12 28 s. : il. ISBN N 978‐80‐866 686‐80‐6 (v kknize neuved deno : brož.)80‐86686‐80 0‐9 (chybné) Algoritmy a datové d struktury / Břetisslav Krček, Ivan I Kolomaazník. ‐ Verzze 27.3.2007 7. ‐ Osstrava : VŠB ‐ Technická univerzita O Ostrava, [200 07?] ‐ 1 elektronický opticcký disk (CD‐‐R) : b barev. ISBN 9 978‐80‐248‐1 1306‐6 (CD‐R R) Algoritmy a šttruktúry údaajov [Wirth, 1989] / Nikklaus Wirth ; [z anglickéh ho originálu ... prreložil Pavol Fischer]. ‐ 2. vyd.. ‐ Brattislava : Alfa,, 1989 ‐ 481 s. : il. ISBN 80‐05‐00153 3‐3 (váz.) Karel Voráče ek]. ASSP.NET 2.0 : programujeme profesionálně / Bill EEvjen ... [et aal. ; překlad K ‐ V Vyd. 1. ‐ Brno o : Computer Press, 2006 6 ‐ 1224 s. : il. ISBN 80‐25 51‐1286‐1 (vváz.) ASSP.NET 4 a C# C 2010 : tvvorba dynam mických strán nek profesio onálně. Knihaa 1 / Matthe ew M MacDonald, A Adam Freeman, Mario Szpuszta ; [přřeklad Jan Pokorný]. P ‐ V Vyd. 1. ‐ Brno : Zo oner Press, 2 2011 ‐ 880 s. : il. ISBN 978 8‐80‐7413‐13 31‐8 (váz. ASSP.NET 4 a C# C 2010 : tvvorba dynam mických strán nek profesio onálně. Knihaa 2 / Matthe ew M MacDonald, A Adam Freeman, Mario Szpuszta ; [přřeklad Jan Pokorný]. P ‐ V Vyd. 1. ‐ Brno : Zo oner Press, 2 2011 ‐ 700 s. : il. ISBN 978 8‐80‐7413‐14 45‐5 (váz
1 101
modulu tvůrcee systému
Ovvládací prvkyy
6 Ovláádací prrvky Ú ÚVOD V této kapitolee věnujeme pozornost ovládacím prvvkům, jako jssou textová pole, popiskky, tla ačítka či zaškkrtávací políč íčka. Slouží o ovládání prog gramu a jeho o výstupu. Za atím Nebudo ou sicce v podstattě nic užitečn ného vykoná ávat. Jak je naučit n něco dělat si uká ážeme pozděj ěji. Bu udeme se ted dy plně věnovat jen jejich h vlastnostem m. CÍÍLE KAPITOLY Y Po o prostudová ání této kapiitoly a vypra acování úkollů budete UM MĚT: Vytvořřit na ploše o okna program mu ovládací prvky. Přiřadit vlastnosti ovládacímu prvku. Po o prostudová ání této kapiitoly a vypra acování úkollů ZÍSKÁTE: Základ dní potřebnéé dovednosti s panelem V Vývojář (Desiigner). Inform mace potřebn né pro práci s panelem V Vlastnostmi (Properties) Po o prostudová ání této kapiitoly a vypra acování úkollů BUDETE SC CHOPNI: Vypracovat uživattelské rozhrraní program mu a přiřad dit jeho prvvkům základní vlastnosti.
1 103
modulu tvůrcee systému
6..1 Textovvé pole Neejdůležitějším m ovládacím m prvkem pro nás bude e Textové pole. p Je to o obdélník, kte erý užživateli progrramu umožň ňuje zadat v ttextové form mě vstupní úd daj. Textové pole lze také s výýhodou využžít v i pro zo obrazování výstupních úd dajů program mu. Okážem me si i ovládací prrvek popisekk, textové po ole má k disspozici více nástrojů, n zejména zalam mování řádků ů a po osuvníky. Ukkážeme si, jaak vytvořit program s texxtovým polem, který bud de mít ve svéém okně jedno teextové pole, vve kterém bu ude blikající kurzor čekatt na zadání teextu od uživaatele. Neejprve vytvo oříme nový p projekt „Texttové pole". ZZvolíme vhod dnou velikosst okna. K práci nyyní budeme potřebovat sadu nástrojjů anglicky n nazývané nazzvané „Toolb box". Najdem me ji u levého okraje okna vývojového prostředí. Toolbox T zasttupuje ikonka s obrázke em klaadívka a palličky. Pokud se nějakým m nedopatřen ním ztratí, můžete m Nástroje zobrazit z naabídky View volbou Toolb box. OBRÁZEEK 6.1
Záložka pan nelu nástrojů ů
ox jej rozbalíme. V Násttrojích je um místěno mno oho užitečnýých Klepnutím myyší na Toolbo náástrojů. Ty jssou pro přehlednost sdru uženy do sku upin. Názvy sskupin mají vvedle sebe buď prrázdnou, neb bo plnou šip pku. Prázdná šipka znamená, že skup pina je sbaleená. Klepnuttím naa šipku ji můžeme m rozb balit. Plná šikmá š šipka znamená, že ž skupina je rozbalenáá a kleepnutím na ššipku ji můžeeme sbalit.
Ovvládací prvkyy
OBRÁZEEK 6.2
Nástroje ‐ vvolba skupiny společné p prvky
Prro naši další práci bude důležitá zejména z sku upina „Common Contro ols", v té jssou um místěny všecchny základn ní ovládací prvky, se ktterými budeeme pracovaat. V rozbale ené skkupině vyhled dáme ovládaací prvek nazzvaný „TextB Box". Kurzoreem myši nad něj najedem me, stiskneme levvé tlačítko a ovládací prvek přetáhn neme nad okkno program mu na povrcchu Náávrháře. Tam m jej umístím me, uvolnímee stisknuté ttlačítko myšii. Další možn ností, jak prvvek um místit do okn na programu u, je pouze kklepnout v N Nástrojích na nástroj a ovvládací prvekk v okkně program mu myší umíístit tak, že na nějakém místě stiskneme levé ttlačítko myši a naaznačený obd délník roztáh hneme na žáádanou veliko ost.
1 105
modulu tvůrcee systému
OBRÁZEEK 6.3
Menu pro vvycentrováníí objektu v o okně
Po okud jsme teextové pole přenesli do okna prograamu, máme náš třetí program hotovvý. Zn námým způssobem jej sp pustíme (Deb bug a Start Debugging) D a vyzkoušíme, jak fungu a uje. Do o textového pole můžem me, zapisovaat, zapsaný text je možno editovat,, mazat, jsou i fu unkční klávessové zkratky Ctrl+C a Ctrll+V pro zkopírování nebo o vložení ozn načeného texxtu do o / ze schránky Windowss. Po okud chcemee mít textovéé pole v okn ně programu vycentrovan né přesně, jaako je tomu na ob brázku 6.2, klepněme na něj, tím jeej vybereme e (zobrazí see úchytné bo ody) a v me enu Fo ormat vybereeme příkaz C Center in Fo orm a pak Ho orizontally aa Vertically. TTotéž můžem me prrovést pomo ocí příslušnýcch ikon na paanelu nástrojjů „Layout". Vyybraný prvekk, a pouze teen, má své vllastnosti zob brazeny v pan nelu Vlastno osti. Klepnem me‐ li na okno proggramu, budee vybráno on no, klepneme e‐li na textovvé pole, budee vybráno on no. Neejdůležitější vlastnosti po ole jsou jeho o jméno (Name) a Text. V Vlastnost (N Name) najdem me přři abecedním m řazení úpln ně nahoře. TTuto vlastnosst má každý ovládací prvvek. Přesněji se jedná o jeho identifikátorr, pro jeho tvorbu t platí určitá praviidla. Vždy, kkdyž vložíte do prrogramu ovládací prvek,, ho také ihned pojmen nujte. Dodržováním toho oto pravidlaa si uššetříme řadu u problémů vv budoucnu! Výývojové prosstředí přiřadíí každému ovvládacímu prrvku nějaké jjméno. Pro ttextová pole to jso ou jména teextBox1, texxtBox2, textBox3 atd. Pro P pozdější snazší orien ntaci každém mu prrvku dáme srozumitelné jméno. Výsstižná pojme enování jsou v programo ování nesmírrně dů ůležitá. Pro ččitelnost kódu. Nááš další proggram bude p pracovat se ttřemi textovvými poli pro o zadání jmééna, příjmení a teelefonního čísla č (obrázeek 6.4). Nabízí se pojm menování textových po olí textJmén no, teextPříjmení aa textTelefon n. Tím vyjádřříme, že jde o textová pole, a navíc naznačíme, co
Ovvládací prvkyy
see v nich bud de zadávat. Stávající prrogram z obrázku 6.4 můžete m mít vvstupní jmé éno Teelefon. OBRÁZEEK 6.4
Program Te elefon, počátteční návrh
Prravidla pro o tvorbu id dentifikáto oru (jména) jsou následující: •
• • •
Nesmíí obsahovat mezery. I beez mezer jména zůstano ou čitelná, po okud dodržím me konveenci:první slo ovo píšeme celé malým mi písmeny a v každém m dalším slo ově napíšeeme počátečční písmeno vvelké. Můžou obsahovatt písmena, čísslice a případ dně podtržítko a nesmí zzačínat číslicíí. Ostatn ní znaky jsou u nepřípustnéé. Je rozdíl mezi malými a velkým mi písmeny. Například textAdresa a textAdresa by d různé věěci. Všimněm me si také, že ž ve jméneech můžete p používat česská byly dvě písmeena i s diakrittikou, s háčkyy a čárkami.
Vlastnost te ext Neejdůležitější vlastností teextového po ole je Text. Hodnotou H jee text, který je v textové ém po oli zobrazen. Jde obvykkle o text, který k do ně ěj zapsal uživatel. Počáteční hodno otu můžeme nastaavit v nástro oji Vlastnosti. Například d do pole vlasttnosti Text zzapíšeme např. „ZZadejte text"" (zapisujem me bez uvozzovek). Po spuštění s bud de program mít hned od zaačátku v texxtovém polii nápis „Zad dejte text". Hodnota vlastnosti v Teext se běhe em prrogramu neu ustále podle toho, jak uživatel v texxtovém poli zadává nebo maže znaky. Prrogram můžee přečíst, co obsahuje a ss touto hodn notou pracovvat.
Další vlastnosti textovvého pole Mimo nejdůleežitějších vlasstností Namee a Text najd M deme další často využívaané vlastnostti v Taab. 6. Vlastnost BackColo or, ForeColor a Font nevvyžadují nějaaké další vysvvětlování. Tyyto třii vlastnosti existují e u vššech ovládaccích prvků. Velikost V texttového pole lze jednodu uše
1 107
modulu tvůrcee systému
měnit roztažením za okrajj, stejně jako o tomu bylo u okna progrramu. Obdobně se veliko ost dáá měnit i u osstatních ovláádacích prvků. Některé vlaastnosti textového pole
TABULK KA 6.1 Název vlastnosti
Po opis
BackColorr
Baarva pozadíí textového pole (možžno zvolit způsobem po odobným jakko u okna programu)
ForeColorr
Baarva textu v textovém m poli (možžno zvolit způsobem po odobným jakko u BackCollor)
Font
Druh a velikkost písma použitého k zobrazení textu v teextovém polii (rozbalte ikonku s pluseem)
hování texto ového pole určují vlastn nosti z tabulky 6. Vyzko oušejte, co sse stane, kd dyž Ch bu udeme měnit jejich hodn notu. Taab. 6 Vlastno osti ovlivňujíccí chování textového pole TABULK KA 6.2
Další vlastn nosti textové ého pole
Názeev vlastnosti
Popis
MaxLLength
Maximáální počet zn naků, které uživatel můžže do textovéého pole zadaat. Při naastavení naa True um možňuje zadání víceřádkového textu.
Multtiline Read dOnly
Při nasstavení na True T nedovo olí editaci ttextu. Vhodnéé, když nějakký text chcetee jen zobraziit.
ScrolllBars
Umožňuje okolo textového pole zob brazit posuvníky (hodnotty Vodorovvný, Svislý, Oba, Žádný). TextA Align Zarovnáání textu v textovém m poli (Do oleva, Dopravva, Na střed).. UseSSystemPassw word Při nasstavení na True T místo znaků zobrrazuje Charr puntíkyy. Vhodné pro zadávání h hesla. Word dWrap
Při nasstavení na True autom maticky na konci řádku zalamuje textt (u víceřádkového pole).
6..2 Popise ek Po opisek je texxtový nápis, kkterý můžem me umístit kaamkoli do okkna program mu. Většinou se um misťuje blízkko jiných ovvládacích prvvků a svou přítomností naznačuje jejich význam. Prráci s popiskky si ukážeme na programu pro zadáávání telefon nních čísel, jehož vzhled je zaachycen na O Obr. 17. Ve Visual C# si vyytvořte nový projekt nazvvaný „Telefo on".
Ovvládací prvkyy
Prrogram budee mít šest ovvládacích prvvků ‐ tři texto ová pole a třři popisky. Nejprve zadám me teextová pole. ZZe skupiny „Common Co ontrols" v Náástrojích přettáhnete na o okno program mu jeden objekt TTextBox, pak druhý a nakkonec třetí. V Všechna tři teextová pole u umístíme po od OBRÁZEEK 6.5
Vyrovnáván ní popisků s textovými p poli
seebe. Zarovnááni ve vodoro ovném směrru je snadné, vývojové p prostředí po hranách prvvku ukkazuje modrré čáry, na které k se dalšší ovládací prvky samy umisťují. u Ve svislém smě ěru po ožadujeme, aby všechn na tři textovvá pole byla ve stejnýých odstupeech. Vyberem me vššechna tři pole p tak, že přidržte kláávesu Ctrl a a postupně klepneme n na každé po ole. Vššechna by měla m být vyb brána, označčena malými čtverečky. Z nabídky Format zvolím me Veertical Spacin ng a pak Makke Equal. Do o okna proggramu postupně přetáhn neme tři pop pisky a umísstíme je k teextovým políím. Ob bjekty popisků se nacházení v Nástrrojích ve sku upině „Comm mon Controlss" pod názve em „LLabel". Po přetažení p jee ve vodoro ovném směru zarovnám me pomocí modrých čar č naavzájem vůčii sobě, ve sviislém směru pomocí fialo ových čar vžd dy k pomysln ným linkám, na ktterých se v teextových polích zobrazuje text. Po opisky po řad dě pojmenujjeme popisekJméno, pop pisekPříjmen ní, popisekTeelefon. Texto ová po ole pojmenu ujeme: textJJméno, textP Příjmění, texxtTelefon. Nakonec N vlastnost (Nam me) saamotného okkna programu nastavímee na oknoSeznamu. Po o pojmenováání všech objjektů nastavvte jejich vlasstnosti Text p podle Tab. 6 6. Všimněme si, žee ačkoli vlasttnost Text mají m všechnyy druhy obje ektů, má u každého k z niich trochu jiiný výýznam. Taab. 6 Hodnotty vlastnosti Text pro jednotlivé objekty
1 109
modulu tvůrcee systému
TABULK KA 6.3
Hodnoty vlaastnosti Texxt u jednotlivvých objektů ů
O Objekt
Ho odnota vlastnosti Text Význam vlast V tnosti Text
o oknoSeznam mu
Teelefon
text titulkové t é lišty
p popisekJmén no
Jm méno:
text popisku t
p popisekPříjm mení
Přříjmení:
p popisekTelef fon
Teelefon:
t textJméno
(p prázdné)
t textPříjmění
(p prázdné)
t textTelefon
(p prázdné)
text t zobrrazený textovém po t oli
vv
6..3 Klávessové zkratkky a pořadí tabulátorru Prrogram dále doplníme o o klávesové zkratky. z Ty jsou v textu zdůrazněný podtržením. V teextu „Jméno::" bychom naapř. mohli ch htít podtrhnout písmeno o „J. Při stiskku klávesy Altt+J po ožadujeme, aaby se aktivo ovalo textovéé pole pro zaadání jména. Po odtržení konkrétního písmene v textu u popisku se docílí tím, že ve vlastnost Text dané ého po opisku změn níme tak, žee před písmeeno, které má m být podttrženo, napííšeme znak &. Tímto způsobem podtrhneme vždy první písmeno o. Nové hod dnoty jejich vlastností Te ext po otom budou takové, jak jje ukazuje Taab. 7. Taab. 7 Vlastno ost Text změn něná tak, abyy vždy první písmeno byllo podtrženéé
O Objekt
Změněná vlastnost Texxt popisku, první písmeno je podtrženo Teext
p popisekJmén no
&JJméno:
p popisekPříjm mění
&P Příjmení:
p popisekAdre sa
&TTelefon:
TABULK KA 6.4
okud při spu uštění prograamu nebudo ou podtržen ná první písm mena všech popisků, je to Po zaaviněno nasttavením Windows, kdy až do stiskknutí klávessy Alt se po odtržení znaaků skkrývají. Ve Windows W 7 nastavíme Ovládací panely‐>Cent p trum usnadn nění přístup pu‐ >U Usnadnit pou užívání kláveesnice‐>Zjedn nodušit použžívání klávessových zkrateek‐>zaškrtno out "P Podtrhávat klávesové k zkkratky a přísstupové klávvesy". Ve Windows XP ttoto nastave ení naajdeme tak, žže pravým tllačítkem klepneme na plochu, z kontextové nabíídky vyberem me Vlastnosti, v o okně klepnem me na kartu „„Vzhled" a v ní na tlačítko o „Efekty…“
Ovvládací prvkyy
Vyyzkoušíme‐li klávesové zkkratky Alt+J, Alt+P, Alt+A A, zjistíme, žee nefungují n nebo že funggují jen zčásti. Fu unkčnost zkrratek souvisíí s otázkou pořadí tabulátoru, kteeré nás zajím má okaždé, kdyžž program máá více ovládaacích prvků aa bude mít ovvládání z klávesnice. po Taabulátor je klávesa, kteráá slouží k poh hybu mezi je ednotlivými o ovládacími p prvky sloužícíími jako vstup z kllávesnice. Po okud uživatel stiskne tabulátor, přesu une se zaměřření klávesnice (n někdy se říkáá fokus) na d další ovládací prvek. Pořaadí, ve kteréém jsou jedn notlivé ovládací prrvky aktivovvány, se nazzývá pořadím tabulátorru. Pořadí určuje u vlastnost TabInd dex kaaždého ovlád dacího prvku. Prrostředí Visu ual C# přiřazuje ovládacím prvkům m hodnoty TabIndex T pod dle pořadí, ve ktterém jsme je vytvořili. P Prvky, které jsme vytvořili dříve, bud dou mít hodnoty vlastno ostí TaabIndex, jak je ukazuje prostřední sloupec s v Taab. 8. Číslovvání začíná n nulou, což je e v jazyce C# běžn né. Čísluje see v něm všechno od nuly.. TABULK KA 6.5
Změna hodnot pořadí ttabulátoru
O Objekt
pů ůvodní hodn nota nová hodnota Taablndex Tablndexx
p poleJméno
0
1
p polePříjmění í
1
3
p poleAdresa
2
5
p popisekJmén no
3
0
p popisekPřijm mění
4
2
p popisekAdre sa
5
4
OBRÁZEEK 6.6
Původní po ořadí tabuláttoru
1 111
modulu tvůrcee systému
Ab bychom vyřeešili náš půvvodní probléém s nefunkčními klávessovými zkrattkami, je tře eba ho odnoty vlasttnosti TabIn ndex všech ovládacích prvků změn nit tak, jak ukazuje praavý slo oupec v Tab. 8. Přečíslovvat můžeme ručně pomo ocí Vlastnostt nebo pomo oci vývojové ého prrostředí. Pokkud nemá zo obrazenu lišttu nástrojů Layout, zviditelníme ji, kkdyž z nabíd dky To ools zvolíte C Customize a v okně zaškrtneme políččko u nápisu u Layout. Pořřadí tabuláto oru u všech ovlád dacích prvků zobrazíme klepnutím na n ikonu Tab b Order. Klep páním na prrvé po ole nastaví počáteční p ho odnotu nula a pak v požžadovaném pořadí klepn neme na zbyylé prrvky. Dalším kliknutím naa ikonu Tab O Order čísla z Návrháře skryjeme. Po ořadí tabuláátoru je důležité pro sp právnou a přívětivou funkci programu. Mnoh hdy po otřebujeme procházet zadávací z po ole pomocí klávesy tabulátoru a n nechceme, aby a okně skákal z jednoho užživateli tabu ulátor po dialogovém d o konce naa druhý. Vžždy zkkontrolujemee a případně změníme ho odnoty TabIndex, aby prrocházení po olí tabulátore em byylo logické. Tlačítko Tlačítko po stiisknutí spoušští určitou akkci. Tlačítka známe z dialogového okkna, kdy zadáání po otvrdíme tlaččítkem „OK",, nebo zruším me tlačítkem m „Storno". OBRÁZEEK 6.7
Program Kaalkulačka
Vyytvoříme návvrh panelu kalkulačky, jak j ji vidíme e na obrázku u 6.7. Hotovvý program při stisku tlačítka „Sečti" má brát čísla zee dvou texto ových polí nalevo, sečístt je a výsled dek zaapsat do texttového pole. Teextová pole jjiž umíme po oužít, obdob bně do okna programu u umístíme z P Panelu nástro ojů tlaačítko. Nalezzneme jej po odnázvem „B Button". Tlaččítko umístím me doprostřeed pod texto ová po ole. Ovládaccí prvky můžžete uspořád dat a vyrovn nat pomocí nabídky Forrmát či pane elu náástrojů „Layo out". Neejdůležitější vlastnosti tlaačítka jsou (Name) a Texxt. Tlačítko teedy pojmenu ujte, např. jaako tlaačítkoSečti, jeho vlastnosst Text, kterýý odpovídá n nápisu na tlaččítku, nastavvíme na Sečtii. Po okud program vyzkouším me, zjistíme, že zejména nic nesečtee. To vyřeším me příště. Číísla zaarovnáváme k pravému o okraji textovýých polí. Ab bychom toho oto dosáhli, vve vlastnoste ech kaaždého texto ové ho polee nastavímee jejich vlasttnost TextA Align na Righ ht. Nejlépe to prrovede tak, žže přidržíme klávesu Ctrl a postupně na jednotlivvá pole kleneeme myší. Kd dyž bu udou všechna označena, nastavím no ovou hodnottu vlastnosti TextAlign (zee seznamu). V posledním textovém poli, do kteréého se má zapsat výsleedek, nedovo olíme uživatteli měnit zobrazeený text. Doccílíme toho n nastavením je eho vlastnossti ReadOnly na True.
Ovvládací prvkyy
Neezapomene upravit pořaadí tabuláto oru. Bude‐li uživatel opaakovaně maččkat tabulátor, měl by se foku us přesouvatt v pořadí X, YY, Z a tlačítko o Sečti a zasee zpět na prvvní číslo X
1 113
modulu tvůrcee systému
6..4 Zaškrtávací políččko Zaaškrtávací po olíčko je ovládací prvek, kkterý poskytu uje informacce typu ano/ne (víme, že se jim m říká dvojkové nebo bo ooleovské), vv programu to budou Trrue/False. Jd de o čtvereče ek, vee kterém se s zobrazí symbol zaaškrtnutí („ffajka") dop plněný popiskem. Použžití zaaškrtávacích políček si ukkážeme na přříkladu progrramu objedn návky zákazníka (Obr. 22)). OBRÁZEEK 7.8
Program Ob bjednávka
Veelkou část prráce již umím me zvládnoutt. • • •
Ve vývojovém v prostředí vytvoříme nový prrojekt a nazveme jej „ObjednavkaZbozii". V návrhářři postupně p provedeme: opisky s textyy „Zákazník",, „Jméno“, „Příjmení“ a „„Zboží". Vytvořříme čtyři po Umístíme tři prázd dná textové pole.
Ob bjekty uživattelského rozh hraní vhodněě nazveme, n např. •
popiseekZákazník, popisekJmééno, popise ekPříjmení, textJméno, textPříjme ení, popiseekZboží, texttZboží a okno oObjednávkaa.¨
Naastavíme vlastnosti Text popisků a okkna na •
Zákazn ník, Jméno, P Příjmení, Zbo oží, Objednávka
Přřidáme zaškrrtávací pole,, z Nástrojů, ze skupiny „Common Controls" C přřetáhneme dva d ob bjekty „CheckBox". Pojmenujte je např. zašknutíSStudent a zašškrknutíOsob bníOdběr. Zaaškrtávací po olíčka mají mimo vlastn nost (Name)) také důležžitou vlastno ost Text, kte erý ob bsahuje textt popisku zobrazované z ho vedle políčka. p Tuto o vlastnost nastavíme na „SStudent", a d druhé na „Ossobní odběr"". Zbývá ještě nastavit, zda po startu u programu m má býýt políčko zaaškrtnuto či ne. To udává jeho vlastn nost Checked. Hodnota True zname ená hodnota False „P Políčko je zaškrtnuto", z F „Políčkko není zašškrtnuto.“ N Nastavení té éto vlaastnosti v Ed ditoru vlastností a událosstí odráží staav zaškrtnutíí při startu p programu. Tu uto vlaastnost proggram umí zjisstit a uživatel měnit jak p potřebuje. Prrogram doko ončíme nastaavením kláveesových zkraatek a správn ného pořadí tabulátoru. Po sp puštění zkonttrolujeme čin nnost zaškrtáávacích políčček.
Ovvládací prvkyy
6..5 Shrnuttí kapitoly Užživatelské ro ozhraní proggramu se ob bvykle vytvářří pomocí ovvládacích prrvků, jako jssou teextová pole, p popisky, tlaččítka či zaškrttávací políčka. Náástroje pro vkládání jeednotlivých druhů ovládacích prvkků najdete ve vývojové ém prrostředí v Náástrojích (naabídka View > Toolbox), konkrétně v v jeho kateggorii „Common Co ontrols". Názzvy jednotlivých nástrojů ů ukazuje tab bulka 6.6. TABULK KA 6.6
Názvy nástrrojů pro ovláádací prvky
Ovládaccí prvek
Nástrojj v Nástrojích h
Textovéé pole
TextBoxx
Popisekk
Label
Tlačítko o
Button
Zaškrtávvací políčko
CheckB Box
1 115
modulu tvůrcee systému
ZAPAMATTUJTE SI • • • • • • • •
•
povinně
Edito or vlastnostíí a událostí pracuje vždy s ovládaacím prvkem m, který je v Návrrháři aktivováán (označen)). Každý ovládací prvek je třebaa ihned po vyytvoření pojm menovat nasstavením jeh ho vlastnosti (Namee). Názvvy ovládacích h prvků by měly být sm mysluplné, naznačující n d druh a funkci ovlád dacího prvku u. Z víceeslovných náázvů je nutno o vypustit mezislovní meezery. Pro čitelnost jee při tom vhodné kažždé pokračující slovo psát velkým m písmenem. m vyskytovat písme ena včetně české č diakrittiky, číslice a V náázvech se mohou podttržítka, přičem mž záleží na rozdílech me ezi velkými aa malými písm meny. Všechny ovládaccí prvky majjí důležitou vlastnost Teext, každý zz nich ji všaak interrpretuje po svém. Kláveesové zkratkky Alt+kláveesa pro akttivaci ovládacích prvků ů se zavádě ějí vložeením znaku & před písmeno, které é má v klávvesové zkrattce figurovat. Systéém Windowss toto písmeno podtrhne e. Pro srozumitelné s é ovládání programu p a pro p fungování klávesovýých zkratek je j důležžité dodržet správné pořřadí tabuláto oru. Nastavitt jej lze z naabídky View > Tab O Order.
KONTROLNÍÍ OTÁZKY
povinně
K čem mu slouží panel Vývojář ((Designer) Kde n najdeme násstroje pro vytváření ovlád dacích prvků ů programu? Co jssou to vlastno osti ovládacíího prvku. K čem mu slouží vlaastnost Text. Co jee to vlastnostt (Name) ovládacího prvkku?
Ovvládací prvkyy
S SHRNUTÍ KA PITOLY
Uživaatelské rozhrraní program mu vytváříme e pomocí vývvojového pro ostředí. V návvrhu používváme Toolbo ox (Nástroje e), kde najdeme nástro oj pro tvorb bu každého ovládaccího prvku. Každý K typ prrvku má svůjj vlastní nástroj. Nástrojje o skupin pod dle svých spo olečných vlasstností. jsou rozděleny do K nasstavení vlasstností prvku u slouží okno vývojovéého prostřeedí Vlastnossti (Prop perties). Jmén na objektů (N Name)‐ identifikátory ‐ ssmí tvořit pouze písmenaa a podtržítkko a čísllice. Nesmí o obsahovat mezery a nesm mí začínat čísslicí. STTUDIJNÍ LITEERATURA Moderní proggramování : učebnice pro M p začátečníky / Radeek Vystavěl. ‐ Ondřejovv : moderní Progrramování, 20 007 ‐ 193 s. :: il. ISBN 978‐80‐903951‐‐0‐7 (brož.) Moderní proggramování : sbírka úloh M h k učebnici pro začáteečníky / Rad dek Vystavěll. ‐ On ndřejov : mo oderní Prograamování, 200 07 ‐ 137 s. : il. ISBN 978‐8 80‐903951‐1 1‐4 (brož.) Acccelerated C# 2008 / Treey Nash ; [fo oreword by W Wes Dyer]. ‐ Berkeley : A Apress, c2007 ‐ xxxviii, 510 s. : il. ISBN 978‐1‐59059‐ 9 ‐873‐3 (brožž.)1‐59059‐8 873‐3 (chybn né)978‐1‐430 02‐ 03 338‐4 (e‐knih ha) Algoritmizace / Jana Pšenčíková. ‐ Vyd d. 1. ‐ Kralicce na Hané : Computer M Media, c2007 ‐ 12 28 s. : il. ISBN N 978‐80‐866 686‐80‐6 (v kknize neuved deno : brož.)80‐86686‐80 0‐9 (chybné) Algoritmy a datové d struktury / Břetisslav Krček, Ivan I Kolomaazník. ‐ Verzze 27.3.2007 7. ‐ Osstrava : VŠB ‐ Technická univerzita O Ostrava, [200 07?] ‐ 1 elektronický opticcký disk (CD‐‐R) : b barev. ISBN 9 978‐80‐248‐1 1306‐6 (CD‐R R) Algoritmy a šttruktúry údaajov [Wirth, 1989] / Nikklaus Wirth ; [z anglickéh ho originálu ... prreložil Pavol Fischer]. ‐ 2. vyd.. ‐ Brattislava : Alfa,, 1989 ‐ 481 s. : il. ISBN 80‐05‐00153 3‐3 (váz.) Karel Voráče ek]. ASSP.NET 2.0 : programujeme profesionálně / Bill EEvjen ... [et aal. ; překlad K ‐ V Vyd. 1. ‐ Brno o : Computer Press, 2006 6 ‐ 1224 s. : il. ISBN 80‐25 51‐1286‐1 (vváz.) ASSP.NET 4 a C# C 2010 : tvvorba dynam mických strán nek profesio onálně. Knihaa 1 / Matthe ew M MacDonald, A Adam Freeman, Mario Szpuszta ; [přřeklad Jan Pokorný]. P ‐ V Vyd. 1. ‐ Brno : Zo oner Press, 2 2011 ‐ 880 s. : il. ISBN 978 8‐80‐7413‐13 31‐8 (váz. ASSP.NET 4 a C# C 2010 : tvvorba dynam mických strán nek profesio onálně. Knihaa 2 / Matthe ew M MacDonald, A Adam Freeman, Mario Szpuszta ; [přřeklad Jan Pokorný]. P ‐ V Vyd. 1. ‐ Brno : Zo oner Press, 2 2011 ‐ 700 s. : il. ISBN 978 8‐80‐7413‐14 45‐5 (váz
1 117
modulu tvůrcee systému
7 Událo osti Ú ÚVOD Ovvládacích prvvků je k disp pozici mnoheem více, než jsme zatím poznali. V daalším textu sse bu udeme věno ovat důkladn nějšímu průzzkumu toho o, co lze s těěmito prvkyy dělat, jak je do onutit k nějaké smyslupln né činnosti, ttedy jak se d do programů ů přidávají akkce. Napíšem me sm mysluplný prrvní program m. V textovém m editoru si otevřeme zdrojové textty programu a bu udeme do nich zapisovatt příkazy příslušného programovacího o jazyka. CÍÍLE KAPITOLY Y Po o prostudová ání této kapiitoly a vypra acování úkollů budete UM MĚT: Napsaat jednoduch hý kód prograamu. Odstraanit chybu v programu Spojit tento kód s událostí, kteerá určuje, co o bude ovlád dací prvek děělat. Po o prostudová ání této kapiitoly a vypra acování úkollů ZÍSKÁTE: Přehleed základních h událostí. Přehleed o knihovn nách Po o prostudová ání této kapiitoly a vypra acování úkollů BUDETE SC CHOPNI: Napsaat jednoduch hý příkaz. Zavolaat ve svém programu pod dprogram. Vyvolaat dialogové okno s hlášeením.
Ud dálosti
7..1 Událossti Běěh programů ů s grafickým m uživatelskýým rozhraním je řízen událostmi. u N Něco vykonáává jen tehdy, když vznikne nějaká událo ost. Událosttí může být rozličná užiivatelská akcce, kleepnutí či pokklepání myší, přesunutí m myši, stisknutí klávesy či jjejí uvolněníí… Ud dálost může vyvolat i jin ný program, který chce ss tím naším komunikovat. Může to b být čaasovač, kterýý v pravidelnýých časových h intervalech h generuje im mpulsy. Zdrojem událostíí je ale také progrram sám o sobě. s Napříkklad událost stisku určitéé klávesové zkratky vyvo olá reeakci příslušného tlačítkka okna, které se stiskkne. Na udáálost tohoto o stisku mů ůže reeagovat dialo ogové okno aa zavře se… M Může vznikno out celá řadaa navazujícícch událostí. V předchozí kaapitole jsmee si ukázali ovvládacím prvvkem tlačítko o a zdůraznili, že obvykle e v V nový n projekt „Udalosti a tlacitkka" prrogramu spouští nějakkou akci. Vytvoříme s u uživatelským m rozhraním jjak je ukazuje obr. 7.1. OBRÁZEEK 7.1
Program Ud dálosti a tlaččítka
Vyypíšeme si po otřebné krokky: • • • •
Vlastn nost (Name) okna prograamu nastavitt na oknoPro ogramu a vlaastnost Text na Události a tlačítka. Nástro ojem „Button n" přetáhnout do okna p programu dvě tlačítka. U tlačítek t naastavit vlaastnost (N Name) na tlačítkoV Vypsat, ressp. tlačítkkoUkončitPro ogram. U tlačíítek nastavitt vlastnost Teext na &Vypssat zprávu, reesp. &Ukonččit program.
V panelu Události klepnem me na ikonu u s Bleskem,, tím jej přeepneme do rrežimu editaace ud dálostí. Klepnutím na tlaačítko „Ukon nčit program m" jej vybereeme. V paneelu Události se zo obrazí všechny události,, které moh hou být spojjeny s tlačítkkem. Je jich h přehršel, my m bu udeme využívat ty nejdůležitější. Dobré D je znáát ty základn ní, jiné časeem odhadnete, zb bytek dohled dáte v dokum mentaci.
7..2 Obsluh ha událosttí Needůležitější událostí tlaččítka je událo ost Click. Taa je vyvolánaa pokaždé, kkdyž je tlačíttko stisknuto. Chcceme‐li, aby p program na vznik této ud dálosti přiměěřeně reagovval, musíte ss ní
1 119
modulu tvůrcee systému
sp pojit obslužn ný podproggram. Obslu užný podpro ogram je reelativně sam mostatná čáást prrogramu, ve které je pop psána činnostt, jako reakce e na vznik ud dálosti. TABULK KA 7.1
Ikony pro vvolbu mezi ed ditací vlastností a událosstí
Pan nel Vlastnostti ‐ zobrazit u události
Pan nel Vlastnostti ‐ zobrazit vvlastností
Vee Vlastnostech poklepem me na přísluššnou událostt a vývojovéé prostředí připojí obslužžný po odprogram k dané k událo osti a současně otevře zdrojový kód Form1.cs a vloží do něj n prrázdný obslu užný podproggram. Pokud d je vše v pořřádku, měli b bychom mít v nové záložžce ottevřený zdrojový kód takk, jak vidíme na obrázku ého Vee zdrojovém textu Form1. cs existovvala většina řádků ještě před vloženíím obslužné po odprogramu a byly přeevzaty ze šaablony „Win ndows Application" pom mocí níž jsm me prrogram vytvo ořili. Nyní no ově přibyla ko ostra obslužn ného podpro ogramu. VÝPIS 7.1
Editor po vlložení událo osti Click
Zde bliiká kurzor
Po odívejme se spolu na to o, jak nově vložený v kód vypadá. Prvvní řádek po odprogramu je jeho hlavička,, která obsaahuje jméno o podprograamu, konkréétně tlačítko oUkončit_Click. Jm méno vytvořřilo vývojovvé prostředí automatickky tak, že pomocí znaaku podtržíttka přřipojilo jméno události kee jménu objeektu, s níž se událost vážee. Zaa hlavičkou p podprogramu u následuje vvždy jeho těllo, do kteréh ho se zapisují příkazy, kte eré see mají vykonaat, co má pro ogram udělat po vzniku ttéto událostii. Tělo začínáá řádkem levvou
Ud dálosti
slo oženou závo orkou { a kon nčí řádkem ss pravou složženou závorkkou }. Na míístě, kde se m má zaačít se zápiseem příkazů, b bliká kurzor. Do tohoto m místa se kdykoli později můžeme vráátit op pětovným po oklepáním naa příslušnou událost, příp padně si to m místo zapamatujeme. Přřesně na toto o místo zapiššme: Close() odprogram o obsluhy událo osti Click ted dy nyní vypad dá tak, jak ukkazuje Výpis 7.2 Po VÝPIS 7.2
Funkční obssluha událossti Click
pri ivate void tlačítkoUkončit_Cli ick(object sender, Ev ventArgs e) )
{ Close(); }
bsluha události Click tllačítka „Uko ončit prograam" je nyní plně funkčční a prograam Ob můžeme spusttit a odzkouššet. Ověřte, že horní tlaččítko ještě niic nedělá, kleepnutí na do olní tlaačítko způsobí ukončení programu.
7..3 Chyba v program mu Po okud se pro ogram nespu ustí a vývojo ové prostřed dí namísto toho něco vvypíše, pak to zn namená, že vv programu jje nějaká chyba. Bud' nááš příkaz nezzapsali přesn ně tak, jak byylo uvvedeno, nebo jsme jej zaapsali na špatné místo. P Pokud se nášš program sp pustil, úmysllně v něm udělám me chybu, nap příklad vymaažeme středn ník za Close(). oto programu s chybou zzobrazí chybo ové hlášení o obr. 7.2. Přři pokusu o spuštění toho Prrogram se neepodařilo seestavit. Proto ože nechcem me spustit prrogram ve fo ormě, jak náám fu ungoval, odpo ovíme vždy ttlačítkem „No". OBRÁZEEK 7.2
Reakce vývojového pro ostředí na ch hybu v prograamu
Paak vývojové p prostředí bude mít vzhled jako to na Obr. 25. Ve spodní části okna se obje eví paanel Error list, ve kterém jsou hláášeny chybyy vzniklé přři překladu a sestavováání prrogramu. Naa Obr. 25 je v hlášen ní pouze jed dna chyba, mnohdy jicch je několik. Po ostupujeme vždy tak, že ž se vždy se snažíme e odstranit první chyb bu, ta je vžždy neejdůležitější chyba. První chyba v programu vždycky reálně existujje, zatímco ty náásledující mo ohly vzniknout přičiněním m té prve ch hyby. Tyto tzvv. zavlečenéé chyby vznikkají
1 121
modulu tvůrcee systému
teehdy, když předchozí p skkutečná chyyba zmate vývojové v pro ostředí nato olik, že zbyttek prrogramu chápe špatně. P Po odstraněn ní skutečných h chyb zavleččené chyby zzmizí. OBRÁZEEK 7.3
Vzhled vývo ojového prostředí po nalezení chybyy
zvýýraznění
červená vlnovka
7..4 Další u události Bu udeme chtít zobrazit udáálost, že se kkurzor myši zzastavil nad tlačítkem. Tato skutečno ost akktivuje událo ost MouseH Hover. V naššem programu budemee chtít na zzastavení myši reeagovat zobrrazením zprrávy „Myš jee nad tlačíttkem. Známým způsobeem s tlačítke em sp pojíme událo ost MouseHo over (poklep páním na tuto událost). Do místa, kkde po vlože ení ob bslužného po odprogramu bliká kurzorr, přesně opíššeme: M MessageBox.S Show("Myš sse zastavila n nad tlačítkem m"); Po odprogram b by měl nyní vvypadat tak, jjak ukazuje V Výpis 3 VÝPIS 7.3
Funkční obssluha událossti MouseHo over
pri ivate void t tlačítka_Mo ouseHover(o object sende er, EventAr rgs e) { MessageBox x.Show("Myš š se zastav vila nad tla ačítkem");
Ud dálosti
}
okud je příkkaz v pořádkku, zobrazí se s jeho částt mezi uvozo ovkami červvené. Vývojo ové Po prrostředí taktto barevně rozlišuje přřímo uvedené textové řetězce neboli řetězco ové litteráty, tzn. kusy textu, které nejso ou ani jmén nem, ani klííčovým sloveem jazyka C#. C Baarevným rozzlišením různ ných prvků zdrojového kódu zlepšu uje Visual C C# přehledno ost prrogramu a orrientaci v něm. Svvětle modrým m odstínem se obarvilo i slovo MessaageBox. Mod dře jsou obvyykle zobraze eny klííčová slova, ttedy příkazy jazyka. Prrogram spusťťte a ověřte, že při zastavvení myši ihn ned vyskočí o okno se zpráávou. Ukonče ení prrogramu je trochu pro oblém. Uko ončíme jej příkazem Debug D ‐> Stop Debuggiing (p případně klávvesovou zkraatkou Shift F5 5.
7..5 Knihovvny podpro ogramů Přříkaz Close zavře okno p programu a u ukončí progrram. Příkaz M MessageBox. Show zobrazí užživateli okno o se zprávou a čeká, až h ho uživatel zavře. Do té doby nedovvolí se zbytke em prrogramu pracovat. Jeedná se o knihovní k přeedem připraavené podprrogramy. Kaaždá vývojářřská platform ma ob bsahuje takéé knihovny podprogram mů. Jsou to funkce, f kterré se budou u hodit mno oha lid dem, a ty jso ou poskytnutty ve formě podprogram mů. Takovéto o podprogramy se sdružžují do o větších cellků, tzv. knih hoven. Kniho ovny mají v dnešní doběě většinou fformu soubo orů s p příponou. Ab by programáátor mohl některou z přip pravených kn nihoven ve svém program mu po oužít, musí se s ze svého projektu na ni odkázat. Ve Visual C# k tomu slo ouží volba Add A Reeference z naabídky Project.
7..6 Voláníí podprogrramů Po okud chcemee nějakou přředpřipraven nou činnost vv programu vykonat, mu usíme přísluššný po odprogram zavolat. z Voláání podprogrramu se provede tak, žee uvedete jeho jméno a za jm ménem v kulaatých závorkkách předátee parametry. Parametry jjsou upřesňu ující informacce, jejjich prostřed dnictvím říkááte, jak přesn ně se má pod dprogram vykonat. V prvním příkladu se v příkkazu Close(); odprogram jmenoval Clo ose. Za jeho jjménem jsou u prázdné ku ulaté závorkyy, protože jsm me po po odprogramu nepředávali žádné paraametry. Závvorky je při vvolání podprrogramu nuttno uvvést vždy. Vee druhém přííkladu se v p příkazu M MessageBox.S Show("Myš jee nad tlačítkem"); po odprogram jmenoval j M MessageBox. edával se mu m jeden paarametr ‐ te ext Show a pře zp právy, která se má v pan nelu zobrazitt. Zatímco podprogram p Close je jed dnoúčelový pro p zaavření okna programu, je j podprogrram pro zob brazení zprávvy obecný. Může zobraazit jakoukoli zpráávu, kterou mu m předáním m parametru u konkretizu ujeme ‐ říkátte mu, „zobrraz tu uto zprávu". V V našem příkkladě jde o teext „Myš je nad tlačítkem m".
1 123
modulu tvůrcee systému
Řeetězec znaků ů Myš je nad d tlačítkem je uzavřen do d uvozovekk. Podle pravvidel jazyka C# jde o přímo uvedený u texttový řetězecc textový lite erál. Uzavření řetězcovéého literálu do ovacího jazykka a je bezpo odmínečně n nutné. Bez n něj by ani neššel uvvozovek je věěc programo seestavit. Kaaždý příkaz je j ukončen středníkem. s Jedno ze syyntaktických pravidel jazyyka C# ‐ kažždý přříkaz zapsanýý v programo ovacím jazyce C# musí býýt ukončen středníkem.
7..7 Bližší u určování Zaastavme se ještě j na chvvíli u jména MessageBoxx. Show. Je komplikovan k ný proto, že se jm menuje Show w a to MessageBox je jaakési „příjme ení", odborn ně se mu říkká bližší urče ení neebo též kvaliffikace. Bližší určení see používá ze stejného důvodu, jako se používají p příjmení u lid dí. Aniček mů ůže býýt mnoho, proto p mnohd dy musíme říci, že chce eme mluvit např. Aničkkou Kvítkovo ou. Po odprogramů Show můžee být více a my nyní chcceme použít právě MessageBox. Sho ow. Jako Kvítková označuje rodinu, r skup pinu příbuzn ných lidí, označuje MesssageBox tříd du, skkupinu příbuzzných podprrogramů – metod třídy. Plně určené jm méno podprogramu se ssestaví uvede ením jména třídy, za kteerým je tečkaa a zaa ní vlastní jméno podprrogramu. Záápis Message eBox.Show tedy t počítač chápe tak, že ch hcete volat podprogram m (metodu) Show třídyy MessageBo ox. Je možn ný ještě jed den zp působ bližšíh ho určování,, a to pomo ocí jména objektu. Poku ud se nějaký podprograam vzztahuje ke ko onkrétnímu objektu, voláme jej takk, že uvedem me jméno ob bjektu, tečkaa a jm méno podpro ogramu. Pokkud je dotyččným objekttem okno programu, neemusí se bliižší urrčování provádět. To je p případ voláníí metody Clo ose, které see uvádí jak beez jména tříd dy, tak bez jména objektu.
7..8 Hlavníí událost objektu Ho orní tlačítko s nápisem „„Zobrazit zprrávu" by mělo po kliknuttí zobrazit zp právu „Vítá vvás prrogram s tlaččítky". Sttisknutí tlačíítka vyvolávvá událost Click. Mohli bychom postupovat p stejně jako u přředchozího tlačítka, t ve Vlastnostech V h zobrazit ud dálosti horního tlačítka a poklepat na ud dálost Click. Událost Clickk je ale tzv. h hlavní událosstí tlačítka, m můžete obslu užnou metodu2 do o programu vložit i jinakk. V Návrhářři poklepáme e na samotn né tlačítko! Do zdrojové ého kó ódu se vloží p prázdná obsllužná metoda. Na místo, kde bliká ku urzor, vložíme příkaz M MessageBox.S Show("Zdravví vás program m s tlačítky“); VÝPIS 7.4
Funkční obssluha tlačítkka „Vypsat zp právu“, volán ní metody MessageBox x
pri ivate void t tlačítkoVyp psat_Click( (object send der, EventA Args e) { MessageBox x.Show("Vít tá vás prog gram s tlačí ítky"); }
Ud dálosti
Kaaždý objekt má nějakou hlavní událo ost. Hlavní události nám u m známých objektů shrnu uje tabulka 7.2. TABULK KA 7.2
Hlavní události některýých objektů
Objekt
Hlavní událostt
Kdy událost vznikká
Okno pro ogramu
Lo oad
Těsn ně před proggramu.
Textové p pole
TeextChanged
Změní se text zad daný uživateelem.
Popisek
Cllick
Uživaatel na po opisek klep pne nebo stiskkne příslušno ou klávesovou zkratku.
Tlačítko
Cllick
Uživaatel stiskne ttlačítko.
Zaškrtávaací pole
Ch heckedChanged
Změní se stav zašškrtnutí.
zobrazením m
okna
okud se stan ne, že na objekt v Design neru omylem m poklepemee a vývojové prostředí vloží Po ob bslužnou meetodu, aniž jssme to zamýššlel, pak je asi nejjednodušším řešeníím nedělat n nic. Ro ozhodně nesmíme kód prázdné metody m smazzat! V programu by zů ůstávala vazzba ud dálosti na obslužnou o m metodu. Jesttliže by me etoda z programu zmizzela, vazba by ukkazovala „do o prázdna" a program by se nesestaviil.
7..9 Společčná obsluh ha více udáálostí Mnohdy se sttane, že chcceme reagovvat stejným způsobem na několik událostí. Je to M možné vyřešitt tak, že tytééž příkazy zko opírujete do o obslužných rutin všech událostí. Je to d K pravidlům dobrého programován p ní patří „nic jednoduché, ale ne dobré. neeprogramujeeme dvakrátt či dokoncee vícekrát". Důvodem je j snadnost a bezpečno ost úd držby prograamu. Pokud tutéž „věc" naprogramujete opako ovaně na několika různýých místech progrramu a v bud doucnosti vzznikne požad davek zde něěco změnit, m museli bycho om vyyhledat všecchna místa a jednotněě je změnit.. Dříve či později p se sstane, že buď neezměníme všše, nebo někkteré místo změníte jinakk. Po okud bude každá k činnosst naprogram movaná jen na n jednom místě, m stačí zzměnu prové ést jedenkrát a au utomaticky d dojde ke stejjné změně na všech místtech, kde se používá, navíc see také zlepšuje logická přehlednost programu. Bu udeme chtít,, aby zpráva „Myš je nad tlačítkem"" vyskakovalaa při zastaveení nad oběm ma tlaačítky.
1 125
modulu tvůrcee systému
Vyybereme ho orní tlačítko o, v Událosstech najdem me událost MouseHovver, ale míssto po oklepání ved dle jména ud dálosti klepn neme, stiskn neme levé tlačítko myši,, a v seznam mu, ktterý se objevví po dalším kklepnutí, vyb berte tlačítko o Ukončit_Mo ouseHover.
7..10 Přejme enování ud dálosti Nyyní se ale ob bslužná meto oda jmenuje tlačítkoUkončit_MouseH Hover, přestto že obsluhu uje ud dálost MousseHover obo ou tlačítek. Zmiňovali Z jsm me se o důležitosti vho odných jmen n v prrogramováníí. Měli bychom tedy obslužžnou metodu M u přejmenovvat na tlačíttka_MouseHover. Nelze to prrovést takk, že ve v zdrojo ovém kód du najdem me hlaviččku meto ody tlaačítkoUkončit_MouseHo over a změnííme její jméno! Metodaa by se sice přejmenovaala, ale odkazy naa ni by zůstaly beze změěn. Opět bycchom měli vazbu události směřující do prrázdna. Jakáákoli přejmenování v prrogramu pro ovádíme zássadně nástro oji vývojové ého prrostředí. Na jjméno metody, kterou chceme přejm menovat, klepneme ve zd drojovém kó ódu prravým tlačítkkem a z konttextové nabíídky zvolíme e Refactor a následně Reename. Teprrve v novém okněě zadáme v poli „New nam me" nové jm méno obslužn né metody
Ud dálosti
OBRÁZEEK 7.4
Vzhled vývo ojového pro přejmenováání metody
127
modulu tvůrcee systému
ZAPAMATTUJTE SI
Běh program B mu s grafickým m uživatelskkým rozhraníím je řízen událostmi, jako je klepnutí m myší, stisk klá ávesy či vnitřřní události p programu. hž jedna, tzvv. Každý objektt uživatelskéého rozhraníí definuje ce K elou řadu ud dálostí, z nich h hlavní událo ost objektu, svým významem výrazně převyšu uje všechny ostatní. Prro o ovládací prvek tlačítko je j hlavní ud dálostí událo ost Click, kteerá vzniká, když uživate el t tlačítko stiskn ne. Aby program A m mohl na událost reaggovat, je tře eba k ní připojit obslužžnou metod du (obslužný podprogram). Vazba se vyttváří pomocíí Editoru vlasstností a udáálostí, jenž lzze ikonou s bleeskem přepnout do režimu editacce událostí. Obsluhu hlavní událossti ytvořit také poklepáním na příslušnýý objekt v Designeru. o objektu lze v Obslužná meetoda je ve zdrojovém kó O ódu tvořena hlavičkou a tělem. Hlaviička obsahujje p především jm méno metodyy, tělo zase p příkazy, které é se v metod dě mají provéést. Jako příkazy se dají mj. zzapsat voláníí předpřipravvených podp programů, jaako jsou Closse p zavření okna pro o programu nebo MessageBox.SShow pro zobrazení oknaa se zprávou u. P Podprogramy y se volají uvedením jejich jménaa, za kterým m v závorkáách následujje metrů. s seznam para Při nedodržeení správného zápisu jmen nebo syntaktickýcch pravidel jazyka C# se P s p program nes omocí seznam mu chyb (Vie ew > Error Lisst) je třeba jeej opravit. estaví a s po Jakákoli přejmenování v programu, n např. přejme enování mettod, prováděějte tak, že n na jméno, kteréé chcete zm měnit, klepn nete pravým m tlačítkem a vyberetee Refactor a n následně Ren name. KONTROLNÍÍ OTÁZKY
povinně
Co řídí program ss grafickým rrozhraním. Co jee to událost. Co jee to obslužnáá metoda a jaak ji vytvářím me. Co obsahuje obsllužná metod da. Co jee to příkaz prrogramu. Jak vvzniká syntakktická chyba a jaký je posstup její opraavy.
Ud dálosti
S SHRNUTÍ KA PITOLY
Běh p programu s ggrafickým užživatelským rrozhraním je řízen událosstmi. Každý objekt uživvatelského ro ozhraní defin nuje celou řaadu událostí,, jedna z nich h, nejdů ůležitější, je hlavní událo ost objektu. Aby program mohl m na událost reagovaat, je třeba k ní připojit obslužno ou odu (obslužn ný podprograam). meto Obslužné metodyy tvoří příkazzy jazyka. Při nedodržení n pravidel jazzyka se pro ogram nesesstaví, obsah huje pak tzvv. syntaaktické chybyy. Přejm menování metod m v proggramu je možno učinit jen nástrojji vývojovéh ho prosttředí. STTUDIJNÍ LITEERATURA Moderní proggramování : učebnice pro M p začátečníky / Radeek Vystavěl. ‐ Ondřejovv : ramování, 20 M Moderní prog 007 ‐ 193 s. :: il. ISBN 978 8‐80‐903951‐‐0‐7 (brož.) Moderní proggramování : sbírka úloh M h k učebnici pro začáteečníky / Rad dek Vystavěll. ‐ On ndřejov : Mo oderní prograamování, 2007 ‐ 137 s. : il. ISBN 978‐80‐903951‐1 1‐4 (brož.) Acccelerated C# 2008 / Treey Nash ; [fo oreword by W Wes Dyer]. ‐ Berkeley : A Apress, c2007 ‐ xxxviii, 510 s. : il. ISBN 978‐1‐59059‐ 9 ‐873‐3 (brožž.)1‐59059‐8 873‐3 (chybn né)978‐1‐430 02‐ 03 338‐4 (e‐knih ha) Algoritmizace / Jana Pšenčíková. ‐ Vyd d. 1.. ‐ Kralicce na Hané : Computer M Media, c2007 ‐ 28 s. : il. ISBN N 978‐80‐866 686‐80‐6 (v kknize neuved deno : brož.)80‐86686‐80 0‐9 (chybné) 12 Algoritmy a datové d struktury / Břetisslav Krček, Ivan I Kolomaazník. ‐ Verzze 27.3.2007 7. ‐ Osstrava : VŠB ‐ Technická univerzita O Ostrava, [200 07?] ‐ 1 elektronický opticcký disk (CD‐‐R) : b barev. ISBN 9 978‐80‐248‐1 1306‐6 (CD‐R R) Algoritmy a šttruktúry údaajov [Wirth, 1989] / Nikklaus Wirth ; [z anglickéh ho originálu ... 3‐3 prreložil Pavol Fischer]. ‐ 2. vyd.. ‐ Brattislava : Alfa,, 1989 ‐ 481 s. : il. ISBN 80‐05‐00153 (váz.) Karel Voráče ek]. ASSP.NET 2.0 : programujeme profesionálně / Bill EEvjen ... [et aal. ; překlad K ‐ V Vyd. 1.. ‐ Brn no : Computeer Press, 200 06 ‐ 1224 s. : il. ISBN 80‐251‐1286‐1 (vváz.) ASSP.NET 4 a C# C 2010 : tvvorba dynam mických strán nek profesio onálně. Knihaa 1 / Matthe ew M MacDonald, A Adam Freeman, Mario Szzpuszta ; [přřeklad Jan Po okorný]. ‐ Vyyd. 1.. ‐ Brno : Zo oner Press, 2 2011 ‐ 880 s. : il. ISBN 978 8‐80‐7413‐13 31‐8 (váz. ASSP.NET 4 a C# C 2010 : tvvorba dynam mických strán nek profesio onálně. Knihaa 2 / Matthe ew M MacDonald, A Adam Freeman, Mario Szzpuszta ; [přřeklad Jan Po okorný]. ‐ Vyyd. 1.. ‐ Brno : Zo oner Press, 2 2011 ‐ 700 s. : il. ISBN 978 8‐80‐7413‐14 45‐5 (váz
1 129
modulu tvůrcee systému
8 Přiřazzovací p příkaz Ú ÚVOD V této kapitole se zaměříme na přiřaazovací příkaaz. Ten umo ožňuje přepiisovat data z jednoho místaa paměti (p proměnné) na n jiné místo o (do jiné proměnné). p Jedině tímto o zp působem jsm me schopni docílit, aby nááš program byl schopen cokoli spočíítat, reagovaat naa naše požad davky. CÍÍLE KAPITOLY Y Po o prostudová ání této kapiitoly a vypra acování úkollů budete UM MĚT: Správn ně použít přiiřazovací příkkaz. Použítt více příkazů ů v jedné meetodě. Po o prostudová ání této kapiitoly a vypra acování úkollů ZÍSKÁTE: Poznatky o sekven nčním zpraco ování programu. Po o prostudová ání této kapiitoly a vypra acování úkollů BUDETE SC CHOPNI: Napsaat metody, ktteré obsahujjí sekvenci přříkazů. Provésst několikan násobné přřiřazení tak,, aby se žádná ž informace nikam m neztraatila. Provésst základní kontrolu logiccké (sémantiické) správno osti program mu‐
Přřiřazovací přííkaz
8..1 Kopíro ování texto ového pole e Přřiřazovacím p příkaz si ukáážeme na ko opírování obssahu textovýých polí. Návvrh rozhraníí je zo obrazeno na Obr. 27. Obsahuje O dvěě textová pole s popiskky a tlačítko o. Spodní po ole neepůjdeš edito ovat, bude u určeno „jen kke čtení". Při stisku tlačítka se text zaadaný v horn ním po oli přiřadí (přřepíše) do sp podního polee. OBRÁZEEK 8.1
Návrh proggramu Kopíro ování
Vyytvořte nový projekt „Přepis" „ a uživatelské u rozhraní naavrhneme o obdobně tom mu z o obrázku. Ho orní textovéé pole pojm menujte poleVzor, spodní poleKop pie a tlačíttko tlaačítkoPřepiš.. Ko opírování see má spustitt po stisku tlačítka, mu usíme proto vložit obslu užnou meto odu ud dálosti tlačítka Click. Připomeňme, že ž stačí na tlačítko t poklepat v Návrrháři. Na mísstě blikajícího kurzoru napíšem me oleKopie.Texxt = poleVzorr.Text; po Ceelou obslužn nou metodu u pak zachyycuje Výpis 8.1. Program spusťte a ověřte je eho fu unkčnost. VÝPIS 8.1
Obsluha ud dálosti Click ttlačítka “Kop píruj“
pri ivate void t tlačítkoKop píruj_Click k(object sen nder, Event tArgs e) { poleKopie. .Text = pol leVěta.Text t; }
1 131
modulu tvůrcee systému
8..2 Přiřazo ovací příkaaz Přříkaz, který jsme napsali, je. přiřazovvací příkaz, který k přiřadíí hodnotu výýrazu na praavé straně od rovn nítka na místto proměnnéé na straně le evé. Obecně jej zapíšemee takto kam = co; otu vlastnostti Text obje ektu poleVzo or vlastnosti Text objekktu Nááš příkaz přřiřadí hodno po oleKopie. Vlaastnost Textt reprezentu uje text zobrrazený v texxtovém poli, po provede ení přříkazu bude poleKopie.Teext obsahovvat týž text jaako poleVzor. Pokud uživatel násled dně ob bsah poleVzo or zedituje, p pak se již neb budou zobrazované textyy shodovat. Budou si rovvny ažž při dalším sstisku tlačítkaa Taab. 12 Porovnání obecného zápisu s p použitým přííkazem TABULK KA 8.1
Název tabulky
Obecněě
V zap psaném příkaazu
Jak to přeččte počítač
Kam
poleK Kopie.Text
Do vlastn nosti Text objektu poleKopie ...
=
=
... přiřaď ....
Co
poleV Vzor.Text
... hodno otu vlastnossti Text objektu po oleVzor.
bjektu. Píšem me „jméno o objektu, tečka, V příkazu se provádí bližší určováni jménem ob méno metod dy (tedy činn nosti daného objektu). Vlastnost Text T mají vššechny objekkty jm užživatelského rozhraní, je j tedy nuttné vždy urrčit, kterého o objektu vvlastnost. Te ext po oužijeme. Zápis Z poleVzzor.Text znaamená vlastnost Text objektu po oleVzor. Zápis po oleKopie .Texxt odkazuje n na vlastnost Text objektu u poleKopie.
8..3 Další p přiřazováníí Nyyní si ukážem me, že lze přřiřadit nejen n hodnotu z jjiného objekktu, ale i hod dnotu, která je přřímo uveden ná ve zdrojo ovém textu programu p Následující prrogram budee umět zapssat věětu do texto ového pole, povolit a zaakázat jeho editaci, změěnit barvu ttextu v poli na zeelenou.
Přřiřazovací přííkaz
OBRÁZEEK 8.2
Návrh proggramu testujíícího přiřazo ovací příkaz
Prrogram vytvo oříme pole n návrhu z obráázku 8.2. Texxtové pole umožní uživatteli zadat slo ovo či větu a budee ovládáno jeednotlivými ttlačítky: • • • • •
Tlačítkko „Zdravím svět" vloží d do textového o pole tuto věětu. Tlačítkko „Vymaž" ssmaže obsah h textového p pole. Tlačítkko „Text zeleeně" obarví ttext v poli na zeleno. Tlačítkko „Zablokuj" zakáže edittaci a přenoss textu do schránky. Tlačítkko „Odblokujj" povolí edittaci.
odle obrázku u 8.2. Vyytvoříme novvý projekt po Po ojmenování objektů: • •
Programu, oknoP popissekVěta, texxtVěta, tlaččítkoZdravím m, tlačítkoVyymaž, tlačíttkoTextZelen ně, tlačítkkoZablokuj aa tlačítkoOdb blokuj.
U všech tlačíteek půjde o ob bsluhu hlavn ní události Click. ostupujeme následovně: Po po oklepeme na tlačítko o „Zdravím m svět" a a do vložžené obslu užné meto ody tlaačítkoZdravím m_Click napííšeme textVěěta.Text = "Zdravím svět""; Tím se přiřadí přímo uvedeený řetězec d do vlastnosti Text textovvého pole. oklepejte naa tlačítko „V Vymaž" a do d vložené obslužné o meetody tlačítkoVymaž_Click Po vlo ožíme textVěěta.Text = "";; neebo příkaz ull; textVěěta.Text = nu
1 133
modulu tvůrcee systému
Prrvní variantta pracuje s tzv. práázdným řettězcem zap psaným dvo ojicí uvozovvek beezprostředněě za sebou bez jakékoli m mezery mezi.. Ve druhé vaariantě představuje klíčo ové slo ovo null tzv. nedefinovaanou hodno otu. Používá se i jinde než n jen při p práci s řetězzci. Prrázdný řetězeec a nedefinovaná hodno ota není obe ecně jedno a totéž. Po oklepeme na tlačítko o „Text zeleně" a do vložžené obslu užné meto ody tlaačítkoTextZeeleně_Click vložíme příkaz textVěěta.ForeColo or = Color.Greeen; Prracujeme teď ď s jinou vlasstností objekktu textVětaa, s vlastností ForeColor u udávající barrvu zo obrazeného textu. Konkrétní hodno ota barvy určí slovem Color, C za kteerým následu uje teečka a anglickký název barvy. V okamžiku, kdy za sloveem Color napíšeme teččku, vývojovvé prostředí nám nabíd dne vššechny použiitelné názvy barev. Jde o o našeptáván ní ze strany vvývojového p prostředí, slo ovo zaa vás dokončí případně po klepnuttí na varianttu či stisku klávesy Entter, Ctrl+Enter, přřípadně Tab. Po oklepejme na tlačítko „ZZablokuj" a d do vložené o obslužné mettody tlačítko oZablokuj_Click vlo ožte příkaz textVěěta.Enabled == false; Teento příkaz pracuje s vlaastností Enaabled textového pole. Jee‐li nastaven na na hodno otu true, pole normálně praccuje, je‐li nastavená na hodnotu fallse, pole je zablokované é a neereaguje. Po oklepejme naa tlačítko „O Odblokuj" a d do vložené obslužné mettody tlačítkoO Odblokuj_Click vlo ožme příkaz teextVěta.Enab bled = true; V Vysvětlení je obdobné jakko u tlačítka „Zablokuj".
Přřiřazovací přííkaz
VÝPIS 8.2
Výpis kódu přiřazení
public part p tial class o oknoProgram mu : Form { pub blic oknoPro ogramu() { Initialize eComponent( (); } pri ivate void t tlačítkoZdr ravím_Click k(object sen nder, Event tArgs e) { textVěta.T Text = "Zdr ravím svět" "; } pri ivate void t tlačítkoVym maž_Click(o object sende er, EventAr rgs e) { textVěta.T Text = null l; } pri ivate void t tlačítkoTex xtZeleně_Cl lick(object sender, Ev ventArgs e) ) { textVěta.F ForeColor = = Color.Gre een; } pri ivate void t tlačítkoZab blokuj_Clic ck(object se ender, Even ntArgs e) { textVěta.E Enabled = f false; } pri ivate void t tlačítkoOdb blokuj_Clic ck(object se ender, Even ntArgs e) { textVěta.E Enabled = t true; } pri ivate void o oknoProgram mu_Load(obj ject sender, , EventArgs s e) { } }
8..4 Více přříkazů v m metodě Do oplníme někkteré funkce našeho programu. Bude eme povolovvat a blokovvat jen ta po ole, ktterá má smyysl používatt. Pokud například texto ové pole lzee editovat, nemá význaam mačkat tlačítkko „Odblokuj". Podobně m můžeme uvaažovat o funkkci tlačítka „ZZablokuj". V obsluze tlačíítka „Odblokkuj: • • •
odblokujeme texto ové pole, vyřadííme (zabloku ujeme) tlačítkko „Odbloku uj" povolííme tlačítko „Zablokuj".
bsluha tlačítka „Zablokujj" bude analo ogická: Ob
1 135
modulu tvůrcee systému
• • •
zablokkujeme texto ové pole, vyřadííme tlačítko „Zablokuj" a povo olíme tlačítko o „Odblokuj"".
Ob bslužné mettody obou tlačítek ukaazuje Výpis 8.2. Upravtte samostatně program m a vyyzkoušejte jeej. VÝPIS 8.3
Výpis kódu více příkazů ů v metodě
namespace R n Různá_přiřaz zení { { public partial cla ass oknoPro ogramu : Fo orm { pub blic oknoPro ogramu() { Initialize eComponent( (); } pri ivate void t tlačítkoVym maž_Click(o object sende er, EventAr rgs e) { textVěta.T Text = null l; } pri ivate void t tlačítkoTex xtZeleně_Cl lick(object sender, Ev ventArgs e) ) { textVěta.F ForeColor = = Color.Gre een; } pri ivate void t tlačítkoZab blokuj_Clic ck(object se ender, Even ntArgs e) { textVěta.E Enabled = f false; tlačítkoZa ablokuj.Ena abled = fal lse; tlačítkoOd dblokuj.Ena abled = tru ue; } pri ivate void t tlačítkoOdb blokuj_Clic ck(object se ender, Even ntArgs e) { textVěta.E Enabled = t true; tlačítkoOd dblokuj.Ena abled = fal lse; tlačítkoZa ablokuj.Ena abled = tru ue; } pri ivate void o oknoProgram mu_Load(obj ject sender, , EventArgs s e) { tlačítkoOd dblokuj.Ena abled = fal lse; } pri ivate void o oknoProgram mu_Load_1(o object sende er, EventAr rgs e) { } } } }
Přři testování programu jssme si mohlii všimnout, že při startu u jsou aktivn ní obě tlačítkka. Po omocí Vlasttností nastaavíme vlastn nost Enable ed tlačítka „Odblokuj" na počátečční ho odnotu Falsee.
Přřiřazovací přííkaz
Věětšinou se každý příkaaz z důvod du přehledn nosti zapisuje na samostatný řád dek zd drojového kó ódu.. Rozhod dujícím kritériem je vždyy přehlednosst programu a to, aby je eho fo ormální podo oba co nejlép pe odrážela lo ogiku řešení.
8..5 Sekven nční zpraco ování Ukkážeme si prrogram, kterrý po stisku ttlačítka zkop píruje zadanýý text do polle kopie a po ole ko opie přepíše do pole zálo oha (Obr. 31)). OBRÁZEEK 8.3
Návrh proggramu testujíícího přiřazo ovací příkaz
Zaamysleme see nad pořad dím, v jakém m se pole musí kopírovaat, Pokud byychom nejprrve zkkopírovali zad daná text do o pole kopie a to pak do pole záloha, pak by polee kopie i zálo oha ob bsahovaly teentýž text. M Musíme postu upovat z kon nce na začáteek, Nejprve do pole zálo oha zkkopírujeme o obsah pole ko opie a teprvee pak editovaaný text do p pole kopie. Po ole si pojmen nujeme: poleOriginál,p poleKopie, poleZáloha. obslužná mettoda obsluhaa události Click tlačítka. N Napíšeme do o ní V programu bude jediná o p zovací příkazzy provádějíccí kopírování. Sami se zaamyslete, ko olik vee vhodném pořadí přiřaz přříkazů bude aa v jakém mu usí být pořad dí. Pro kontro olu výsledek ukazuje VÝPIS 8.4
Dvojité přepisování
namespace K n Kopie_a_zálo oha { { public partial cla ass oknoPro ogramu : Fo orm { pub blic oknoPro ogramu() { Initialize eComponent( (); } pri ivate void t tlačítkoZál lohuj_Click k(object sen nder, Event tArgs e) { poleZáloha a = poleKop pie.Text; poleKopie. .Text = pol leOriginál.Text;
1 137
modulu tvůrcee systému
} pri ivate void o oknoProgram mu_Load(obj ject sender, , EventArgs s e) { } } } }
Prrogram spusťťte a zkontro olujte jeho čiinnost.
8..6 Séman ntické chyb by Ch hyby, kdy je program fun nkční, ale dělá něco jinéh ho, než očekáváme, říkám me sémanticcké ch hyby ve smysslu chyby výzznamové. Ch hybám jako je e třeba zapo omenutý střeedník, se oproti to omu říká chyb by syntaktickké.
Přřiřazovací přííkaz
ZAPAMATTUJTE SI
povinně
Jedním z nejd důležitějších h příkazů vůb bec je přiřazo ovací příkaz. V jazyce C## se zapisuje v t této podobě: : kam = co; Příkaz fungujje tak, že ho P odnotu uved denou napraavo od rovníítka přiřadí ((zkopíruje) do d m místa zapsan ného na stran ně levé. Při práci s vlaastnostmi rů P ůzných objekktů se používvá bližší určení jménem o objektu, kterré lze. Zápis se p provádí ve tvvaru jmén no objektu, tečka, jm méno vlastn nosti danéh ho objektu". Napříklaad textV Věta.Text ozn načuje vlastn nost Text objjektu textVětta. Chceme‐li v m C metodě vyko onat více akccí, jednoduše e zadáme vícce příkazů. P Příkazy se paak v vykonávají seekvenčně, jeeden za druh hým, v pořaadí, v jakém jsou ve zdrrojovém kód du z zapsány. Kromě syntaktických chyb, což jsou p K prohřešky pro oti pravidlům m programovvacího jazykaa, e existují ještě chyby sémantické. SSémantickým mi chybami rozumíme ty případy, kdy se program m sestaví, ale po spuštěn ní ého, než pro d dělá něco jin ogramátor zaamýšlel. ZZatímco synttaktické chyb by odhalí výývojové prosttředí, séman ntické chybyy musí odhalit č člověk, proggramátor. Každý K progrram musím me dostatečně důkladn ně otestovat, a abychom odh halili nejlépee všechny sémantické (lo ogické) chybyy návrhu pro ogramu a takké s samotného p programu. KONTROLNÍÍ OTÁZKY
povinně
Co jee to sekvenčn ní příkaz. Jak vvznikají sémaantické chybyy. Jak zabránit ztráttě dat při sekkvenčním zpracování pro ogramu.
1 139
modulu tvůrcee systému
S SHRNUTÍ KA PITOLY
povin nné STTUDIJNÍ LITEERATURA Moderní proggramování : učebnice pro M p začátečníky / Radeek Vystavěl. ‐ Ondřejovv : ramování, 20 M Moderní prog 007 ‐ 193 s. :: il. ISBN 978 8‐80‐903951‐‐0‐7 (brož.) Moderní proggramování : sbírka úloh M h k učebnici pro začáteečníky / Rad dek Vystavěll. ‐ On ndřejov : Mo oderní prograamování, 2007 ‐ 137 s. : il. ISBN 978‐80‐903951‐1 1‐4 (brož.) Acccelerated C# 2008 / Treey Nash ; [fo oreword by W Wes Dyer]. ‐ Berkeley : A Apress, c2007 ‐ xxxviii, 510 s. : il. ISBN 978‐1‐59059‐ 9 ‐873‐3 (brožž.)1‐59059‐8 873‐3 (chybn né)978‐1‐430 02‐ 03 338‐4 (e‐knih ha) Algoritmizace / Jana Pšenčíková. ‐ Vyd d. 1.. ‐ Kralicce na Hané : Computer M Media, c2007 ‐ 12 28 s. : il. ISBN N 978‐80‐866 686‐80‐6 (v kknize neuved deno : brož.)80‐86686‐80 0‐9 (chybné) Algoritmy a datové d struktury / Břetisslav Krček, Ivan I Kolomaazník. ‐ Verzze 27.3.2007 7. ‐ Osstrava : VŠB ‐ Technická univerzita O Ostrava, [200 07?] ‐ 1 elektronický opticcký disk (CD‐‐R) : b barev. ISBN 9 978‐80‐248‐1 1306‐6 (CD‐R R) Algoritmy a šttruktúry údaajov [Wirth, 1989] / Nikklaus Wirth ; [z anglickéh ho originálu ... prreložil Pavol Fischer]. ‐ 2. vyd.. ‐ Brattislava : Alfa,, 1989 ‐ 481 s. : il. ISBN 80‐05‐00153 3‐3 (váz.) Karel Voráče ek]. ASSP.NET 2.0 : programujeme profesionálně / Bill EEvjen ... [et aal. ; překlad K ‐ V Vyd. 1.. ‐ Brn no : Computeer Press, 200 06 ‐ 1224 s. : il. ISBN 80‐251‐1286‐1 (vváz.) ASSP.NET 4 a C# C 2010 : tvvorba dynam mických strán nek profesio onálně. Knihaa 1 / Matthe ew M MacDonald, A Adam Freeman, Mario Szzpuszta ; [přřeklad Jan Po okorný]. ‐ Vyyd. 1.. ‐ Brno : Zo oner Press, 2 2011 ‐ 880 s. : il. ISBN 978 8‐80‐7413‐13 31‐8 (váz. ASSP.NET 4 a C# C 2010 : tvvorba dynam mických strán nek profesio onálně. Knihaa 2 / Matthe ew M MacDonald, A Adam Freeman, Mario Szzpuszta ; [přřeklad Jan Po okorný]. ‐ Vyyd. 1.. ‐ Brno : Zo oner Press, 2 2011 ‐ 700 s. : il. ISBN 978 8‐80‐7413‐14 45‐5 (váz
Daatové typy a proměnné
9 Datovvé typy a proměnné Ú ÚVOD V této kapitolee odladíme p program Kallkulačka, jeh hož uživatelskké rozhraní jjsme vytvářeeli v kkapitole 5. P Program přeččte čísla ze d dvou textovýých polí, sečtte je a výsled dek zobrazí vve výýsledkovém poli. p Postup pně si ukážeme, na jakéé problémy můžeme na arazit a jak je j vyyřešit. CÍÍLE KAPITOLY Y Po o prostudová ání této kapiitoly a vypra acování úkollů budete UM MĚT: Deklarrovat a defin novat proměnnou. Navrhnou jednodu uchou struktturu algoritm mu. Po o prostudová ání této kapiitoly a vypra acování úkollů ZÍSKÁTE: Základ dní přehled o o proměnnýcch a způsobu u jejich použiití. Po o prostudová ání této kapiitoly a vypra acování úkollů BUDETE SC CHOPNI: Vytvořřit jednoducché program my, které vyu užívají návratových hodn not některýcch metod d. Ošetřiit chyby, kteeré mohou vzniknout v ne esprávným zaadáním vstu upních hodno ot prograamu a kterým m říkáme chyyby za běhu programu
1 141
modulu tvůrcee systému
9..1 Nefunkční kalkulačka V programu b bude jediná o obslužná meetoda, a to o obslužná mettoda událostti Click tlačítkka. M Metodu vytvo oříme a vložím me do ní příkkaz pro sečte ení obsahu o obou textovýých polí: poleVýýsledek.Textt = polečísloX X.Text + pole eČísloY.Text; V uvedeném výrazu jsou hodnoty vlastností Texxt obou texttových polí zkombinováány omocí operátoru +. po Zd drojový kód o obslužné meetody ukazujee Výpis 9.1. P Program spu usťte a otestu ujte. VÝPIS 9.1
Nefunkční kkalkulačka
namespace K n Kalulačka_te ext { { public partial cla ass oknoPro ogramu : Fo orm { pub blic oknoPro ogramu() { Initialize eComponent( (); } pri ivate void t tlačítkoRov vnáSe_Click k(object sen nder, Event tArgs e) { poleVýsled dek.Text = poleČísloX X.Text + pol leČísloX.Te ext; } pri ivate void o oknoProgram mu_Load(obj ject sender, , EventArgs s e) { } } } }
Prrogram nam místo sčítání spojuje vsttupní hodno oty, které an ni nemusejí být čísla, jak j ukkazuje
9..2 Datové é typy Přři práci s vlastnostmi jsste si zřejm mě všimli, že e hodnoty, kterých vlasstnosti mohou naabývat, jsou několika drruhů. Do některých vlasstností se mohl zadat teextový řetěze ec, jin nde se zadávala barva nebo n číslo. Některé mo ohly nabývatt jednu ze d dvou logickýých ho odnot, True n nebo False. Dů ůležité jsou názvy zapssané tučným m písmem. Ty musíte bezpečně zznát, v dalšíích prrogramech jee budete hojně používat.. Zbytek tabu ulky je spíše informativníí. TABULK KA 9.1
Názvy některých datovýých typů
Druh hodnoty
Náázev typu
Alterrnativní názeev1
Texxtový řetězeec
strring
String
Barva
Co olor
Loggická hodnotta
bo ool
Booleean
Daatové typy a proměnné
Čísslo
intt
Int 32 2
Tlaačítko
Bu utton
Výčet hodn not pro SccrollBars vlaastnost ScrollBars
9..3 Kalkulačka Nyyní zpátky k otázce, proč p úvodní program té éto kapitolyy namísto sčítání spoju uje. Dů ůvodem je to, t že vlastn nost Text texxtových políí je typu strring. A pro ttyp string ne ení sččítání definovváno. Sčítat sse dají pouzee čísla, nikoli textové řettězce. Shodo ou okolností"" je op perátor +, který se běžněě používá pro o normální ssčítání čísel, definován v jazyce C# taaké prro řetězce, avšak a s odlišným významem ‐ spojjováním. Pro oto jsme naamísto sčítaččky zísskali slučovačku textu. Prrostředkem, jak získat kalkulačku, k j typová konverze. je k Tím mto pojmem m se označu uje zm měna typu hodnoty h či vlastnosti. v K Konkrétně, řetězce ř jako "23" či "7"" potřebujem me zm měnit (převéést) na čísla 23 a 7. Ta už u potom pů ůjdou bez prroblémů seččíst. Výsledke em paak bude napřříklad číslo 3 30, které ovššem před zob brazením v textovém poli musíme zaase přřevést na řeetězec! Vlastnost poleV Výsledek.Textt je typu sttring, musím me tedy do ní přřiřadit hodno otu typu strin ng.
9..4 Vývojo ový diagram a pseud dokód Po okud program není natolik triviálníí, je třeba o o něm kratšíí či delší do obu přemýšlet. Těěmto činnosstem předch házejícím sam motnému záápisu zdrojo ového kódu se říká návvrh prrogramu. Někdy se můžeeme setkat s výrazem anaalýza programu. Výstupeem fáze návrrhu může být naapříklad slovvní popis. Mnohdy je však přehlednější výssledek návrrhu zaaznamenat nějak n struktu urovaně, graaficky. Ukáže eme si použžití vývojovýcch diagramů ů a záápis v pseudo okódu. Výývojový diagram pro návrh obsluhy stisku rovnítkka v program mu Kalkulačkaa je na Obr. 3 33. Zaachycuje opeerace, které se mají pro o vyřešení určité u úlohy provést, a zároveň jejiich čaasovou poslo oupnost. Mů ůžeme také říct, že daný vývojový diagram zacchycuje posttup řeešení neboli algoritmus u určité dílčí úlohy program mu. Každá operace, jež sse má prové ést, je ve vývojovvém diagram mu zakreslena obdélníččkem, časovvou posloupnost zachyccují šip pky, no a kollečka s písmeeny Za k |sou u tam pro úp plnost, pro označení začáátku a konce. Ob br. 33 Vývojo ový diagram pro obsluhu u stisku rovníítka
1 143
modulu tvůrcee systému
OBRÁZEEK 9.1
Vývojový diagram činno osti kalkulaččky
Zaapisuje‐li se p postup řešen ní textově, v pseudokódu u, používá see namísto ob brázkové form my fo orma textováá, která se podobá p zápissu zdrojovéh ho kódu v prrogramovacíím jazyce, ne ení vššak natolik detailní. d Pro záznam náávrhu obsluh hy naší události bychom m mohli pou užít psseudokód VÝPIS 9.2
Příklad pseu udokódu
p private void t tlačítkoRovnáSe_Click(ob bject sender,, EventArgs ee) { { Hodnoty Text obou vstup H pních polí přeevést na číslaa Č Čísla sečíst V Výsledek pře evést na řetězec a zapsat jako hodnottu do Textu vvýstupního p pole } } Prro psaní pseeudokódu nejsou žádnáá pevná praavidla, pseud dokód není programovací jazyk. Měli bysste ho psát tak, abyste bez nadměrnýých detailů vvystihli podsttatu řešení. Hllavní body jssme do zdro ojového kódu u zapsali forrmou tzv. ko omentářů či poznámek. To jso ou kusy texttu, které vývvojové prostřředí při sestaavování proggramu ignoruje a které ttak slo ouží pouze programáto orovi. Komentáře se v jazyce C# uvozují dvo ojicí lomítekk a výývojové prostředí je zobrrazuje zeleno ou barvou. TTouto formou u zapsané hlavní body m mají tu u výhody, že je na závěr ani netřeba odmazávat. Zůstanou v programu jaako vysvětlujjící po oznámky.
9..5 Převod d řetězce n na číslo K převodu řettězce na číslo slouží mettoda Tolnt32 2 třídy Convert. Metodaa přebírá jed den paarametr, kteerým je přeeváděný řettězec. Obecně by se tedy t převod d mohl zapssat náásledovně: Conveert.ToInt32(p převáděný řeetězec); My chceme konkrétně převést M p řetěězec zobrazený v prvním textovém m poli, příkkaz zaapíšeme takto:
Daatové typy a proměnné
polečísloX.Teext); Conveert.ToInt32(p Deejme tomu, žže v prvním ttextovém po oli je zobraze ena dvojka a za ní trojka. Vlastnost Te ext ob bjektu polečíísloX má ted dy hodnotu řřetězce " 23 ". Tato hodn nota se do výýše uvedené ého přříkazu dosadí. Můžeme si představit, jako kdyby vvypadal takto o: Co onvert.ToInt32("23"); Přííkaz se proveede a jeho výýsledkem je ččíslo 23.
9..6 Promě ěnné Ab by program s číslem moh hl dále praco ovat, musí ho někam ulo ožit. V počítaači to zname ená do o operační paměti p '. Jakkákoli hodno ota, která se e neuloží do o paměti či bezprostřed dně neepoužije, je o okamžitě zap pomenuta, zaahozena. Prrogramy si neukládají n do paměti jeen jedno čísllo, ukládají si do ní třeba tisíce číssel, řeetězců, obrázzků atd. Z to oho důvodu musí existovvat nějaký p prostředek pro orientaci ve vššech těchto údajích. Právvě proměnné nám umožžní se orienttovat, pojmeenovat místaa v op perační paměěti". Op perační pam měť tvoří inteegrované obvvody osazen né na základn ní desce poččítače. Do ní se ukkládají veškeerá data, se kkterými proggramy pracují, do ní se naahrávají veškkeré program my, ktteré na počítači v danou cchvíli běží. Prro každé uklládané číslo,, pro každý ukládaný ře etězec, pro každý k ukládaaný obrázekk si musí program m vyhradit v paměti místo m a totto místo musí m vhodněě pojmenovvat. Vyyhrazování míst m v paměěti a jejich pojmenovává p ání plní ve zdrojovém z kkódu deklaraace prroměnných. Deeklarace kon nkrétní prom měnné se v jaazyce C# pro ovádí formou u příkazu, v n němž se uve ede neejprve datový typ této prroměnné a p poté za mezerou její jmén no: nné; typ_prroměnné jméno_proměn Přříkaz deklarace je, jako kaaždý jiný příkkaz, ukončen n středníkem m. V programu Kalkulačka K chceme vyhrradit místo pro p uložení čísla vznikléého převode em. oto místo, tu uto proměnn nou, nazvěm me' třeba čísslo. Pohledem m do tabulkky lze zjistit, že To náázev typu reeprezentujícího číslo je int, a proto příkaz deklaarace naší prroměnné bu ude vyypadat takto: int čísloX; Vííme, jak převvést řetězec na číslo, vím me, jak v paměti pro toto číslo vyhradit prostor. Čáást prrogramu pakk vypadá následovně: int čísloX; oInt32(poleččíslo1.Text); čísloX = Convert.To Zaa deklaraci p proměnné čísslo jsme zařaadili přiřazovvací příkaz, kkterý výsledeek pře vodu do tééto proměnné přiřadí. Ko ompletní Kalkulačka Sttejným způsobem se naa číslo převede také ho odnota druh hého textovvého pole. Pro P uložení výsledku převodu bude samozřejmě potřeba druhá pro oměnná: int čísloY; čísloY = Convert.To oInt32(poleČ Číslo2.Text);
1 145
modulu tvůrcee systému
So oučet se provvede s pomo ocí operátoru u + stejně, jaako jsme tímtto operátoreem v program mu Slučovačka spojovali řetězzce. Pro uložeení výsledku bude potřeb ba třetí prom měnná: int výssledek; výsled dek = čísloX ++ čísloY; Prro převod výsledku na řetězec slouží jiná metoda třídy Convert, a to meto oda ToString: poleVýýsledek.Textt = Convert.TToString(výsledek); Zd drojový kód FForm1.cs ve finální podo obě pro kontrrolu ukazuje výpis. VÝPIS 9.3
Kód programu Kalkulaččka
public part p tial class o oknoProgram mu : Form { pub blic oknoPro ogramu() { Initialize eComponent( (); } pri ivate void t tlačítkoRov vnáSe_Click k(object sen nder, Event tArgs e) { // Hodnoty y Text obou u vstupních h polí převé ést na čísl la int čísloX X; čísloX = C Convert.ToI Int32(poleČ Číslo1.Text) ); int čísloY Y; čísloy = C Convert.ToI Int32(poleČ Číslo2.Text) ); // Čísla s sečíst int výsled dek; výsledek = = čísloX + čísloY; // Výslede ek převést na řetězec c a zapsat j jako hodnot tu // Text t výstupníh ho pole poleVýsled dek.Text = Convert.To oString(výsl ledek); } pri ivate void o oknoProgram mu_Load(obj ject sender, , EventArgs s e) { } }
nil, jaký je ro ozdíl mezi čísloX, poleČísloX Neež půjdeme dál, ještě bych rád expliccitně zdůrazn a polečísloX .TText. Taakže: • • •
čísloX je proměnná typu int, m místo v operaační paměti p pro uložení jeednoho celé ého čísla; poleČíísloX je objeekt textového pole, celý se vším všu udy, obsahující text, barvvu, zarovn nání textu attd.; poleČíísloX.Text jee jedna jedin ná vlastnostt tohoto objjektu, konkrrétně vlastno ost uchovvávající text vv zobrazeném m textovém poli.
Daatové typy a proměnné
Naaprosto anallogický výklad se dá provvést i pro čísloX a výsledeek.
9..7 Návrattová hodnota V přiřazovacím m příkazu see napravo od d rovnítka zaapisuje přiřaazovaná hodnota. V našiich prrogramech to o byla hodno ota nějaké vvlastnosti, přřímo uveden ná hodnota aanebo hodno ota vh hodné proměěnné. Eventu uálně také h hodnota vzniklá vyhodno ocením výrazzu. Podíváme e‐li see z této persp pektivy na po oužitý příkazz čísloX = Convert.To oInt32(poleČ ČísloX.Text); vid díme, že voláání metody C Convert.ToIn nt32 se chovvá, jako by to o byla nějakáá hodnota. Je e‐li naapř. poleČíslo oX.Text rovn no řetězci "23", chová se e uvedené vo olání jako ho odnota čísla 2 23. Teedy jako kdyb by byl v proggramu příkazz čísloX = 23; To omuto říkám me volání metody, m hodn notě, která se za zápisem volání d dosadí, se řííká náávratová hod dnota metod dy. V témže kontextu mluvíme také o o typu návraatové hodno oty. Naapříklad výsledkem volán ní metody To oInt3 2 je vžd dy nějaké čísslo, říkáme tu udíž, že 32 je metodaa s návratovo ou hodnotou u typu int. ToInt3 Nee všechny m metody předáávají svou náávratovou ho odnotu. Pozn nali jsme již metodu Close, ktterá jen zavřře okno. O takových t meetodách říkáme, že to jssou metody bez návrato ové ho odnoty. Zaatímco volán ní metod s náávratovou ho odnotou jsou obvykle so oučástí většíh ho celku, např. přřiřazovacího příkazu, tvořří volání mettod bez návrratové hodno oty vždy sam mostatný příkkaz ‐ n napsali jsme Close, závorrky, středník..
9..8 Chyby za běhu p programu Přři práci s pro ogramem Kalkulačka jstee možná zjisttili, že pokud d uživatel do o některého ze vsstupních políí nezadá číslo, ale napíšše namísto něj n nějaké slovo s (nebo se překlepne), prrogram po stisknutí s tlaččítka s rovníttkem přestane pracovatt. V takové ssituaci říkám me, do ošlo k chybě za běhu programu. Ch hyba běhu programu p see projeví tak, že se na monitoru dostane d do popředí okkno výývojového prostředí vyp padající podobně jako to t na obrázku 9.2. Řádek zdrojové ého kó ódu, na kteréém došlo k cchybě, bude zobrazen žlutě a v jeho o blízkosti vyskočí okénko o s ch hybovým hláššením.
1 147
modulu tvůrcee systému
OBRÁZEEK 9.2
Chyba při b běhu program mu při laděn ní programu
nčit běh proggramu (Debu ug> Stop Deb bugging) a p pátrat po příččinách. Situaace Jee nutno ukon z o obrázku 9.2 nastala tehd dy, když jsm me do prvníh ho textového o pole zadali text „Nejse em čísslo". K chyběě došlo na žlu utě vyznačen ném řádku ČísloX = Convert.TToInt32(poleČ ČisloX.Text); prrotože metoda ToInt32 nedokázala ř n řetězec „Nejjsem číslo" převést na p žádné rozum mné čísslo. Po okud je pro ogram spuštěn mimo vývojové prostředí, naapř. poklepááním na je eho sp pustitelnou p podobu (. exee soubor), výývojové prosstředí se při běhové chyb bě samozřejm mě neeotvírá. Nam místo toho se chyba ohlássí okénkem p podobným to omu, které jee zobrazeno na ob brázku 9.3. I v tomto případě p je nejrozumnějš n ší reakcí ukkončení proggramu stiske em tlaačítka „Quit"". OBRÁZEEK 9.3
Chyba při b běhu program mu ve Windo ows
Daatové typy a proměnné
9..9 Ošetře ení chyb bě ěhem chod du program mu Po okud děláte program jeen sami pro o sebe, nebýývá výskyt běhové b chyb by až takovvou traagédií, většinou se dovtípíte, v čem je prob blém. V pro ogramech určených jinýým užživatelům byy se však běhové chyby pokud možno o objevovat n neměly. Oššetření těchtto chyb v pro ogramu Sčítaačka je možné dvěma způ ůsoby. • •
Zaprvéé můžete zad dání nekorekktní hodnotyy uživateli zn nemožnit. Existují napříkllad ovládaací prvky, kteeré dovolí po ouze zadání ččíselného úd daje. Zadruhé můžete na n zadání neekorektní ho odnoty přim měřeně reago ovat, napříkllad mitelné hlášky v češtině a pokračováním v běhu. zobrazzením srozum
Ukkážeme si druhou metodu. Budemee ji využívat i k ošetření jiných chyb,, než je zadáání neekorektní hodnoty. Postu upujeme taktto: •
Přejděěte do zdrojo ového kódu Form1. cs prrogramu Sčíttačka a myšíí (nebo pomo ocí Shift+ššipky) označčíme všechny řádky tělaa metody tlaačítkoRovnáSSe_Click, mim mo složen ných závorekk vymezujícícch tělo metod dy (obrázek 9.4.)
OBRÁZEEK 9.4
Označení kó ódu metodyy Click
1 149
modulu tvůrcee systému
•
Pravým m tlačítkem klepněte něěkam do vyznačené oblaasti a z konteextové nabíd dky vybertte Surround With. OBRÁZEEK 9.5
Situace po kklepnutí praavým tlačítke em
•
V sezn namu, který sse objeví (ob brázek 9.5), n najdeme slovvo try a pokleepejte na ně ěj. OBRÁZEEK 9.6
Název přípaadové studie e
•
Zdrojo ový kód meto ody se změní do podoby podle Obr. 3 38. Ve spodn ní části meto ody odmažžte (Exceptio on) a také throw;
Daatové typy a proměnné
OBRÁZEEK 9.7
Vzhled proggramu po vlo ožení bloku try
•
ožte příkaz Do práázdného řádku mezi složženými závorrkami za slovvem catch vlo
MessageB Box.Show("Byyl zadán chybný údaj."); VÝPIS 9.4
Kalkulačka se zachytávááním výjime ek
public part p tial class o oknoProgram mu : Form { pub blic oknoPro ogramu() { Initialize eComponent( (); } pri ivate void t tlačítkoRov vnáSe_Click k(object sen nder, Event tArgs e) { try { // Hod dnoty Text obou vstup pních polí p převést na čísla int čí ísloX = Con nvert.ToInt t32(poleČísl loX.Text); int čí ísloY = Con nvert.ToInt t32(poleČísl loY.Text); // Čís sla sečíst int vý ýsledek = č čísloX + čí ísloY; // Výs sledek přev vést na řet tězec a zaps sat jako ho odnotu // Text výstu upního pole e
151
modulu tvůrcee systému
poleVý ýsledek.Tex xt = Conver rt.ToString( (výsledek); ; } catch { // Při i nekorektn ním zadání informujeme e uživatele e Messag geBox.Show( ("Byl zadán n chybný úda aj."); } } pri ivate void o oknoProgram mu_Load(obj ject sender, , EventArgs s e) { } }
Jak funguje konstrukce trry‐catch, kteerou jsme do programu u vkládali? B Blok příkazů za ovem try je ttzv. pokusný blok. Příkazy v pokusném bloku se vvykonají jaksi „na zkoušku". slo Kd dyž některý z nich selžee, nemá to fatální f násled dek. Namísto vzniku běhové chyby se prrovede to, že se přeskočí zbytek po okusného blo oku a proveedou se příkazy v bloku za slo ovem catch. Dojde k tzv. zachycení výýjimky.' Co o to znamen ná v konkréttním případěě programu Kalkulačka? Jestliže nap příklad uživatel neevyplní prvn ní textové pole a stisskne rovnítko, dojde k výjimce během voláání Co onvert.ToInt32 (poleČíslo oX.Text) ‐ prrázdný řetězec nelze přeevést na žádné číslo. Už se an ni nedokončíí přiřazení do o proměnné čísloX, přeskkočí se další akce ve zbyttku pokusného bloku a namístto toho všeh ho se vykoná jediný příkaaz bloku za slovem catch,, tzn. příkaz MessaageBox.Show w("Byl zadán chybný údajj"); ktterý způsobí zobrazení okkénka se zpráávou „Byl zadán chybný údaj". Vššimněte si, že ž do pokussného bloku se uzavírají nejen příkaazy, které mohou způsobit běěhovou chyb bu, ale také vvšechny dalšší, které na n ně navazují. V V programu Sčítačka se při vzzniku výjimkky nemůže provést přřiřazení do proměnné čísloX, pro otože není co přřiřazovat, neemůže se prrovést sčítán ní, protože není n co sčítaat, ani se neemůže zobraazit výýsledek, prottože žádný není.
9..10 Deklarrace s inicializací Finální podob bu obslužné metody stisku rovnítkka ukazuje Výpis V 13. Vššimněte si, že na ještě jedn na úprava, a tou je sloučeení deklaracíí proměnil‐li se v programu byyla proveden s p přiřazeními d do nich. Nam místo dvou přříkazů int čísloX; oInt32(poleččísloX.Text); čísloX = Convert.To lzee zapsal jediný příkaz int čísloX = Converrt.ToInt32(po olečíslo1.Texxt); Po oužili jsme tzv. t deklaracci s inicializací, zápis, kte erý umožňujje do proměěnné ihned po jejjím vzniku přřiřadit počátteční hodnotu. Syntaxe to ohoto zápisu u vypadá nássledovně: typ_prroměnné jméno_proměn nné = počáte eční_hodnota;
Daatové typy a proměnné
Db bejte také naa to, že poku ud do proměnné budete někde dále vv metodě přiřazovat novvou ho odnotu, zapííšete už sam mozřejmě jen n přiřazení bez b deklaracce. Deklarovat proměnnou můžete jen jed denkrát, přiřřadit do ní něěco můžete, kolikrát chceete. ost či hodnotta je vždy nějakého n typ pu. Typ urču uje druh hod dnot, možno osti Kaaždá vlastno jejjich použití aa možné opeerace s nimi. Kaaždý typ má v jazyce C# n nějaký názevv. Pro textové řetězce slo ouží typ strin ng, pro čísla ttyp int, pro barvy typ Color, prro logické ho odnoty typ bo ool. Naa pravé straaně přiřazovvacího příkaazu se moho ou vyskytovvat celé výraazy. Je možžno naapříklad dvěě hodnoty sp pojit pomoccí operátoru +. Ten při použití na čísla sčítá, při po oužití na řetěězce spojuje.. Veeškeré mezivvýsledky si p program ukláádá v operačční paměti d do pojmenovvaných oblasstí, do o proměnnýých. Pro kaaždou uklád danou hodn notu je třeb ba vyhradit samostatnou prroměnnou. P Proměnná see vytváří pom mocí příkazu d deklarace prroměnné, kteerý má tvar typ_prroměnné jméno_proměn nné; reesp. typ_prroměnné jméno_proměn nné = počáte eční_hodnota; U hodnoty lzee změnit typ p pomocí typové konverrze. Ke konvverzím mezi čísly a řetě ězci ouží metodyy ToInt32 a To oString třídyy Convert. slo Řaada metod definuje návrratovou hodn notu, která sse jakoby dossadí za zápis volání meto ody po oté, co se meetoda proved de. Něěkteré operaace, napříklaad pokus o převedení řettězce na číslo o, mohou vyyvolat chybu za běěhu program mu. K ošetření těchto tzv. výjimekk slouží kon nstrukce try‐‐catch. Jestliže něěkterý z příkaazů uzavřenýých do pokussného bloku za slovem try selže, zbyttek pokusné ého bloku se přeskkočí a namístto toho se vyykonají příkazy bloku za sslovem catch h.
1 153
modulu tvůrcee systému
ZAPAMATTUJTE SI
povinně
Rozeeznáváme růzzné datové ttypy. Mezii základní typ py patří Celoččíselný typ jee typ int. Řetězec znaků je typ string. Booleovský (logiccký, pravdivo ostní) je typ b boolean. Různ né typy moho ou nabývat p pouze hodno ot, které souvvisí s daným typem. Hodn nota, kterou metoda předává, se nazzývá návratovvá hodnota m metody. Před použitím jakékoli j pro oměnné ji musíme m nejprve deklarovat, tedy ji menovat, sou učasně s dekklarací ji mů ůžeme i deffinovat, tedyy ji i přiřadit pojm hodn notu. KONTROLNÍÍ OTÁZKY
povinně
Xy Xy PŘÍKLA AD 9
ŘEŠEENÍ
Daatové typy a proměnné
S SHRNUTÍ KA PITOLY
povin nné STTUDIJNÍ LITEERATURA Moderní proggramování : učebnice pro M p začátečníky / Radeek Vystavěl. ‐ Ondřejovv : ramování, 20 M Moderní prog 007 ‐ 193 s. :: il. ISBN 978 8‐80‐903951‐‐0‐7 (brož.) Moderní proggramování : sbírka úloh M h k učebnici pro začáteečníky / Rad dek Vystavěll. ‐ On ndřejov : Mo oderní prograamování, 2007 ‐ 137 s. : il. ISBN 978‐80‐903951‐1 1‐4 (brož.) Acccelerated C# 2008 / Treey Nash ; [fo oreword by W Wes Dyer]. ‐ Berkeley : A Apress, c2007 ‐ xxxviii, 510 s. : il. ISBN 978‐1‐59059‐ 9 ‐873‐3 (brožž.)1‐59059‐8 873‐3 (chybn né)978‐1‐430 02‐ 03 338‐4 (e‐knih ha) Algoritmizace / Jana Pšenčíková. ‐ Vyd d. 1.. ‐ Kralicce na Hané : Computer M Media, c2007 ‐ 12 28 s. : il. ISBN N 978‐80‐866 686‐80‐6 (v kknize neuved deno : brož.)80‐86686‐80 0‐9 (chybné) Algoritmy a datové d struktury / Břetisslav Krček, Ivan I Kolomaazník. ‐ Verzze 27.3.2007 7. ‐ Osstrava : VŠB ‐ Technická univerzita O Ostrava, [200 07?] ‐ 1 elektronický opticcký disk (CD‐‐R) : b barev. ISBN 9 978‐80‐248‐1 1306‐6 (CD‐R R) Algoritmy a šttruktúry údaajov [Wirth, 1989] / Nikklaus Wirth ; [z anglickéh ho originálu ... prreložil Pavol Fischer]. ‐ 2. vyd.. ‐ Brattislava : Alfa,, 1989 ‐ 481 s. : il. ISBN 80‐05‐00153 3‐3 (váz.) Karel Voráče ek]. ASSP.NET 2.0 : programujeme profesionálně / Bill EEvjen ... [et aal. ; překlad K ‐ V Vyd. 1.. ‐ Brn no : Computeer Press, 200 06 ‐ 1224 s. : il. ISBN 80‐251‐1286‐1 (vváz.) ASSP.NET 4 a C# C 2010 : tvvorba dynam mických strán nek profesio onálně. Knihaa 1 / Matthe ew M MacDonald, A Adam Freeman, Mario Szzpuszta ; [přřeklad Jan Po okorný]. ‐ Vyyd. 1.. ‐ Brno : Zo oner Press, 2 2011 ‐ 880 s. : il. ISBN 978 8‐80‐7413‐13 31‐8 (váz. ASSP.NET 4 a C# C 2010 : tvvorba dynam mických strán nek profesio onálně. Knihaa 2 / Matthe ew M MacDonald, A Adam Freeman, Mario Szzpuszta ; [přřeklad Jan Po okorný]. ‐ Vyyd. 1.. ‐ Brno : Zo oner Press, 2 2011 ‐ 700 s. : il. ISBN 978 8‐80‐7413‐14 45‐5 (váz
1 155
modulu tvůrcee systému
1 Grafika 10 Ú ÚVOD V dnešní doběě mnoho pro ogramů praccuje s daty v v multimediá ální podobě.. Seznámeníí s to outo tematiko ou začneme vektorovou grafikou. Na aučíme se, ja ak v okně pro ogramu kreslit ússečky, obdéln níčky a koleččka, prázdná i vyplněná. CÍÍLE KAPITOLY Y Po o prostudová ání této kapiitoly a vypra acování úkollů budete UM MĚT: V proggramu použítt příkazy, kteeré vykreslí p přímku, elipssu, obdélník. Změniit barvu obryysu tvaru. Vykresslit plný tvarr. Po o prostudová ání této kapiitoly a vypra acování úkollů ZÍSKÁTE: Znalossti o grafice vv programu. Znalossti grafické o orientace okn na programu u. Po o prostudová ání této kapiitoly a vypra acování úkollů BUDETE SC CHOPNI: Prograamově vykreeslit základníí obrazce a pochopit metodu paint,, která se prro vykresslování užívá. Použítt pera s štětcce pro kreslení.
Grrafika
157
modulu tvůrcee systému
10 0.1 Kreslení čárovýcch obrazců Naapíšeme pro ogram, který v okně nakreeslí úsečky, o obdélník a elipsu (obrázeek 10.1). OBRÁZEK K 10.1
Grafický pro ogram
bude obsaho ovat žádné o ovládací prvky. Vyytvoříme novvý projekt s názvem „Obrazce". Neb Okknu program mu nastavím me vlastnostt (Name) naa oknoProgrramu a vlasstnost Text na „O Obrazce". Přeepneme Vlasstnosti do režimu Událossti a poklepáme na událo ost Paint. Do o otevření metody zap píšeme příkaazy z výpisu u. Najdeme zde komen ntáře, uvoze ené dvvěma lomítkky. Ty vysvěětlují funkci kódu, ale z hlediska činnosti č pro ogramu nem mají žáádnou roli. VÝPIS 1 10.1
dálosti Paintcc okna progrramu Obsluha ud
public p partial clas ss oknoProg gramu : For rm { pub blic oknoPro ogramu() { Initialize eComponent( (); } pri ivate void o oknoProgram mu_Paint(ob bject sender r, PaintEve entArgs e) { { // Nejprve e získáme o objekt kres slicí plochy y Graphics k kreslicíPlo ocha; kresl licíPlocha = = e.Graphic cs; // Nakresl líme černou u čáru z bo odu [0, 0] d do bodu [15 50, 100] // Význam parametrů: : (pero, xP Poč, yPoč, x xKonc, yKon nc) kreslicíPl locha.DrawL Line(Pens.B Black, 0, 0, , 150, 100) ); // Ještě j jednu čáru ‐ vodorovn nou z [0, 10 00] do [150 0, 100]
Grrafika
kreslicíPl locha.DrawL Line(Pens.B Black, 0, 10 00, 150, 10 00); // Nakresl líme modrý obdélník v v bodě [250, , 150] // o šířce e 55 pixelů ů a výšce 1 140 pixelů // Význam parametrů: : // (pero, xLevýHorní í, yLevýHor rní, šířka, výška) kreslicíPl locha.DrawR Rectangle(P Pens.Blue, 2 250, 150, 5 55, 140); // Nakresl líme čokolá ádovou elip psu umístěno ou uvnitř // obdélní íka, který začíná v b bodě [250, 1 150] a // je 55 p pixelů širo oký a 140 p pixelů vysok ký // Význam parametrů je stejný jako při kr reslení obd délníka kreslicíPl locha.DrawE Ellipse(Pen ns.Chocolate e, 250, 150 0, 55, 1 140); } pri ivate void o oknoProgram mu_Load(obj ject sender, , EventArgs s e) { } }
10 0.2 Událosst paint Tu uto událost o obsluhujemee vždy, když chceme ovlivnit vzhled o okna programu bez použžití ovvládacích prvvků. Do obsluhy událostti Paint zapissujeme příkaazy pro kresslení grafickýých ob brazců, kteréé v okně chccete mí. Programy s grafickým rozhraním fungu ují tak, že musí um mět svou pod dobu vytvořiit či obnovit kdykoli na požádání. Po ožadavky na vykreslení okna program mu vytváří ob bvykle operační systém vvždy • • •
předtíím, než se okkno poprvé zzobrazí na monitoru; je‐li okkno minimalizováno a paak obnoveno o do původníí velikosti; jestližee se část okn na odkryje.
Naa tyto událo osti má okno vestavěno ou automatickou obsluh hu, která přřiměje všech hny ovvládací prvkyy, aby se vykkreslily (vyvo olá jejich udáálosti Paint).. Kromě toho může vzhled okkna ovlivnit programátorr, když k udáálosti Paint připojí vlastn ní obslužnou u metodu. Taak, jak jsme to udělali v úvodn ním program mu Obrazce.
10 0.3 Grafickké příkazy a kreslicí p plocha Jisstě jste již zběžným pohledem p pochopili, že e pro nakreeslení každéého grafické ého elementu exiistuje nějakký příkaz, volání v nějaké metody připravené v knihovnáách prrostředí. NETT. V každém volání se předávají paraametry přesn ně definující kreslený prvvek ‐ b barvy, souřad dnice atd. Jm ména metod jsou jednoduchá a jsou vvypsány Tab. 15. Taab. 15 Metod dy pro kresleení grafických h elementů TABULKA A 10.1 Metodaa
Metody vykkreslování grrafických ele ementů Její funkce
Její p parametry
1 159
modulu tvůrcee systému
DrawLin ne
Kreslení úseečky
Pero o a souřadnicce koncových h bodů
DrawReectangle
Kreslení obd délníka Pero o, souřadnicee rohu, šířka a výška
DrawEllipse
Kreslení elip psy
Pero o a paraametry obdélníka
op psaného
Metoda patří vvždy buď do M o nějaké třídyy, nebo nějakkému objekttu. Grafických metody paatří vžždy i objektu kreslicí plocchy okna. Kreeslíme vždy n na nějakou kreslicí plochu u (též plátno o). V obslužné meetodě události Paint náss zajímá kresslicí plocha o okna program mu obsaženáá v prroměnné (ob bjektu) kreslicíPlocha. Jm ménem tohoto objektu b blíže určíme volání meto ody DrrawLine. Úseečka tak mussí vykreslit prrávě na ploše e okna a ne n na žádné jinéé. Daatový typ ob bjektů kresliccích ploch see jmenuje Graphics, proto o proměnno ou deklarujem me přříkazem hics kreslicíPlocha; Graph Náásledně je naaplněna odkazem na kreslicí plochu o okna příkazeem kresliccíPlocha = e.G Graphics;
10 0.4 Pera Prrvním param metrem příkazů pro kresleení úseček, o obdélníků a eelips je vždy tzv. pero. Pe ero je úplnou charakteristikou u čáry, to zn namená, určuje barvu čááry, její tlouššťku a její sttyl. Nááš program kreslí plné teenké čáry. Zatím vystačíme s pery z připravené sady per Pens. Naapíšete Penss a za tečku p připojíte jmééno barvy.
10 0.5 Souřad dný systém m okna Vššechny param metry graficckých příkazů ů následujícíí za perem určují u geomeetrii kreslenýých ob brazců ‐ jejicch polohu, rozměry... r V vychází z Vše z pojmu sou uřadný systéém okna. Jeho po očátek, o souřadnicích [0 0, 0], leží v levém horníím rohu okn na, .x‐ová souřadnice rosste sm měrem doprava a y‐ová roste směreem dolů. V ččem se udávvají jednotkyy souřadnic lze urrčit programáátorsky. O Obr. 10.2 Sou uřadný systém m okna
Grrafika
OBRÁZEK K 10.2
Souřadnico ový systém
Mohou to býtt například centimetry M c n monitoru,, nebo metrry reálného ssvěta, který se na prrogramem modeluje. m Pokud neučím me jinak, jssou jednotkami souřadného systém mu pixely neboli o obrazové bod dy monitoru.
10 0.6 Kreslení úseček, obdélníků ů a elips Ússečka: Krreslení úsečkky. Po specifikaci pera se s zadávají nejprve n souřřadnice x a y počátečníího bo odu a potom m souřadnice x a y koncovvého bodu. N Například ússečka by se n nakreslila tím mto přříkazem: wLine(Pens.B Black, 50, 15 50, 270, 80); kresliccíPlocha.Draw bdélník: Ob Krreslení obdéélníku vyžad duje čtyři paarametry ne ejprve souřaadnice x a y jeho levé ého ho orního rohu aa potom šířkku a výšku ob bdélníku. Například kresliccíPlocha.Draw wRectangle(Pens.Blue, 2 200, 100, 50, 100); naakreslil obdéélník s levým horním roheem v bodě [2 200, 100], šířřkou 50 a výšškou 100.
1 161
modulu tvůrcee systému
OBRÁZEK K 10.3
Vykreslován ní elipsy
Elipsa: m představit pomyslný obdéln ník Krreslení elipsyy je obtížnějjší. Nejprve si okolo ní musíme (n na obrázku jee zobrazen tu učně čárkovaaně) a poté zzadat jeho parametry, so ouřadnice x aa y levvého horníh ho rohu, šířkku a výšku. Chcete‐li C kre eslit elipsu, pak p nejdřív zzjistíte, že le evý ho orní roh je například v b bodě [70, 90 0], poté určítte jeho šířku jako 200 (=270‐70) a je eho výýšku jako 80 (=170‐ 90). P Příkaz pro kreslení takové éto elipsy po otom bude vypadat takto o: wEllipse(Pen ns. Black, 70, 90, 200, 80)); kresliccíPlocha.Draw V ukázkovém programu je j volání DrrawEllipse se e shodnými parametry jako je voláání DrrawRectangle. Vidíme, že se elipsaa se nakreslí přesně do ovnitř dříve nakreslené ého ob bdélníka (obrázek 10.3).
10 0.7 Vyplně ěné obrazcce Metody pro kreslení vypln M něných obrazců ‐uchycujje Tab. 16. P Pojmenováníí jsou podob bná jako u metod pro kreslení obrazců čárrových, jen n namísto Draw w se píše Fill. Shodné jso ou i po oužívané parrametry jedin nou s tím, žee místo per se e používají štětce. TABULKA A 10.2
Kreslicí mettody pro vyplněné obrazcce
Metoda
Jeejí funkce
Její parametry
FillRectaangle
Krreslení vyplněného obdé élníka Štětec,, souřadnicce rohu, šířka a výška
FillEllipsse
Krreslení vyplněné elipsy
Štětec a paarametry opsanéého obdélníkka
ě, to znamená především její barvu u a Šttětec předstaavuje úplnou charakteriistiku výplně styyl, tedy šrafo ování, gradieent barvy ap.). Nejsnazší je použít již připravenou u „sadu štětcců" Brrushes. Jedno oduše napíšeete i Brushess a za tečku p připojíte jmééno barvy.
Grrafika
VÝPIS 1 10.2
Obsluha ud dálosti Paint okna prograamu, plné ob brazce
private voi id oknoProg gramu_Paint t(object sen nder, Paint tEventArgs e e) { // Získáme e kreslicí plochu kp Graphics k kp = e.Grap phics; // Nakresl líme chrpov vě modrý VY YPLNĚNÝ obdé élník // v bod dě [20, 100 0] o šířce i výšce 50 pixelů // (takž že vlastně čtverec) // Význam parametrů stejný jak ko u DrawRec ctangle kp.FillRec ctangle(Bru ushes.Cornf flowerBlue, 20, 100, 5 50, 50); // Ještě j jeden obdél lník, tento okrát zelený ý kp.FillRec ctangle(Bru ushes.Green n, 0, 200, 3 300, 10); // Pomocí obdélníků 1x1 můžeme e kreslit te ečky kp.FillRec ctangle(Bru ushes.Black k, 10, 10, 1 1, 1); // Nakresl líme růžovo ou VYPLNĚNO OU elipsu um místěnou // uvnit tř obdélník ka, který z začíná v bod dě [120, 30 0] // a je 100 pixelů ů široký a 70 pixelů v vysoký // Význam parametrů je stejný jako u Draw wEllipse kp.FillEll lipse(Brush hes.Pink, 1 120, 30, 100 0, 70); }
Prrogram také ukazuje po oužití metody FillRectangle pro kresslení teček. Když chcete e v okkně nabarvit jej jediný ob brazový bod,, jediný pixell, zavolejte FFillRectangle a zadejte šířřku i vvýšku obdéln níka jako 1 pixel. Pokud jjste si toho b bodíku při sp puštění programu nevšim mli, sp pusťte jej zno ovu a pečlivěě se podívejte do blízkostti levého horrního rohu kllientské oblaasti okkna. Je namaalován černěě, takže by sse neměl na světlém (přeedpokládám m!) pozadí okkna ztrácet.
10 0.8 Grafika v části okkna Do oposud jsmee měli k dispo ozici celou kllientskou oblast okna. Nyyní se podívááme na přípaad, kd dy je pro graafiku potřeb ba vymezit jeen část oknaa. Program, ukazuje Obrr. 45. Prograam naakreslí ohran ničenou elipssu na pozici a velikosti zadané uživaatelem. V přřípadě, že čáást elipsy zasahujee mimo vyhrrazenou oblaast, bude elip psa oříznuta.. Vyytvoříme no ový projekt nazvaný n „Čáástečná grafika". Navrhn neme uživattelské rozhraaní prrogramu. Pojjmenování o ovládacích prrvků zvolíme: po oleX_Střed, p poleY_Střed,, poleŠířka, p poleVýška, tlaačítkoPřekreesli.
1 163
modulu tvůrcee systému
OBRÁZEK K 10.4
Grafika v paanelu
10 0.9 Panel Po oužití, ovládaacího prvku panel omezííme grafiku jjen na část o okna. Jedná se o kontejn ner jin ných ovládaccích prvků, s s výhodou jeej však lze využít také pro vymezeníí určité oblaasti okkna. Do o pravé částii okna přetáh hneme nástrroj „Panel" opět ne ze skupiny „Comm mon Controls“, ale ze skupin ny nazvané „Containerrs". Upravím me ho do čtvercové p podoby. Pan nel po ojmenujte panelOkna a jeho vlastno ost BorderSttyle nastavím me na FixedSSingle čímž ho oh hraničíme. Přřepneme se do editace událostí a po oklepáme, na událost paanelu Paint. Ve zd drojovém kód du se otevře obslužná metoda panel_ _Paint. Neejprve získám me kreslicí plochu: Graph hics kp = e.Grraphics; Jeelikož se nach házíme v obssluze události Paint pane elu, získáme tak kreslicí plochu pane elu. To o má přinejm menším dva d důsledky: • •
Veškerá grafika bu ude na hranicích panelu o oříznuta. Počáteek souřadnéého systému u bude v levém horním rohu panelu u. Pokud bysste chtěli,, získal přesn ný čtverec, naajděte pro panel vlastnost Size a oběě čísla stejná..
Grrafika
10 0.10 Zpraccování vstu upu od uživatele Nyyní chceme vvykreslit elip psu v takové šířce, v jaké é si ji uživateel přeje. Znam mená to, že ve vo olání FillEllipsse nebude čttvrtý parameetr (šířka) zaadán číslem u uvedeným v programu, aale žee do něj musííme přenést hodnotu zad danou uživattelem v texto ovém poli „ŠŠířka". Naabízí se jako čtvrtý param metr volání FFillEllipse uvé ést hodnotu vlastnosti Teext příslušné ého teextového polle. To ale neemůžeme prrovést přímo o. Šířka elipssy je číslo, n neboli hodno ota tyypu int, zatím mco hodnotaa poleŠířka.TText je textovvý řetězec, ttyp string. M Musíme převé ést ho odnotu poleŠŠířka.Text naa číslo, a to uložit v nějaké proměnné typu int. Hodnotu té éto prroměnné nássledně použíít ve volání FillEllipse. Sp právné řešen ní vypadá takkto: int šířkka = Convertt.ToInt32(poleŠířka.Text); kp.FillEllipse(..., ...,, ..., Šířka, ...); Assi je evidentn ní, že stejným m způsobem se zpracuje výška zadan ná uživatelem m.
10 0.11 Geom metrie elipsy Užživatel v našem program mu zadává souřadnice středu, zatímco o volání FillEEllipse vyžadu uje so ouřadnice levvého horního o rohu. Tyto souřadnice m musíme nejp prve vypočítaat. V proměnných xStředu a yStředu jso ou uloženy údaje ú z příslušných texttových polí po přřevodu do čísselné formy.. Nyní potřeb bujeme zjistitt hodnoty xR Roh a yRoh. Po o chvíli přem mýšlení zjistíme, že od x‐ové x souřad dnice středu je nutno od dečíst polovinu šířřky elipsy. Od O y‐ové so ouřadnice středu je po otřeba odečíst polovinu u výšky elipsy. Deeklarace proměnných xStředu a yStřeedu bude ted dy vypadat takto: oh = xStředu u ‐ šířka / 2; int xRo int yRo oh = yStředu u ‐ výška / 2;
1 165
modulu tvůrcee systému
Vššimněte si, že ž operace dělení d se zaapisuje pomo ocí lomítka. Pro správnéé vyhodnoce ení výýpočtu je důležité, že dělení se provede dříve ne ež odčítání. Ř Říkáme, že d dělení má přřed od dčítáním přednost, má vyyšší prioritu.
10 0.12 Komp pletní obslluha událo osti paint Ceelý kód obslu užné metodyy události Paiint panelu ukkazuje výpis VÝPIS 1 10.3
Název schemata
private voi p id panel_Pai int(object sender, Pa aintEventArg gs e) { // Získáme e kreslicí plochu PAN NELU Graphics k kp = e.Grap phics; // Údaje z z textových h polí přev vedeme do čí íselné form my int xStřed du, yStředu u, šířka, v výška; try { xStřed du = Conver rt.ToInt32( (poleXstředu u.Text); yStřed du = Conver rt.ToInt32( (poleYstředu u.Text); šířka = Conver rt.ToInt32( (poleŠířka.T Text); výška = Conver rt.ToInt32( (poleVýška.T Text); } catch { // V p případě zad dání špatné é hodnoty uk končíme // v vykonávání obsluhy ud dálosti Pain nt, čímž // p panel zůsta ane prázdný ý return n; } // Spočtem me souřadni ice levého horního roh hu // pomys slného opsa aného obdél lníka int xRoh = = xStředu ‐ ‐ šířka / 2 2; int yRoh = = yStředu ‐ ‐ výška / 2 2; // A koneč čně vykresl líme elipsu u (i s ohran ničením) kp.FillEll lipse(Brush hes.Cornflo owerBlue, xR Roh, yRoh, šířka, v výška); kp.DrawEll lipse(Pens. .Black, xLH H, yLH, šířk ka, výška); ; }
Naa vysvětleno ou výpisu ješttě několik ko omentářů: Vššechna volán ní ToInt32 jssou uzavřena do pokusn ného bloku try. V případ dě, že uživatel něěkteré texto ové pole nevvyplní, příp. uvede neko orektní hodn notu, přenesse se řízení do bloku za sloveem catch, kd de se vykon ná příkaz retturn. Ten okkamžitě ukon nčí vykonáváání ob bslužné metody. Proměn nné xStředu, yStředu, šíířka a výška jsou deklaro ovány všech hny jediným příkazem. Kdykoli potřebujem me deklarovat několik proměnných stejného typ pu, dělat, takže na n začátku příkazu p uved dete název typu t a potom za mezerrou můžete to ud seeznam proměěnných odděělených čárkaami. Prroměnné jso ou deklarováány mimo pokusný p blokk, protože existence e kažždé proměn nné ko ončí s koncem m bloku, ve kkterém je pro oměnná dekklarována.
Grrafika
10 0.13 Vyvo olání události paint Nyyní zkusíme program sp pustit. Do teextových polí zadáme něějaká rozum mná čísla, např. 10 00, 30, 80, 5 50, a stisknem me tlačítko „„Překresli". N Nic nestane.. Okno se sp právně vykreslí, novíme. Pokkud jen pokud změěníme jeho vvelikost nebo o pokud je m minimalizujem me a pak obn si vzpomenem me, při jakých h událostech dojde k překreslení okna, najdeme ii řešení naše eho prroblému. Tím m vyvolání ud dálost Paint v reakci na sstisk tlačítka „Překresli". Poklepáme na tlaačítko a zdro ojový kód obssluhy události Click upravvíme: prrivate void tlačítkoPřekreesli_Click(objject sender, EventArgs e)) { panel..Refresh(); } V těle metod dy je jediný příkaz, voláání metody Refresh() objektu o paneel. Toto voláání zp působí, že daaný objekt, tzzn. panel, bu ude svůj „vizu uální obsah"" považovat zza neaktuáln ní a vyyvolá událostt Paint.
1 167
modulu tvůrcee systému
ZAPAMATTUJTE SI
SS grafikou lzee pracovat v obsluze udáálosti Paint o okna program mu, případněě konkrétníh ho o ovládacího p prvku. Událosst Paint vzniiká především před prvn ním vykreslením okna, p při jeho odkrytí či obnově z m minimalizovaaného stavu. SS objektem kreslicí plochy lze pro ovádět nejrů ůznější grafické operacee, jako např. k kreslení úsečček, vyplněných i nevypllněných obd délníku a elip ps atd. Volán ní příslušnýcch m metod dokum mentují proggramy Čárovéé obrazce a V Vyplněné ob brazce. V obsluze události Paint sse vždy nejprve získá kre V eslicí plocha aa uloží do prroměnné typ pu G Graphics: G Graphics kp = = e.Graphics; Veškeré geometrické paarametry kreeslených obrrazců (poloh V ha, rozměry) se uvádějí v p pixelech, nen ní‐li specifikováno jinak. Souřadný systém má počátek v leevém horním m r rohu klientské oblasti okna, o souřaadnice x rosste směrem m doprava, souřadnice y s směrem dolů ů. Pokud chcette pro grafiku vyhradit jen část okna, P o použijtte ovládací prvek pane el. N Najdete jej v Nástrojích h v kategorrii „Containe ers". Pro vložení graficckých příkazzů p použijte obsl uhu události Paint panellu, nikoli celé ého okna. Příkaz return P n způsobí okkamžité uko ončení meto ody. Lze jej použít např. tehdy, kdyyž c chcete zbýva ající příkazy p přeskočit. EExistence kaaždé proměěnné končí s koncem m bloku, vee kterém je proměnn ná d deklarována. . Např. prom měnné deklarované v po okusném blo oku jsou mim mo tento blo ok n neviditelné. Událost Paint lze z progrramu vyvolatt voláním me U etody Refressh blíže určeném jménem m o ovládacího p prvku, např. panelu. Bezz bližšího urrčení se vyvvolá událost Paint celéh ho o okna program mu, která mj. způsobí přeekreslení vše ech ovládacícch prvků. KONTROLNÍÍ OTÁZKY
Povinně
K čem mu slouží objekty Pen a B Brush. Jaký je souřadný systém oknaa v grafickém m programu. Jak zařídíme, abyy okno programu vždy ob bsahovalo akktuální obsah h. Jaké je použití prrvku Panel přři vykreslování grafiky v o okně program mu.
Ob bjekty
STTUDIJNÍ LITEERATURA Moderní proggramování : učebnice pro M p začátečníky / Radeek Vystavěl. ‐ Ondřejovv : M Moderní prog 007 ‐ 193 s. :: il. ISBN 978 8‐80‐903951‐‐0‐7 (brož.) ramování, 20 Moderní proggramování : sbírka úloh M h k učebnici pro začáteečníky / Rad dek Vystavěll. ‐ On ndřejov : Mo oderní prograamování, 2007 ‐ 137 s. : il. ISBN 978‐80‐903951‐1 1‐4 (brož.) Acccelerated C# 2008 / Treey Nash ; [fo oreword by W Wes Dyer]. ‐ Berkeley : A Apress, c2007 ‐ xxxviii, 510 s. : il. ISBN 978‐1‐59059‐ 9 ‐873‐3 (brožž.)1‐59059‐8 873‐3 (chybn né)978‐1‐430 02‐ 03 338‐4 (e‐knih ha) Algoritmizace / Jana Pšenčíková. ‐ Vyd d. 1.. ‐ Kralicce na Hané : Computer M Media, c2007 ‐ 12 28 s. : il. ISBN N 978‐80‐866 686‐80‐6 (v kknize neuved deno : brož.)80‐86686‐80 0‐9 (chybné) Algoritmy a datové d struktury / Břetisslav Krček, Ivan I Kolomaazník. ‐ Verzze 27.3.2007 7. ‐ Ostrava, [200 07?] ‐ 1 elektronický opticcký disk (CD‐‐R) Osstrava : VŠB ‐ Technická univerzita O : b barev. ISBN 9 978‐80‐248‐1 1306‐6 (CD‐R R) Algoritmy a šttruktúry údaajov [Wirth, 1989] / Nikklaus Wirth ; [z anglickéh ho originálu ... prreložil Pavol Fischer]. ‐ 2. vyd.. ‐ Brattislava : Alfa,, 1989 ‐ 481 s. : il. ISBN 80‐05‐00153 3‐3 (váz.) ASSP.NET 2.0 : programujeme profesionálně / Bill EEvjen ... [et aal. ; překlad K Karel Voráče ek]. ‐ V Vyd. 1.. ‐ Brn no : Computeer Press, 200 06 ‐ 1224 s. : il. ISBN 80‐251‐1286‐1 (vváz.) ASSP.NET 4 a C# C 2010 : tvvorba dynam mických strán nek profesio onálně. Knihaa 1 / Matthe ew M MacDonald, A Adam Freeman, Mario Szzpuszta ; [přřeklad Jan Po okorný]. ‐ Vyyd. 1.. ‐ Brno : Zo oner Press, 2 2011 ‐ 880 s. : il. ISBN 978 8‐80‐7413‐13 31‐8 (váz. ASSP.NET 4 a C# C 2010 : tvvorba dynam mických strán nek profesio onálně. Knihaa 2 / Matthe ew M MacDonald, A Adam Freeman, Mario Szzpuszta ; [přřeklad Jan Po okorný]. ‐ Vyyd. 1.. ‐ Brno : Zo oner Press, 2 2011 ‐ 700 s. : il. ISBN 978 8‐80‐7413‐14 45‐5 (váz
1 Objekkty 11 Ú ÚVOD V předchozím m výkladu jsm me mnohokrrát použili pojem p objekkt. Jako o ob bjektech jsm me mluvili o různ ných prvcích grafického uživatelského rozhraní. Objekty byla a také pera a ba arvy. Modern ní programovvání se zkráttka točí okolo o objektů a vv pracích s niimi. CÍÍLE KAPITOLY Y Po o prostudová ání této kapiitoly a vypra acování úkollů budete UM MĚT: Používvat dokumen ntaci vývojovvého prostředí. Najít informace k o objektům a jjejich požití.
1 169
modulu tvůrcee systému
Po o prostudová ání této kapiitoly a vypra acování úkollů ZÍSKÁTE: Základ dní znalosti o o objektech. Znalossti o vytvářen ní objektů. Po o prostudová ání této kapiitoly a vypra acování úkollů BUDETE SC CHOPNI: Využítt statických p prvků tříd. Vyžít vvýčtových typů.
Ob bjekty
11 1.1 Objektty a třídy Prro porozuměění objektům m je důležité uvědomit si,, co všechno ke každému u objektu mů ůže paatřit. V každéém objektu m mohou být definovány • • •
vlastnosti, událossti a metod dy.
V programech h se obvyklee vyskytuje více objekttů stejného druhu. Taktto chápaném mu „d druhu objekttů" se v proggramování řííká třída. Tříída textových h polí se jmeenuje TextBo ox, tříída popisku Label a tak dále. U ovládacích prvkků je to jedn noduché ‐ jm ména tříd jssou sh hodná se jméény příslušnýých nástrojů Toolboxu. V Ve třídě TexxtBox je deffinováno, žee každé texxtové pole bude b mít vlastnosti Te ext, ReeadOnly, BaackColor…, události u TexxtChanged, MouseHover… a metod dy Cut, Cop py, Sh how… Kdyko oli se v programu má vyytvořit nějakký objekt texxtového polee, sáhne se do tříídy‐šablony TTextBox a přřesně podle ní se vytvoříí nový objekt. Často se m mluví o tom, že jednotlivé objjekty jsou instancemi dané d třídy. Zjednodušen ně řečeno, třída můžem me hápat jako datový typ a objekt, instaanci třídy jako proměnn nou tohoto d datového typ pu. ch Ceelou situaci okolo objekttů jakožto in nstancí tříd na příkladu programu G Grafika ukazu uje ob brázek 11.1. OBRÁZEK 11.1
T Třídy a objek kty
11 1.2 Dokum mentace třříd K tomu, abyy se ve všech v potřebných třídáách program mátor zorieentoval, slouží do okumentace knihoven. D Dnes je mnoh hdy on‐line p přístupná pomocí interneetu, mnohdyy je lépe ji nainstalovat na svůjj počítač. otřebujeme‐li nalézt, jakk se dá praco ovat s pery, musíme si u uvědomit, žee každé pero o je Po ob bjekt třídy Pen, budem me tedy hleedat informaace o této třídě. Spusttíme vývojo ové
1 171
modulu tvůrcee systému
prrostředí a z n nabídky vybeerte Help > Index. Otevře se okno prro prohlíženíí dokumentaace a v jeho levé části se zobrazí rejstřík. V poli „Look for" zadejtte hledané sslovo, v naše em přřípadě slovo „Pen". Vee sloupci po od polem se zobrazují jeednotlivé po oložky rejstřííku počínaje slovem, kte eré jsm me zadali. Náás bude zajím mat položka „Pen class",, neboli „tříd da Pen". U kaaždé třídy se nejzajímavě ější informace dovvíte v podpoložkách „abo out" a „all me embers". Neejdůležitější kategorie jso ou: • • • •
Konstruktory (Con nstructors); Vlastn nosti (Properrties); Metod dy (Methodss); Události (Events).
Co o jsou vlastn nosti, metodyy a události, už víte. Co vvšak jsou ko onstruktory? Konstruktorr je metoda, jejímž voláním see vytváří novýý objekt.
11 1.3 Konstrruktory tříd dy pen Kd dyž chceme s nějakým objektem o prracovat, mussíme ho nejd dřív umět vyytvořit. Příkllad do okumentace vidíme na (Obr. 53). Ve V sloupci „N Name" se u každé variaanty zobrazu uje seeznam parametrů či, přesněji p řeččeno, pouze e jejich typ pů (bohužell). Ve sloupci „D Description" najdete pop pis příslušné vvarianty mettody.
11 1.4 Vlastn nosti třídy p pen Ab by se nějak dalo, rozlišiil mezi stejn ně pojmenovvanými třídaami, organizují se třídy do věětších celků, tzv. jmennýých prostorů ů. Ovládací prvky p pro ap plikace Wind dows napříkllad paatří do jmen nného prosto oru System.W Windows.Forms1 Třídy související s s grafikou, jaako naapř. Graphiccs, Color čii Pen patří do jmenného prostorru System.D Drawing. Řaada záákladních tříd d se nacházíí ve jmenném m prostoru SSystem. Do jjakého jmen nného prosto oru daaná třída pattří, můžete zjjistit např. v úvodu stránky „about" d dokumentacee k dané tříd dě. Po oužití tříd z vybraných jmenných j prrostorů se ve v zdrojovém m kódu zapiisuje úvodníími řáádky začínajíícími slovem m using. Šab blona „Windows Applicaation", z níž všechny naaše prrogramy vytvváříme, sama vloží do zd drojového kó ódu Form1.ccs sedm odkaazů na jmen nné prrostory.
11 1.5 Statickké složky třřídy V této kapito ole jsme rozzebírali, že objekty o při svém vzniku u přebírají vvšechny složžky dálosti, meto ody), které jsou j definovvány v příslu ušné třídě. K Když se poto om (vlastnosti, ud ch hce programátor odvolatt na některou u složku vytvvořeného objjektu, použije konvenci o objektu, teččka, jméno ssložky", např. modréPero o.Width. jméno Krromě běžnýcch složek všaak může tříd da obsahovaat i tzv. statické složky. TTo jsou složky, ktteré nejsou spjaty s s žádn ným objekteem, složky, které k instancce třídy při ssvém vytvoře ení neepřebírají. Zatímco se běžné b složkyy používají pouze p s odkkazem na něějaký existujjící
Ob bjekty
ob bjekt (bližší určování u jméénem objekttu), patří slo ožky statické pouze k daané třídě (bliižší urrčování jmén nem třídy).
11 1.6 Autoge enerující ssložky Tyypem statickké vlastnosti Color.Red jee Color. Setkkáváme se zd de se zajímavým případe em au utogenerujícíí vlastnosti, kkdy hodnoto ou vlastnosti třídy je objeekt této třídyy!
11 1.7 Výčtovvý typ Po ojednání o objektech o zaakončíme výýkladem pojmu výčtový typ. Pokud je typ nějaaké vlaastnosti typem výčtovým m, znamenáá to, že vlasttnost může nabývat pouze vybranýých přředepsaných h hodnot. Kažždá z předep psaných hodnot je nějak pojmenována a stejně ttak je pojmenován n i celý výčett. ů třídy Pen. Tato vlastno ost Výýčtovým typem je napříkklad typ vlasstnosti DashSStyle objektů urrčuje styl čarr kreslených příslušným p perem.
1 173
modulu tvůrcee systému
ZAPAMATTUJTE SI
povinně
P Programátor rské objekty se skládají z vlastností, událostí a meetod. V programecch se obvyklee vyskytuje vvíce objektů téhož druhu. Tomuto d V druhu objekttů s se říká třída. TTřída fungujee jako šablon na pro vytvářření objektů neboli instaancí dané tříd dy. Objekt při s svém vytvořření získá vššechny složky (vlastnossti, události,, metody), které jsou v p příslušné tříd dě definován ny. K jednotlivým třídám lzze hledat potřebné K p infformace v dokumentac d ci instalovan né s současně s vý ývojovým prrostředím. V dokumentaci se dá hled dat například d přes rejstříkk. Z nabídky Heelp zvolíte položku Z p Indeex a následn ně v poli „Lo ook for" zadáte napříklaad n název hledan né třídy (ve Visual C# 2008 2 ještě předtím p v po oli „Filtered by" vyberette . Nejzajímavější inform „ „unfiltered") mace najdette v podpo oložkách „about" a „aall m members". Konstruktor jje metoda, jejímž voláníím se vytvářejí nové insttance dané ttřídy. V jazycce K C C# se konstru uktor jmenu uje vždy stejn ně jako danáá třída. Volán ní konstrukto oru předchází k klíčové slovo new. K zajímavým K m vlastnostem m objektů třídy Pen patří Color (baarva), Width h (tloušťka) a D DashStyle (styl čáry). Vlastnost DasshStyle můžže nabývat pouze někteeré z hodno ot d definovaných h v tzv. výčttovém typu,, výčtu Dash hStyle. Konkrétní hodno ota výčtovéh ho t typu se zapis suje tak, že zaa jméno výčttu se doplní ttečka a jmén no zvolené hodnoty. TTřídy se sdru užují do většších celků, ktteré nazývám me jmenné prostory. p Po oužité jmenn né p prostory mussíme na začáátku zdrojovvého kódu vyjmenovat. To T provedem me tak, že na n p počátek řádk ku napíšeme klíčové slovo o using. Ve třídách m V mohou být krromě běžnýcch složek deffinovány takéé složky stattické, které sse n neváží na kon nkrétní objekt a jejichž n názvy se blíže e určují jmén nem třídy. V dokumentaci ožky označujjí ikonkou vee tvaru písme s se statické sl ene S. Autogenerujíící složky tříd A dy, jsou vlasstnosti či me etody, jejichžž hodnotou jje objekt téžže t třídy. Příklad em může býýt statická vlaastnost Color.Red definu ující červenou u barvu, neb bo s statická mettoda Color.FFromArgb vrracející barvvu namíchan nou z komp ponent RGBm m k které jsou jí p předány jako o parametry. KONTROLNÍÍ OTÁZKY
povinně
Vyložžte pojem ob bjekt, třída a jmenný pro ostor. Čemu náleží statiický člen tříd dy. Znátee příklad auttogenerující složky třídy. Uveď ďte příklad výýčtového typ pu.
Ob bjekty
S SHRNUTÍ KA PITOLY
Moderní styl programování jee objektové programováání. Objekty sdružují datové složkky, vlastnostii a metody. Složkky třídy moh hou být i sttatické, ty náleží n vždy třídě, jsou společné prro všech hny objekty dané třídy a určujeme je e pomocí jmééna třídy. Výčto ový typ urču ujeme sami ttak, že vyjme enuje všechn ny jeho složkka. Proměnn ná výčtu u může nab bývat jen ho odnot, které é jsme určilii, když jsmee výčtový tyyp defin novali. STTUDIJNÍ LITEERATURA Moderní proggramování : učebnice pro M p začátečníky / Radeek Vystavěl. ‐ Ondřejovv : ramování, 20 M Moderní prog 007 ‐ 193 s. :: il. ISBN 978 8‐80‐903951‐‐0‐7 (brož.) Moderní proggramování : sbírka úloh M h k učebnici pro začáteečníky / Rad dek Vystavěll. ‐ On ndřejov : Mo oderní prograamování, 2007 ‐ 137 s. : il. ISBN 978‐80‐903951‐1 1‐4 (brož.) Acccelerated C# 2008 / Treey Nash ; [fo oreword by W Wes Dyer]. ‐ Berkeley : A Apress, c2007 ‐ xxxviii, 510 s. : il. ISBN 978‐1‐59059‐ 9 ‐873‐3 (brožž.)1‐59059‐8 873‐3 (chybn né)978‐1‐430 02‐ 03 338‐4 (e‐knih ha) Algoritmizace / Jana Pšenčíková. ‐ Vyd d. 1.. ‐ Kralicce na Hané : Computer M Media, c2007 ‐ 12 28 s. : il. ISBN N 978‐80‐866 686‐80‐6 (v kknize neuved deno : brož.)80‐86686‐80 0‐9 (chybné) Algoritmy a datové d struktury / Břetisslav Krček, Ivan I Kolomaazník. ‐ Verzze 27.3.2007 7. ‐ Osstrava : VŠB ‐ Technická univerzita O Ostrava, [200 07?] ‐ 1 elektronický opticcký disk (CD‐‐R) : b barev. ISBN 9 978‐80‐248‐1 1306‐6 (CD‐R R) Algoritmy a šttruktúry údaajov [Wirth, 1989] / Nikklaus Wirth ; [z anglickéh ho originálu ... prreložil Pavol Fischer]. ‐ 2. vyd.. ‐ Brattislava : Alfa,, 1989 ‐ 481 s. : il. ISBN 80‐05‐00153 3‐3 (váz.) Karel Voráče ek]. ASSP.NET 2.0 : programujeme profesionálně / Bill EEvjen ... [et aal. ; překlad K ‐ V Vyd. 1.. ‐ Brn no : Computeer Press, 200 06 ‐ 1224 s. : il. ISBN 80‐251‐1286‐1 (vváz.) ASSP.NET 4 a C# C 2010 : tvvorba dynam mických strán nek profesio onálně. Knihaa 1 / Matthe ew M MacDonald, A Adam Freeman, Mario Szzpuszta ; [přřeklad Jan Po okorný]. ‐ Vyyd. 1.. ‐ Brno : Zo oner Press, 2 2011 ‐ 880 s. : il. ISBN 978 8‐80‐7413‐13 31‐8 (váz. ASSP.NET 4 a C# C 2010 : tvvorba dynam mických strán nek profesio onálně. Knihaa 2 / Matthe ew M MacDonald, A Adam Freeman, Mario Szzpuszta ; [přřeklad Jan Po okorný]. ‐ Vyyd. 1.. ‐ Brno : Zo oner Press, 2 2011 ‐ 700 s. : il. ISBN 978 8‐80‐7413‐14 45‐5 (váz
1 175
modulu tvůrcee systému
1 Pokro 12 očilá prááce s pro oměnnýými Ú ÚVOD Prroměnné jsm me doposud d využívali tak, t že se do d nich na začátku přiiřadila nějakká ho odnota, kterrá v nich zů ůstala až do o konce jejiich existencce. Nyní se dostaneme k za ajímavějším a aplikacím, kd dy se s hodno otou téže pro oměnné bude opakovaněě pracovat. CÍÍLE KAPITOLY Y Po o prostudová ání této kapiitoly a vypra acování úkollů budete UM MĚT: Použítt složené přiřřazení a měn nit obsah pro oměnných. Po o prostudová ání této kapiitoly a vypra acování úkollů se NAUČÍTTE: Spojovvat řetězce aa využít meto ody NewLine e Využívvat třídu okn na programu.. Používvat proměnn né a porozum míte, kdy pro oměnná vznikká a kdy zaniikne. Po o prostudová ání této kapiitoly a vypra acování úkollů BUDETE SC CHOPNI: Sestavvit složitější p program, kteerý bude využívat pokroččilou práci s p proměnnýmii. Využívvat složenéh ho přiřazeníí a operace e zvětšení či zmenšeni proměnné o jedniččku.
Po okročilá prácce s proměnn nými
12 2.1 Seznam m hlášení Vlastnost objektu existujje tak dlouh ho, dokud existuje e objekt. Takovéé textové po ole um místěné v okkně programu u může inforrmace uchovvávat po celo ou dobu běhu u programu. OBRÁZEK 12.1
R Rozhraní pro ogramu Sezn nam
Vyytvoříme aplikaci, která bude uchovvávat, ukládaat text zadávaný uživateelem Při stissku tlaačítka „Ulož"" se obsah ho orního textovvého pole „H Hláška" přidáá jako nový řřádek spodníího teextového pole „Seznam". Současně see horní texto ové pole vyčistí pro zadán ní další věty. Vyytvoříme novvý projekt „Seznam" a připravíme p uživatelské u r rozhraní proggramu. Aktivvní ovvládací prvkyy nazveme poleHláška, p poleSeznam a tlačítkoUlož. Ve spod dním textové ém po oli nastavímee • • • •
ReadO Only na True; Multiline na True (až poté půjd de pole roztááhnout ve svvislém směru u); ScrollB Bars na Both h (budeme ch htít oba posu uvníky); WordW Wrap na Falsse (zalamováání řádků se v této aplikaaci nehodí).
12 2.2 Složen né přiřazen ní Přři každém stisku tlačítka se má vzít ttext z horníh ho pole, přid dat jej na konec textu po ole sp podního a ho orní pole vym mazat. Obslu uha události Click by tedy mohla vyp padat tak, jakk ji ukkazuje Výpis 22.
1 177
modulu tvůrcee systému
VÝPIS 1 12.1
Obsluha ud dálosti Click ttlačítka proggramu Seznaam
private vo oid tlačítkoZaapiš_Click(ob bject sender, EventArgs ee)
{ { poleSSeznam.Textt += poleHlášška.Text; poleH Hláška.Text == null; } } Neejdůležitějším m je první řáádek těla obslužné meto ody, ve kteréém se za pom mocí operáto oru +== provádí tzv. složené přiřazení. p Po okud by se ve v zmíněném m řádku použilo obyčejjné přřiřazení polePrrotokol.Text = poleHláška.Text; paak by text ho orního pole vvždy kompleetně nahradil text pole sp podního. Myy však chcem me, ab by horní texxt byl přidán n ke stávajíccímu textu spodnímu. s P Přesně to provede slože ené přřiřazení +=. Výýznamu toho oto zápisu lépe porozum míte, když si s ukážeme, jak by se obsluha tlačíttka řeešila bez znalosti operáto oru +=. Úlohu u lze řešit i po omocí běžnéého přiřazen: poleSeeznam.Text == poleSeznam m.Text + poleHláška.Textt; Přřestože jsou oba výpisy n naprosto ekvvivalentní, urrčitě je lepší používat slo ožené přiřaze ení ‐ h hned je na první pohled zřejmé, že see k hodnotě poleSeznam m .Text bude něco přidávvat; čtenář programu nemusí luštit, že na levé a pravé é straně od rovnítka se vvyskytuje tattáž vlaastnost VÝPIS 1 12.2
oženého přiřřazení Obsluha tlaačítka bez slo
p private void t tlačítkoZapišš__Click (objeect sender, EEventArgs e) { poleSSeznam.Textt = poleSeznaam.Text + po oleHláška.Texxt; poleH Hláška.Text == null; }
12 2.3 Řádko ování Po okud jsme program p s výše v uveden nou obsluho ou tlačítka otestovali, o zzjistili jsme, že fu unguje jen čáástečně. Zadávané věty ssprávně přid dává na koneec seznamu,, ale přidává je vššechny za seebe na jeden n řádek. Mu usíme doplnit řádkováníí. Za každou u větu do po ole Seeznamu přidaanou přidám me navíc ještě konec řádkku. Pro symb bol konce řád dku se použíívá statická vlastn nost NewLinee třídy Enviro onment. S níí bude finální podoba ob bslužné meto ody stisku tlačítka vypadat tak,, jak ji ukazujje Výpis 24.
Po okročilá prácce s proměnn nými
VÝPIS 1 12.3
dálosti Paint okna prograamu Obsluha ud
p private void d tlačítkoZ Zapiš_Click k(object sen nder, Event tArgs e) { poleSeznam m.Text += p poleHláška.Text + Envi ironment.Ne ewLine; poleHláška a.Text = nu ull; }
12 2.4 Složen né přiřazen ní a čísla Op perátor += připojuje p jed den řetězec na n konec druhého. Lze jej j použít také na čísla a a v takovém přípaadě zvětší ho odnotu jedn noho čísla o hodnotu čísla druhého. Ukážeme si to naa programu napodobujíccím ovládací prvek Číseln ník (Obr. 64)). Při stisku ttlačítka „+1" se čísslo v textovéém poli zvětšší o jedničku,, při stisku tlaačítka „‐1" see o jedničku zmenší. OBRÁZEK 12.2
R Rozhraní pro ogramu Naho oru a dolů
Jeelikož je text v textovém poli typu string, bude se j muset prrovést konveerze na typ int. Ob bsluha stisku u tlačítka „+1 1" tedy budee vypadat takkto: • Hodno otu poleČíslo o.Text převésst na typ int a uložit do p proměnné čísslo • Hodno otu proměnn né číslo zvětššil o jedničku u. • Novou u hodnotu prroměnné číslo převést naa typ string aa uložit do po oleČíslo.Textt. Ob bsluha stisku u minus jedn ničky bude naaprosto analogická. Přřipravíme nový projektt „Číselník" a jeho uživatelské u rozhraní, po ojmenovanýými po oleČíslo, tlačítkoPlus a tlačítkoMin nus. Textové ému poli nastavte n výcchozí hodno otu vlaastnosti Texxt na „0". Vložíme obslu užné metody obou tlaččítek a jejich h zdrojový kód k up pravíme do p podoby, kterrou ukazuje
1 179
modulu tvůrcee systému
VÝPIS 1 12.4
Výpis progrramu Nahoru u a dolů
publ lic partial class okno oProgramu : Form { pub blic oknoPro ogramu() { Initialize eComponent( (); } pri ivate void t tlačítkoPlu us_Click(ob bject sender r, EventArg gs e) { int číslo = Convert. .ToInt32(po oleČíslo.Tex xt); číslo += 1 1; poleČíslo. .Text = Con nvert.ToStr ring(číslo); ; } pri ivate void t tlačítkoMin nus_Click(o object sende er, EventAr rgs e) { int číslo = Convert. .ToInt32(po oleČíslo.Tex xt); číslo ‐= 1 1; poleČíslo. .Text = Con nvert.ToStr ring(číslo); ; } pri ivate void o oknoProgram mu_Load(obj ject sender, , EventArgs s e) { } }
V obsluze stiskku plus jedničky je zajímaavý příkaz číslo ++= 1; ktterý zvětší ho odnotu prom měnné číslo o o jedničku. Po odobně příkaaz číslo ‐== 1; v o obsluze minu us jedničky h hodnotu proměnné číslo o jedničku zzmenší. Beez použití slo oženého přiřřazení by se uvedené přííkazy daly vee stejném výýznamu napssat jako: číslo == číslo + 1; reesp. Číslo == číslo ‐ 1; Prro čísla lze složené přiřazzení použít vve spojení s libovolným aritmetickým m operátore em. Krromě += tedyy existuje ‐=,, *= atd. Pro o jednoducho ost program neuvažuje m možnost zadáání neekorektní hodnoty. Oššetření tako ovéto situacce s použittím konstru ukce try‐cattch po onechávámee na vás .
12 2.5 Operátory ++ a ‐‐ ‐ V programu Nahoru a dolů ů se hodnotaa proměnné číslo zvětšuje, resp. zmenšuje je vždyy o jedničku. Kdyybyste chtěli zvětšovat např. o de esítku, snadn no byste přříslušný příkkaz up pravili:
Po okročilá prácce s proměnn nými
číslo == číslo + 10; Zvvětšování, reesp. zmenšovvání konkrétn ně o jedničku je však v p programován ní natolik časté, žee pro ně v jazyce C# existuje e specciální kompaaktní zápis, kdy se pou uze za jiné no prroměnné uveede operátorr inkrementaace ++, resp. operátor deekrementacee
O Okno progra amu JAKO O TŘÍDA Vee složitějších h úlohách programátoři nejen že používají p již připravené třídy, ale taaké vyytvářejí své vlastní. Od O samých začátků totiž za nás Návrhář vytváří tříídu objektem. To, čemu d okknoProgramu u. Okno pro ogramu je samozřejmě s dáváme názzev okknoProgramu u, je třídou. Samotné okkno je nepojm menovanou instancí této o třídy. Když se po odíváme pob blíž začátku zzdrojového kkódu Form1.ccs najdeme ttam řádek publicc partial classs oknoPrograamu : Form Slo ovo class v něm oznamuje začátek definice novvé třídy. Zbyytek řádku řííká, že se tříída jm menuje okno oProgramu a je odvozenáá ze třídy Fo orm. Třída Form obsahuje všechno, co reegulérní okno o programu potřebuje. TTřída oknoProgramu můžže obsahovat ještě položžky naavíc a těmi jssou metody o obsluhy udállostí a případ dně členské p proměnné třřídy Tyyto proměnné budou dalšími „složkkami navíc" ve třídě okn noProgramu.. Ano, ve tříídě mohou být kro omě vlastnosstí, událostí aa metod deffinovány takéé proměnné..
1 181
modulu tvůrcee systému
ZAPAMATTUJTE SI
SSložené přiřaazení se používá, když na levé i pravé straně přiřazovacíh ho příkazu je j s stejná promě ěnná. Složen ný příkaz přiřřazení je složžen z operáttoru (+, ‐, /, *) a znaku = =. Z Zapisuje jej v ve tvaru Výsleedek += Výsleedek + 10; V uvedeném příkladu k p V proměnné Výsledek V je přičtena p hod dnota deset a výsledek je j o opět uložen d do stejné pro oměnné Výsledek. Pro zvětšení (inkrementaaci) a zmenšeení (dekreme P entaci) hodn noty proměnné použijem me o operátor ++ a a ‐‐. M Mimo vlastno ostí a metod d třída může obsahovat i proměnné, d datové prvkyy třídy. KONTROLNÍÍ OTÁZKY
Povinně
Napiššte příklad složeného operátoru přiřazení (složeného přiřazení) a vysvěětlete jeho vvýznam. Jak se nejjednodušeji zapíše p příkaz, který zmenší prom měnnou o jedničku? Existuje i příkaz, který ba proměnnou um měl zvětšit práávě o jedničkku?
Po okročilá prácce s proměnn nými
S SHRNUTÍ KA PITOLY
Mimo jednoduch hého příkazu u přiřazení můžeme m čassto využít jeh ho kombinaci s nějakou operaccí, nejčastěji se sčítáním, odečítáme aapod. Pro inkrementaci a dekrementaci hodnotty proměnnéé použijeme operátory + ++ a ‐‐ STTUDIJNÍ LITEERATURA Moderní proggramování : učebnice pro M p začátečníky / Radeek Vystavěl. ‐ Ondřejovv : ramování, 20 M Moderní prog 007 ‐ 193 s. :: il. ISBN 978 8‐80‐903951‐‐0‐7 (brož.) Moderní proggramování : sbírka úloh M h k učebnici pro začáteečníky / Rad dek Vystavěll. ‐ On ndřejov : Mo oderní prograamování, 2007 ‐ 137 s. : il. ISBN 978‐80‐903951‐1 1‐4 (brož.) Acccelerated C# 2008 / Treey Nash ; [fo oreword by W Wes Dyer]. ‐ Berkeley : A Apress, c2007 ‐ xxxviii, 510 s. : il. ISBN 978‐1‐59059‐ 9 ‐873‐3 (brožž.)1‐59059‐8 873‐3 (chybn né)978‐1‐430 02‐ 03 338‐4 (e‐knih ha) Algoritmizace / Jana Pšenčíková. ‐ Vyd d. 1.. ‐ Kralicce na Hané : Computer M Media, c2007 ‐ 12 28 s. : il. ISBN N 978‐80‐866 686‐80‐6 (v kknize neuved deno : brož.)80‐86686‐80 0‐9 (chybné) Algoritmy a datové d struktury / Břetisslav Krček, Ivan I Kolomaazník. ‐ Verzze 27.3.2007 7. ‐ Osstrava : VŠB ‐ Technická univerzita O Ostrava, [200 07?] ‐ 1 elektronický opticcký disk (CD‐‐R) : b barev. ISBN 9 978‐80‐248‐1 1306‐6 (CD‐R R) Algoritmy a šttruktúry údaajov [Wirth, 1989] / Nikklaus Wirth ; [z anglickéh ho originálu ... prreložil Pavol Fischer]. ‐ 2. vyd.. ‐ Brattislava : Alfa,, 1989 ‐ 481 s. : il. ISBN 80‐05‐00153 3‐3 (váz.) Karel Voráče ek]. ASSP.NET 2.0 : programujeme profesionálně / Bill EEvjen ... [et aal. ; překlad K ‐ V Vyd. 1.. ‐ Brn no : Computeer Press, 200 06 ‐ 1224 s. : il. ISBN 80‐251‐1286‐1 (vváz.) ASSP.NET 4 a C# C 2010 : tvvorba dynam mických strán nek profesio onálně. Knihaa 1 / Matthe ew M MacDonald, A Adam Freeman, Mario Szzpuszta ; [přřeklad Jan Po okorný]. ‐ Vyyd. 1.. ‐ Brno : Zo oner Press, 2 2011 ‐ 880 s. : il. ISBN 978 8‐80‐7413‐13 31‐8 (váz. ASSP.NET 4 a C# C 2010 : tvvorba dynam mických strán nek profesio onálně. Knihaa 2 / Matthe ew M MacDonald, A Adam Freeman, Mario Szzpuszta ; [přřeklad Jan Po okorný]. ‐ Vyyd. 1.. ‐ Brno : Zo oner Press, 2 2011 ‐ 700 s. : il. ISBN 978 8‐80‐7413‐14 45‐5 (váz
1 183
modulu tvůrcee systému
1 Čísla 13 Ú ÚVOD V dřívějších dobách slo oužily počíta ače předevšším ke zprracování číssel. V našicch prrogramech ta aké používám me čísla a v této kapitolle prohloubím me znalosti p programování týýkající se číseel. CÍÍLE KAPITOLY Y Po o prostudová ání této kapiitoly a vypra acování úkollů budete UM MĚT: Pracovvat s celými a desetinným mi čísly. Používvat čísla jako o objekty. Převád dět řetězce n na čísla a nao opak. Převád dět mezi různými typy čííselných hodnot. Po o prostudová ání této kapiitoly a vypra acování úkollů ZÍSKÁTE: Potřeb bné vědomo osti pro sestavení složitějššího program mu, který praacuje s čísly. Znalossti, jak použíívat běžné m matematické é funkce ve ssvém prograamu a jak tytto funkcee zapisujemee jako příkazyy programu. Po o prostudová ání této kapiitoly a vypra acování úkollů BUDETE SC CHOPNI: Sestavvit program vvyužívající m matematické funkce a přeevádět vstupy od uživatele do forrmy, ve kteréé se dají využžívat k výpoččtům. Sestavvit program,, který výsleedek výpočtů zobrazí vee formě, které porozum mí běžný člověk.
Číísla
13 3.1 Desetiinná čísla Zaatím jsme se setkali s celými číslaa, např. 2, 77 7 či ‐18. Matematika M počítače dě ělá po odstatný rozzdíl mezi číslly celými a desetinnými d Čísla desetinná se v po očítači uklád dají jin ným způsobeem než číslaa celá a výp počty s nimi provádí dvě odlišné čáásti procesoru. Výýpočty s dessetinnými čísly jsou náročnější a také při nich vzniká tzv. zzaokrouhlovací ch hyba, což jee nepřesnost výpočtu způsobená z nemožností n přesného u uložení většiiny deesetinných číísel. Prráci s desettinnými číslyy si ukážem me na modifikaci programu Kalkulaačka. Prograam up pravíme tak, aby akcepto oval také vstu up desetinnýých čísel. Po okud jde o u uživatelské ro ozhraní, to zzůstane stejn né. Co se zm mění, bude o obsluha tlačíttka „SSečti".. Pro d desetinná číssla existuje d datový typ double. Všech hny proměnné, tzn. číslo o1, čísslo2 a výsled dek, budemee deklarovat,, jako promě ěnnou typu d double Tím u umožníme, aaby see do nich ukláádala desetin nná čísla. O Operátor sčítáání je možno o použít pro desetinná čísla i pro číslaa celá. Musím me se zamysslet naad voláním metody m Convert.ToInt32 2. Ta totiž od dmítá všechno kromě ceelých čísel. Její J dvvě volání je ttedy potřebaa nahradit vo oláními Conve ert.ToDoublee. Vzzhledem k to omu, že metodě Converrt.ToString z z posledního o řádku bloku try je jedn no, jestli má na řeetězec převésst číslo celé n nebo desetin nné, nebude potřeba dalších úprav. Finální verzi obslužné metody tlačítka ukazuje Výpis 30. Výýpis 30 Část zzdrojového ttextu upraveené Sčítačky
13 3.2 Čísla jaako objektty Deesetinná čísla se chovajíí jako objektty třídy Doub ble, celá číslla jako objekkty třídy Int3 32, řeetězce jako objekty třídy String.
13 3.3 Přehle ed výpočtů ů Záákladní výpo očetní operaace shrnuje Tab. 21. Operátory O + a ‐ jsou stejné jako + o v matematice, n násobení se zapisuje hvěězdičkou *, d dělení lomítkem /. Hvězdičku je nuttno pssát vždy, neení možno ji vynechávat podobně ě, jako se symbol s náso obení mnoh hdy vyynechává v matematicee. Násobeníí a dělení má vždy přednost p přeed sčítáním a od dečítáním, sttejně jako v matematice. Pokud chce ete výraz vyh hodnotit v jiném pořadí,, je nu utné použít zzávorky! Taab. 21 Základ dní výpočty TABULKA A 13.1
Název tabulky
V matem matice
V V C#
y = 2x + 5
y = 2*x + 5;
(2x‐11)// ( 5x + 2) y = (2*x ‐ 11) / (5*x + 2);
1 185
modulu tvůrcee systému
v = 2x‐17 7/(5x)+2 y = 2*x ‐ 17/(5 5*x) + 2;
ocninami a odmocninami shrnuje Tab. 22. Druhou D moccninu nejsnááze Výýpočty s mo vyypočtete, když číslo znásobíte samo o se sebou. Pro výpočett jakýchkoli jiných mocn nin po oužijte volán ní metody Po ow třídy Matth. Metoda přijímá dva parametry, první je zákllad mocniny, druhým exponeent. Druhou u odmocninu získáte vo oláním meto ody Sqrt tříídy M Math. Jakoukkoli jinou od dmocninu přřeveďte na mocninu a použijte Math. Pow. Pro P přřipomenutí, n n‐tá odmocn nina je totéž co umocněn ní na 1/ In. Mocniny a o odmocniny
TABULKA A 13.2 V V matematic ce
V V C# y y = ‐3*x*x + 4*(x ‐ 0.75);
y y = 7.3 * Mat th.Pow(10, xx‐3); y y = Math.Sqr rt(x / 2);
y y = Math.Pow w(x + 1, 1.0//4.0); nebo y y = Math.Pow w(x + 1, 0.25 5);
Daalší skupino ou výpočtů ů jsou výp počty s goniometrick g kými funkceemi. Všech hny go oniometrickéé funkce jso ou implemen ntovány jako o volání meetod ze třídy Math, kte eré přřebírají vždy jeden param metr (tabulkaa. 13.3). Úh hel, jehož sinus, kosinuss či tangentu u chcete vyp počítat, musíí být vyjádřeen v radiánecch. Ho odnotu Ludo olfova čísla zíískáme jako Math. Pi): TABULKA A 13.3
Goniometriické funkce
V maatematice
V C##
y = ssin 2x + 0,5
y = M Math.Sin (2*x) + 0.5;
y = ssin (2x + 0,5)
y = M Math.Sin (2 * *x + 0.5);
z = ccos (x + y) tg x
z = M Math.Cos (x + + y) * Math.TTan (x);
y = aarc sin x + arcc tg x
y = M Math.Asin(x)) + Math.Atan(x);
Číísla
13 3.4 Celočísselné dělení Ceeločíselné dělení nebo též dělení se zbytkem m si ukážem me na příkladu. Pokud na kaalkulačce vyd dělíte číslo 22 2 třeba pětkou, dostanette výsledek 4 4,4. Pokud vššak 22 vydělíte pěětkou celočísselně, dostan nete výsledek 4 se zbytke em 2 Z toho důvodu u by výraz 1//4 počítač neevyhodnotil jako ale jako o nulu! Poku ud jsou dělite el i děělenec celá ččísla nebo ceeločíselné výýrazy, pak je i výsledek ccelé číslo. Záápis 1.0/4.0 aale říkká, že čísla jssou desetinná a lomítko pak zastupujje normální neceločíseln né dělení. Staačí, kd dyž aspoň jed dno z čísel jee desetinné. Po okud nechceete dělit celo očíselně, mussíte si být ab bsolutně jisti, že aspoň jjedno z čísel je deesetinné. Deefenzivní programování je takové, kdy už dop předu uvažu ujeme, že v budoucnu se mohou změnit předpoklad dy, na kterých je prograam postaven, snažíte se jej napsat taak, ab by těmito zm měnami nebyyla dotčena jeeho funkčno ost.
13 3.5 přehle ed číselných typů Prro celá čísla p používáme tyyp int, pro deesetinná čísla typ doublee. Ko ompletní přeehled číselnýých typů najd dete v Tab. 2 26. Pokud to o nebude vyssloveně nutn né, neení třeba, abyste ve svých programecch pracovali s jinými typyy než int a do ouble. TABULKA A 13.4
Číselné typyy
Druh
Názeev typu Alternativní Rozssah hodnot Přesnost Po očet hitů názeev
Celá číslaa
byte
Bytee
0 až 255
8
sbytee
SBytte
‐128 8 až +127
8
usho ort
UIntt16
0 až 65 535
16 6
short
Int16 6
‐32 768 až +32 2 67 7
16 6
uint
UIntt32
0 až 4 miliardy
32 2
int
Int32 2
± 2 m miliardy
32 2
ulong
UIntt64
0 až 18 trilionů
64 4
long
Int64 4
± 9 ttrilionů
64 4
Desetinn ná čísla floatt
Single
± 10 038
7 míst
32 2
Double
± 10 0308
15 míst 64 4
Deciimal
±102 28
28 míst 12 28
doub ble Desetinn ná čísla decim mal s p přesnou reprezen ntací
1 187
modulu tvůrcee systému
13 3.6 Kombiinace číselných typů Ko ombinací hod dnot int a do ouble můžem me vidět v příkazu do ouble dělitel = 1 + sazba // 100; Prroměnná sazzba byla typu u double, hodnoty 100 a 1 typu int. C Celý výsledekk se vyhodno otil v ttypu double a do proměnné tohoto ttypu uložil. Naa otázku ko ombinace tyypů ve výraazech navazuje otázka kompatibilitty vzhledem m k přřiřazení. Výraaz, který se vvyhodnotí jako int, je kro omě proměn nné typu int možno přiřadit také proměnn né typu double Říkámee, že probě ěhla tichá nebo též implicitní typo ová ko onverze, příp padně říkám me, že typ int je kompaatibilní vzhleedem k přiřřazení do tyypu do ouble. doublee x = 4;
// int do double lze
int poččet = 4.7; // double do in nt nelze! float yy = x + 1; // d double do flo oat nelze! Op pačným směěrem to všakk tak snadno nejde. Výrazz, který se vyyhodnotí jakko double, ne ení možno bez dalšího přiřad dit proměnn né typu int. Jazyk C# neumožňuje n double na int onvertovat im mplicitně. ko Po okud konverzi provést ch hcete, musítte si ji výslovvně vyžádat. Této tzv. exxplicitní typo ové ko onverze docíílíte tak, že p před převáděěnou hodnottu uvedete v závorkách jeejí požadovaaný tyyp. doublee x = 4;
int poččet = (int) 4.7 7;
// int d do double im mplicitně // double do int jen explicitně
float yy = (float) (x ++ 1); // doub ble do float je en explicitněě
Číísla
ZAPAMATTUJTE SI
V programovvání se důsleedně rozlišujje mezi celými a desetin V nnými čísly. Typ int slouží p pouze pro ce elá čísla. Pro čísla desetin nná použijte ttyp double. K výpočtům sslouží především aritmettické operáto K ory +, ‐, * a //. Pro různé matematickké f funkce (mocn niny, odmocniny, sinus atd.) existují metody třídyy Math. Čísla a také řřetězce se m Č mohou chovaat jako objekkty, tzn., mo ohou mít nap př. své vlastn ní m metody. Pro o čísla je zaajímavá mettoda ToStrin ng, které lze jako paraametr předaat f formátovací ř řetězec. Operátor / funguje O f v přřípadě dělen ní dvou celýých čísel jako o operátor celočíselnéh ho d dělení. Na to je třeba při výpočtech d dávat obzvlášštní pozor. Řada program Ř mů pracuje ss náhodou. K K dispozici je třeba mít geenerátor náh hodných číse el, k který je na platformě. p N představvován instan NET ncí třídy Ran ndom. Kdyko oli je potřeb ba n náhodné číslo, zavolá se s metoda Next N této in nstance. Meetodě se jakko parametrry p předávají do olní a horní mez rozmezzí, ve kterém m se má čísslo vygenero ovat. Přesně ěji ř řečeno, druh ým paramettrem je horní mez zvětšená o jedničkku. Kromě typů int a doub K ble existují další číselné é typy, kterré mají pou užití spíše ve v s speciálních p případech. H Hodnoty výrrazů lze pře evádět na jiný typ buď ď automatickky (implicitní tyypová konveerze), nebo na požádáání (explicitn ní typová kkonverze). Při e explicitní kon nverzi se přeed převáděno ou hodnotu uvede v závo orkách požadovaný cílovvý t typ. KONTROLNÍÍ OTÁZKY
povinně
Jak se v programu liší celé a d desetinné čísslo a jak je zaapisujeme Na co o si musíme dát pozor přři použití ope erátoru dělení. Je op perátor dělen ní shodný pro celočíselné é dělení i pro o desetinné d dělení. Co see stane, poku ud sečteme vv programu ccelé a desetiinné číslo. Jaké znáte matem matické funkkce a jak je zaapíšeme v prrogramu. Jak zapisujeme operace s gon niometrickým mi funkcemi. K čem mu nám slou uží třída Math. Jak lzze využít mettody Converrt.
1 189
modulu tvůrcee systému
S SHRNUTÍ KA PITOLY
V pro ogramu se mimo m běžnýých matematických operací dají zap psat i většin na běžných matemaatických funkkcí včetně funkcí goniometrických. Čísla v programu u vystupují jako j objektyy a mají tudíž i definovaané příslušn né ody. Jednou z nich je meetoda Conve ert, která nám m slouží pro o převod mezi meto různýými typy číseel a číselných h proměnnýcch. Mezii základní číselné typy paatří typ int, double, a decimal. STTUDIJNÍ LITEERATURA Moderní proggramování : učebnice pro M p začátečníky / Radeek Vystavěl. ‐ Ondřejovv : ramování, 20 M Moderní prog 007 ‐ 193 s. :: il. ISBN 978 8‐80‐903951‐‐0‐7 (brož.) Moderní proggramování : sbírka úloh M h k učebnici pro začáteečníky / Rad dek Vystavěll. ‐ On ndřejov : Mo oderní prograamování, 2007 ‐ 137 s. : il. ISBN 978‐80‐903951‐1 1‐4 (brož.) Acccelerated C# 2008 / Treey Nash ; [fo oreword by W Wes Dyer]. ‐ Berkeley : A Apress, c2007 ‐ xxxviii, 510 s. : il. ISBN 978‐1‐59059‐ 9 ‐873‐3 (brožž.)1‐59059‐8 873‐3 (chybn né)978‐1‐430 02‐ 03 338‐4 (e‐knih ha) Algoritmizace / Jana Pšenčíková. ‐ Vyd d. 1.. ‐ Kralicce na Hané : Computer M Media, c2007 ‐ 12 28 s. : il. ISBN N 978‐80‐866 686‐80‐6 (v kknize neuved deno : brož.)80‐86686‐80 0‐9 (chybné) Algoritmy a datové d struktury / Břetisslav Krček, Ivan I Kolomaazník. ‐ Verzze 27.3.2007 7. ‐ Osstrava : VŠB ‐ Technická univerzita O Ostrava, [200 07?] ‐ 1 elektronický opticcký disk (CD‐‐R) : b barev. ISBN 9 978‐80‐248‐1 1306‐6 (CD‐R R) Algoritmy a šttruktúry údaajov [Wirth, 1989] / Nikklaus Wirth ; [z anglickéh ho originálu ... prreložil Pavol Fischer]. ‐ 2. vyd.. ‐ Brattislava : Alfa,, 1989 ‐ 481 s. : il. ISBN 80‐05‐00153 3‐3 (váz.) Karel Voráče ek]. ASSP.NET 2.0 : programujeme profesionálně / Bill EEvjen ... [et aal. ; překlad K ‐ V Vyd. 1.. ‐ Brn no : Computeer Press, 200 06 ‐ 1224 s. : il. ISBN 80‐251‐1286‐1 (vváz.) ASSP.NET 4 a C# C 2010 : tvvorba dynam mických strán nek profesio onálně. Knihaa 1 / Matthe ew M MacDonald, A Adam Freeman, Mario Szzpuszta ; [přřeklad Jan Po okorný]. ‐ Vyyd. 1.. ‐ Brno : Zo oner Press, 2 2011 ‐ 880 s. : il. ISBN 978 8‐80‐7413‐13 31‐8 (váz. ASSP.NET 4 a C# C 2010 : tvvorba dynam mických strán nek profesio onálně. Knihaa 2 / Matthe ew M MacDonald, A Adam Freeman, Mario Szzpuszta ; [přřeklad Jan Po okorný]. ‐ Vyyd. 1.. ‐ Brno : Zo oner Press, 2 2011 ‐ 700 s. : il. ISBN 978 8‐80‐7413‐14 45‐5 (váz
Po odmíněné vyykonávání a rrozvětvení
1 Podm 14 míněné vvykonávvání a ro ozvětve ení Ú ÚVOD Do oposud kdyžž jsme do těěla metody zapsali z nějakké příkazy, věděli v jsme, žže se všechn ny vyykonají a že sse vykonají ssekvenčně pěěkně jeden po druhém v zzapsaném po ořadí. Jedino ou výýjimkou bylyy havarijní situace, s při kterých se přeskočily všechny zbýývající příkazzy po okusného blo oku. Někdy však nechceeme za všecch okolností provést všeechny příkazzy, něěkdy chcemee vykonáváníí určité části kódu něčím podmínit. A A právě tím sse zabývá tatto ka apitola. Krom mě podmíněěného vykon návání se v ní seznámítte také s úzzce souvisejíící ottázkou rozvěětvení progra amu. Rozvěttvení znamená, že se něěkdy vykonává jedna čá ást kó ódu (jedna věětev) a jindy část jiná (drruhá větev). . CÍÍLE KAPITOLY Y Po o prostudová ání této kapiitoly a vypra acování úkollů budete UM MĚT: Vytvořřit program, který bude alternativně ě provádět rrůznou činno ost na základ dě různýcch vstupních údajů nebo na základě p průběhu výp počtu Po o prostudová ání této kapiitoly a vypra acování úkollů ZÍSKÁTE: Potřeb bné znalosti, jakým způ ůsobem se provádí p větvvení program mu a jaký má m smysl.. Přehleed relačních operátorů, o operátorů, ktteré slouží k porovnávání hodnot. Po o prostudová ání této kapiitoly a vypra acování úkollů BUDETE SC CHOPNI: Vytvořřit program, který reagujje na měnící se podmínky během výp počtu nebo n na změnu u zadání od u uživatele.
1 191
modulu tvůrcee systému
14 4.1 Podmííněné vyko onávání Po odmíněné vyykonávání částí kódu sii ukážeme na n programu u zobrazenéém na obrázzku 13 3.1. Program m kreslí obrazzec, jenž se může sestávvat z kříže, čttverce a kružžnice. To, jesstli see příslušná část č obrazcee na monito oru objeví, řídí ř uživatel pomocí tříí zaškrtávacíích po olíček. Kříž, rresp. čtverecc či kružnice, se vykreslí je en za podmíínky, že je přříslušné políččko zaaškrtnuté. OBRÁZEK 13.1
P Podmíněné k kreslení
e evidentně v obsluze události Paint Přřemýšlejme, jak program sestavit. Jádro bude paanelu. V ní budou všech hny kreslicí příkazy, jejich vykonáváání však bud de podmíně ěno stavem zaškrtávacích políček, jak ukazzuje vývojovvý diagram n na Obr. 75. V Vyhodnocováání po odmínek se vve vývojovýcch diagramecch vyznačuje pomocí kosočtverců. OBRÁZEK 13.2
V Větvení prog gramu
Po odmíněné vyykonávání a rrozvětvení
Ob brazec v pan nelu musí reagovat na zaaškrtávací po olíčka. Když uživatel „fajfkuje" čtvere ec, musí se objevvit čtverec. Když uživatel „fajfku" zruší, z musí čtverec č zmizzet. Z hledisska prrogramu to znamená, z žee kdykoli se stav zaškrtn nutí některého políčka zzmění, je tře eba ob brazec překreslit. Budou se tedy obslluhovat události Checked dChanged po olíček. Obslu uha bu ude společnáá pro všechna políčka a jeediné, co se v ní provedee, bude překrreslení panelu. To omu, co jsm me si řekli, můžeme užž částečně dát podobu u programu.. Nebude sice ko ompletní, alee už aspoň bu udeme mít n něco v ruce. Pro nový pro ojekt „Podmííněné kreslení" přřipravte uživvatelské rozh hraní se třem mi políčky a a jedním panelem (Obr.. 74). Ovládací prrvky pojmenujte políčkoK Kříž, políčkoČ Čtverec, políčko‐ Kružnice a panel.
14 4.2 řídicí kkonstrukce e IF K zápisu podm míněného vyykonávání čáásti kódu slouží v jazyce C# řídicí kon nstrukce if. JJejí syyntaxe vypad dá následovn ně (existují dvvě varianty): if (pod dmínka) příkaaz neebo if (pod dmínka) { příkaz1 příkaz2
1 193
modulu tvůrcee systému
… } Prrvní zápis po očítač přečte „Vykonej přříkaz, pokud je splněna p podmínku Drruhou varian ntu přřečte „Vykon nej všechny p příkazy v blo oku, pokud je e splněnu po odmínka." Vaarianty se te edy lišší tím, že kdyyž chcete po odmíněně vyykonat více pil kazů, mu usíte je uzavřřít do bloku. V přřípadě, že po odmínka spln něna není, žáádný z podmiňovaných přříkazů se nep provede. Jak správně zaapisovat podmínky, uvádí následující pravidlo: Jako podmínkka se v konsstrukci if používá promě ěnná, vlastno ost nebo výýraz typu bo ool. Po odmínka se p považuje za ssplněnou, má‐li proměnn ná/vlastnost//výraz hodno otu true.
14 4.3 Dokon nčení progrramu Podm míněné kre eslení Vyybaveni znallostmi řídicí konstrukce if můžeme metodu panel_Paint uvvést do fináální po odoby. Ukazuje ji Výpis 3 36. Než proggram opustím me, rozeberme si ještě p přesný význaam záápisu pro pod dmíněné kreeslení čtvercee (například): if (políčkoČtveerec.Checked d) p.DrawRectangle(Pens.Co ornflowerBlu ue, 0, 0, šířkaa, výška); kp Po očítač bude ttyto řádky vyyhodnocovatt následovně ě: •
•
Podíváá se na hodn notu vlastnossti Checked p pro políčkoČttverec. o Předpokláádejme, že políčko p je zaaškrtnuto. Vlastnost Cheecked má te edy hodnotu ttrue. o Vlastnost Checked tvo oří podmínku u. Jelikož má hodnotu tru ue, považuje se u. podmínkaa za splněnou o Vykoná see tedy příkaz kp.DrawRecctangle ..., čtverec se vykkreslí. V příp padě, že políččko zaškrtnutto není, má vvlastnost Checked hodno otu false. o Podmínkaa se tudíž povvažuje za nessplněnou… o a příkaz kp p.DrawRectaangle se nevyykoná. Čtverec se nevykrreslí.
14 4.4 Rozvěttvení proggramu Prroblematiku rozvětvení programu budeme op pět studovatt na prakticckém příklad du. Bu udeme vytváářet jednodu uchou hru hádání h čísla (Obr. 76). Po P stisku tlačítka „Myslii si (n nová hra)" si počítač „bud de myslet" nějaké číslo vv rozmezí 1 aaž 5. Úkolem uživatele po oté bu ude myšlenéé číslo hádaat. Svůj odh had zapíše do d textovéh ho pole a sstiskne tlačíttko „H Hádám". Poččítač poté vyh hodnotí, jesttli uživatel myšlené číslo uhodl či niko oli. Po očítač porovvná hádané číslo č s číslem m, které si myslí, m a podle toho, jesttli se rovnajíí či nikoli, oznámíí uživateli, bu uď že trefil, nebo že má hádat dál. V Vykoná se bu uď jedna, ne ebo drruhá alternattiva. OBRÁZEK 13.3
Ú Úplný podm íněný příkazz
Po odmíněné vyykonávání a rrozvětvení
V reakci na stiisk tlačítka „Mysli si" se ttedy vygeneruje číslo a to číslo se něěkam uloží, aaby ho o bylo pozděěji možno porovnávat s s odhadem uživatele. u „N Někam" = „d do proměnné", saamozřejmě. B Bude to prom měnná člensská, protože potřebujeme, aby tam ččíslo „vydrželo" po o celou dobu u hry.
14 4.5 Řídicí kkonstrukce e IF‐ELSE k zápisu rozvěětvení progrramu slouží v jazyce C# # řídící konsttrukce if‐else. Její syntaaxe vyypadá násled dovně: if (pod dmínka) akcee1 else akce2 kd de akce1 a akce2 jsou buď samosstatné příkazzy ukončenéé středníkem m, nebo blo oky přříkazů ve složených závo orkách. Úplně stejně jako o u konstrukkce if. Úplněě stejné je taaké prravidlo pro záápis podmínek. Výýše uvedenýý zápis řídíící konstrukkce if‐else počítač přeečte: „Jestližže je splně ěna po odmínka, vykkonej příkazy akce1 (tzv. větev if). Je estliže podm mínka plněnaa není, vykon nej přříkazy akce2 (tzv. větev eelse)."
14 4.6 Relačn ní operátorry Zaatímco v programu Podm míněné kresleení podmínkku tvořila vlastnost typu bool (vlastno ost Ch hecked), tvořří v programu Hádání čísla podmínku u celý výraz typu bool: if (hád danéČíslo == myšlenéČíslo) „V Výraz typu bool" znamen ná výpočet, jjehož výsled dkem je hodnota typu bo ool ‐ buď tru ue, neebo false. V tomto přípaadě se hodno ota proměnn né hádanéČííslo porovnává s hodnottou prroměnné myyšlenéČíslo. Jestliže se obě hodnotty rovnají, jee výsledkem m vyhodnoce ení výýrazu hodnotta true, jestliiže se hodno oty nerovnajíí, je výsledkeem false.
1 195
modulu tvůrcee systému
V programu je použit relační operáto or „rovná se e", který se v jazyce C# zapíše dvěm ma ovnítky, což je j odlišnost oproti zápissu v matematice. Dávejtte pozor, ab byste na dru uhé ro ro ovnítko nezaapomněli (čaastá chyba začátečníků!), osamoceené rovnítko o ne zname ená po orovnání, nýýbrž přiřazen ní. Kromě op perátoru „rovvná se" je možné m použítt i další znám má po orovnání. Jejich přehled n najdete v tab bulce. TABULKA A 13.1
Relační ope erátory V V matematic ce V C# a a = b
a == b
a a±b
a ! b
a a
a < b
a a
a <= b
a a> b
a > b
a a>b
a >= b
14 4.7 Vnořené větveníí Po ožadavky na rozvětvení p programu m mohou být ně ěkdy docela komplikovan né. Konstrukkce if, resp. if‐elsee lze do sebee vnořovat, aa tak vytváře et další větvení již rozvěětveného kód du. mu se tak děli do dalších „větviček". Věětve program
Po odmíněné vyykonávání a rrozvětvení
ZAPAMATTUJTE SI • • • • • • • •
povinně
Abycchom mohli rozhodnout,, která část programu (kkterá větev programu) se s má vvykonat, použijeme větveení programu u. Neúp plné větvení má jen jedn nu větev, kte erá se na záákladě hodno oty podmínkky buď vvykoná, nebo nevykoná. V jazyce C# má taato řídící kon nstrukce tvarr If (po odmínka) přííkaz. Poku ud potřebujeeme rozhodnout mezi dvěma d alterrnativami, paak použijem me úplnéého větvení. V jazyce C# má taato řídící kon nstrukce tvarr If (po odmínka) přííkaz1 else přííkaz2. Podm mínky lze vyjjádřit pomoccí relačních o operátorů, kkteré slouží kk porovnáván ní hodn not výrazů
KONTROLNÍÍ OTÁZKY
povinně
Jak vv jazyce C# zaapíšete podm míněné prove edení příkazu. Co jee úplné větveení programu u. Co to o jsou relační operátory.
1 197
modulu tvůrcee systému
S SHRNUTÍ KA PITOLY
Neúp plné větvení má jen jedn nu větev, kte erá se na záákladě hodno oty podmínkky buď vvykoná, nebo nevykoná. V jazyce C# má taato řídící kon nstrukce tvarr If (podmínkka) příkaz. Poku ud potřebujeeme rozhodnout mezi dvěma d alterrnativami, paak použijem me úplnéého větveníí. V jazyce C# C má tato řídící konstrrukce tvar If (podmínkaa) příkaaz1 else příkaaz2. Podm mínky lze vyjjádřit pomoccí relačních o operátorů, kkteré slouží kk porovnáván ní hodn not výrazů. STTUDIJNÍ LITEERATURA Moderní proggramování : učebnice pro M p začátečníky / Radeek Vystavěl. ‐ Ondřejovv : M Moderní prog 007 ‐ 193 s. :: il. ISBN 978 8‐80‐903951‐‐0‐7 (brož.) ramování, 20 Moderní proggramování : sbírka úloh M h k učebnici pro začáteečníky / Rad dek Vystavěll. ‐ On ndřejov : Mo oderní prograamování, 2007 ‐ 137 s. : il. ISBN 978‐80‐903951‐1 1‐4 (brož.) Acccelerated C# 2008 / Treey Nash ; [fo oreword by W Wes Dyer]. ‐ Berkeley : A Apress, c2007 ‐ xxxviii, 510 s. : il. ISBN 978‐1‐59059‐ 9 ‐873‐3 (brožž.)1‐59059‐8 873‐3 (chybn né)978‐1‐430 02‐ 03 338‐4 (e‐knih ha) Algoritmizace / Jana Pšenčíková. ‐ Vyd d. 1.. ‐ Kralicce na Hané : Computer M Media, c2007 ‐ 12 28 s. : il. ISBN N 978‐80‐866 686‐80‐6 (v kknize neuved deno : brož.)80‐86686‐80 0‐9 (chybné) Algoritmy a datové d struktury / Břetisslav Krček, Ivan I Kolomaazník. ‐ Verzze 27.3.2007 7. ‐ Osstrava : VŠB ‐ Technická univerzita O Ostrava, [200 07?] ‐ 1 elektronický opticcký disk (CD‐‐R) : b barev. ISBN 9 978‐80‐248‐1 1306‐6 (CD‐R R) Algoritmy a šttruktúry údaajov [Wirth, 1989] / Nikklaus Wirth ; [z anglickéh ho originálu ... prreložil Pavol Fischer]. ‐ 2. vyd.. ‐ Brattislava : Alfa,, 1989 ‐ 481 s. : il. ISBN 80‐05‐00153 3‐3 (váz.) Karel Voráče ek]. ASSP.NET 2.0 : programujeme profesionálně / Bill EEvjen ... [et aal. ; překlad K ‐ V Vyd. 1.. ‐ Brn no : Computeer Press, 200 06 ‐ 1224 s. : il. ISBN 80‐251‐1286‐1 (vváz.) ASSP.NET 4 a C# C 2010 : tvvorba dynam mických strán nek profesio onálně. Knihaa 1 / Matthe ew M MacDonald, A Adam Freeman, Mario Szzpuszta ; [přřeklad Jan Po okorný]. ‐ Vyyd. 1.. ‐ Brno : Zo oner Press, 2 2011 ‐ 880 s. : il. ISBN 978 8‐80‐7413‐13 31‐8 (váz. ASSP.NET 4 a C# C 2010 : tvvorba dynam mických strán nek profesio onálně. Knihaa 2 / Matthe ew M MacDonald, A Adam Freeman, Mario Szzpuszta ; [přřeklad Jan Po okorný]. ‐ Vyyd. 1.. ‐ Brno : Zo oner Press, 2 2011 ‐ 700 s. : il. ISBN 978 8‐80‐7413‐14 45‐5 (váz
Cyyklus
1 Cyklus 15 Ú ÚVOD V řadě případ dů je potřeba a mnohokrátt provést steejnou nebo podobnou p čiinnost by byylo neepraktické vypisovat v třeeba tisíc tém měř stejnýcch příkazů za z sebou. N Navíc mnohd dy do opředu ani přesný počet opakování n není znám. Siituace tohotto druhu řeším íme s použitíím cyyklu. Použittí cyklů je v program mování nattolik mnoho ostranné, žee v každém m prrogramovacíím jazyce exiistuje několikk možností, ja ak cykly zapiisovat. CÍÍLE KAPITOLY Y Po o prostudová ání této kapiitoly a vypra acování úkollů budete UM MĚT: Použítt základní tvaary cyklu pro o opakované činnosti pro ogramu. Po o prostudová ání této kapiitoly a vypra acování úkollů ZÍSKÁTE: Znalossti, potřebnéé pro vypraco ování programy, které op pakuje určito ou činnost. Po o prostudová ání této kapiitoly a vypra acování úkollů BUDETE SC CHOPNI: Vytvořřit například d pro program, který vyttvoří stupnicce a podobné opakující se s geomeetrické útvarry.
1 199
modulu tvůrcee systému
15 5.1 řídicí kkonstrukce e FOR Ob becná syntaxxe konstrukcce for pro op pakování jedn noho příkazu u vypadá taktto: fo or (inicializacee; podmínkaa_opakování;; aktualizace) příkaz OBRÁZEK 15.1
C Cykly
Prro lepší poro ozumění si m můžeme spolu projít časo ovou posloup pnost vykonáávání obslužžné metody o o o o
o
o
Získej kreslicí plochu; maximální ho odnoty pro so ouřadnice x aa y; Urči m Proměěnnou počettTeček nastav na nulu; Jelikožž 0 < 1000, vvykonávej cykklus (0 je hod dnota proměěnné početTeček); o Vygenerujj souřadnice x a y a podle e nich nakressli tečku; o početTečeek zvětši o jedničku (nováá hodnota bu ude 0 + 1 = 1 1); Jelikožž 1 < 1000, vvykonávej cykklus (1 je hod dnota proměěnné početTeček); o Vygenerujj souřadnice x a y a podle e nich nakressli tečku; o početTečeek zvětši o jedničku (nováá hodnota bu ude 1 + 1=2); Jelikožž 2 < 1000, vvykonávej cykklus (2 je hod dnota proměěnné početTeček); o Vygenerujj souřadnice x a y a podle e nich nakressli tečku;
Cyyklus
o
početTečeek zvětši o jedničku (nováá hodnota bu ude 2 + 1= 3);
attd… až o
o
0, vykonávej cyklus (999 jje hodnota p proměnní početTeček); Jelikožž 999 < 1000 o Vygenerujj souřadnice x a y a podle e nich nakressli tečku; o početTečeek zvětši o jedničku (nováá hodnota bu ude 999 + 1 = 1000) Jelikožž neplatí 100 00 < 1000, cyyklus ukonči a pokračuj p příkazy za ním m,
Po odobnou přeedstavu o čaasové poslou upnosti vyko onávání bystte měli mít, pokaždé kd dyž bu udete prograamovat cyklu us. Zkuste si představit sami sebe v rroli počítače a přemýšlejte, jak byste příkazy vykonáávali. Jako kdybyste ne evěděli, co má program dělat. Jaako kd dybyste uměli pouze bezmyšlenkovitě vykonat, co o příkazy přeedepisuji
15 5.2 Stupniice Cykly se dají obzvlášť výh hodně použítt ke kresleníí pravidelnýcch obrazců. Ukážeme si to naa programu, který ve svém okně nakrreslí pravidelnou soustavvu svislých čaar. Naavrhneme krreslení čar v rozestupech h 10 pixelů, p přičemž prvn ní čára se bud de nacházet na x = 50 a poslední na x = 250. Ve sviislém směru budou čáryy začínat na horním okrraji 0 pixelů níže (y = 100) kliientské oblasti (y = 50) a končit o 100 Ossu vykreslíme vodorovněě od x‐ové so ouřadnice 40 0 a budeme kkončit se sou uřadnicí x=26 60, Y‐‐ová souřadn nice bude nastavena n naa hodnotu 75. 7 Pro svislé čáry se b bude opakovvat vo olání metodyy DrawLine, přičemž v paarametrech by se předávvaly souřadn nice koncovýých bo odů jednotlivvých čar. Naa základě ob becného vyjádření lze jiiž snadno zaapsat přísluššný cyyklus. Ob bsluhu událo osti Paint zachycuje Výp pis 42. Jádro programu tvoří t dva řád dky zdrojové ého kó ódu! V cyklu for se mění hodnota pro oměnné x od d 50 do 250 ss krokem 10.. V těle cyklu u je tato hodnota vvyužívána prro kreslení jeednotlivých ččar. VÝPIS 1 12.1
Vykreslení sstupnice
private vo oid oknoProggramu_Paintt(object send der, PaintEveentArgs e) {
Grap phics kp = e.G Graphics; for (int x = 50; x <<= 250; x += 10) kp.DrawLLine(Pens.Co ornflowerBlue, x, 0, x, 100 0); ns. Blue, 40, 0 0, 75, 100); kp.DrrawLine(Pen } } ZAPAMATTUJTE SI
povinně
K opakovanéému vykonávvání příkazu n K nebo celého o bloku příkazů slouží řídíící konstrukcce c cyklů. Z Základním dr ruhem cyklujje cyklus for,, který má v jjazyce C# syn ntaxi
2 201
modulu tvůrcee systému
for (inicializace; p podmínka_opakování; akktualizace) přříkaz; Před vstupem P m do cyklu se vykoná příkaz zapsaaný na místě inicializacee. V cyklu se s o opakovaně p provádí příkaaz (nebo blo ok příkazů ve v složených h závorkách) tak dlouho o, d dokud je pod dmínka_opakování splněěna. Po provvedení příkazu, resp. přííkazů v bloku u, s se ještě poka aždé provedee příkaz zapssaný na místě ě aktualizacee. T Typické použ žití cyklu for jje cyklus s říd dící proměnn nou, napříklaad takovýto: f for (int x = 50 0; x <= 250; xx += 10) kp.DrrawLine(Pen ns.CornfloweerBlue, x, 0, xx, 100). KONTROLNÍÍ OTÁZKY
povinně
Co jee to cyklus. Jaké je nejběžnějjší využití cykklu v program mu. Uveď ďte příklad cyyklu‐
Cyyklus
S SHRNUTÍ KA PITOLY
Pro o opakovanou činnost se v programu využívají cyklyy. Dají sse použít nap př. pro vykreeslování podobných obraazců. Hojně používaným cyklem je v jazyce C# ccyklus for STTUDIJNÍ LITEERATURA Moderní proggramování : učebnice pro M p začátečníky / Radeek Vystavěl. ‐ Ondřejovv : ramování, 20 M Moderní prog 007 ‐ 193 s. :: il. ISBN 978 8‐80‐903951‐‐0‐7 (brož.) Moderní proggramování : sbírka úloh M h k učebnici pro začáteečníky / Rad dek Vystavěll. ‐ On ndřejov : Mo oderní prograamování, 2007 ‐ 137 s. : il. ISBN 978‐80‐903951‐1 1‐4 (brož.) Acccelerated C# 2008 / Treey Nash ; [fo oreword by W Wes Dyer]. ‐ Berkeley : A Apress, c2007 ‐ xxxviii, 510 s. : il. ISBN 978‐1‐59059‐ 9 ‐873‐3 (brožž.)1‐59059‐8 873‐3 (chybn né)978‐1‐430 02‐ 03 338‐4 (e‐knih ha) Algoritmizace / Jana Pšenčíková. ‐ Vyd d. 1.. ‐ Kralicce na Hané : Computer M Media, c2007 ‐ 12 28 s. : il. ISBN N 978‐80‐866 686‐80‐6 (v kknize neuved deno : brož.)80‐86686‐80 0‐9 (chybné) Algoritmy a datové d struktury / Břetisslav Krček, Ivan I Kolomaazník. ‐ Verzze 27.3.2007 7. ‐ Osstrava : VŠB ‐ Technická univerzita O Ostrava, [200 07?] ‐ 1 elektronický opticcký disk (CD‐‐R) : b barev. ISBN 9 978‐80‐248‐1 1306‐6 (CD‐R R) Algoritmy a šttruktúry údaajov [Wirth, 1989] / Nikklaus Wirth ; [z anglickéh ho originálu ... prreložil Pavol Fischer]. ‐ 2. vyd.. ‐ Brattislava : Alfa,, 1989 ‐ 481 s. : il. ISBN 80‐05‐00153 3‐3 (váz.) Karel Voráče ek]. ASSP.NET 2.0 : programujeme profesionálně / Bill EEvjen ... [et aal. ; překlad K ‐ V Vyd. 1.. ‐ Brn no : Computeer Press, 200 06 ‐ 1224 s. : il. ISBN 80‐251‐1286‐1 (vváz.) ASSP.NET 4 a C# C 2010 : tvvorba dynam mických strán nek profesio onálně. Knihaa 1 / Matthe ew M MacDonald, A Adam Freeman, Mario Szzpuszta ; [přřeklad Jan Po okorný]. ‐ Vyyd. 1.. ‐ Brno : Zo oner Press, 2 2011 ‐ 880 s. : il. ISBN 978 8‐80‐7413‐13 31‐8 (váz. ASSP.NET 4 a C# C 2010 : tvvorba dynam mických strán nek profesio onálně. Knihaa 2 / Matthe ew M MacDonald, A Adam Freeman, Mario Szzpuszta ; [přřeklad Jan Po okorný]. ‐ Vyyd. 1.. ‐ Brno : Zo oner Press, 2 2011 ‐ 700 s. : il. ISBN 978 8‐80‐7413‐14 45‐5 (váz
2 203
modulu tvůrcee systému
1 Sítě a bezpeččnost 16 Ú ÚVOD Po očítače jsou již nezbytno ou součástí d dnešního života. Současn ná generace a zvláště paak firrmy se bez n nich téměř neobejdou. Stejně tak dů ůležité je přip pojení k Inteernetu a právvě vee firmách prropojení vešškerých poččítačů a zaříízení sítí. Sp právně zapojená a dobřře fu ungující počíttačová síť znaačně usnadň ňuje a zrychlíí práci. Po očítačové síttě prošly za posledních padesát p let obrovským o v vývojem. Začčaly se vyvíje et přředevším kvvůli usnadněění práce a možnosti sp polupráce více v uživatelů. Bylo třeb ba zaajistit aktuálnost dat prro všechny uživatele, kteří k s daty pracují, a tto je důležitté přředevším ve firmách, pro otože počítaačové sítě firrmám šetří nejenom n čass, ale i penízze dííky možnosti sdílení zařízení. . CÍÍLE KAPITOLY Y Po o prostudová ání této kapiitoly a vypra acování úkollů budete UM MĚT: Navrhnout jednod duchou počíttačovou síť. Po o prostudová ání této kapiitoly a vypra acování úkollů ZÍSKÁTE: Získáte, přehlede jjednotlivých druhů sítí a jejich kompo onent. Po o prostudová ání této kapiitoly a vypra acování úkollů BUDETE SC CHOPNI: Uplatn nit základní p principy bezp pečnosti při práci v síti ¨
Síttě a bezpečn nost
16 6.1 Počítačové sítě aa komunikační techn nologie Informačními a komunikačními tech hnologiemi rozumíme r veškeré tech hnologie, kte eré lid dem umožňu ují komunikaaci a práci s informacem s mi. Jsou to hardwarovéé a softwaro ové prrostředky um možňující sběěr, přenos či zpracování d dat.
16 6.2 Počítačové sítě V dnešní doběě skoro každ dý z nás bere osobní počítač p za saamozřejmostt. Najdeme jej tééměř v každéé domácnostti či podniku u. Pokud všaak máme více počítačů, začínáme ře ešit ud držení aktuálnosti dat naa všech počíttačích součassně, přenášeení a tisk dokkumentů apo od. Řeešením těch to problém mů je vzájem mné propojen ní počítačů, tedy vytvoření počítačo ové síttě. Počítačovvou sítí nazývváme propojjení dvou či vvíce počítačů ů za účelem vvýměny dat. Skkupina prvků může být považován na za síť, pokud p obsaahuje násled dující atributy: prropojovací so oftware, síťo ové systémyy a síťové prrvky (jako naapříklad přepínače, fyziccká přřenosová média a adreesní systém). Každá po očítačová sííť se pak skládá z těch hto ko omponent:
• Propojené systémy • Propojovaccí software • Síťový harddware • Fyzická přeenosová méédia • Adresní systém pro vššechny výšee uvedené koomponenty1
Výýznam sítíí Počítaačové sítě jsou na svěětě od toho o, aby svým m uživatelům m poskytovaaly takzvané síťovvé služby. Neejrozšířenějšíími typy síťových aplikaccí jsou soubo orové, tiskové é a 2 webové službyy, elektronická pošta a služby přenossu souborů.
So ouborové sslužby Uživattel si často aani neuvědom muje, že téh hle služby využívá. Soubo ory, se kterýými m serveru, kde k je může číst i do niich prracuje, jsou uloženy na takzvaném souborovém zaapisovat, aniž by si je musel m kopírovvat do svého počítače. Díky tomu může s jedním so ouborem praacovat více u uživatelů. Mů ůže ovšem n nastat probléém, pokud cchtějí zapisovvat v ttu samou chvíli do stejnéého souboru.
Tiiskové služžby Stejněě jako u sou uborových služeb, jsou ty t tiskové prro uživatele transparenttní. So oubor k vytišštění pošle na n tiskový seerver, ke kte erému je přřipojena tiskárna, a ten jej po ošle do tiskáárny. Díky tomu, t napříkklad, nemussí mít každýý pracovník ve firmě svvou tisskárnu.
1
SOSINSKY, Barrie. Mistroovství - počítaačové sítě. Vyd dání první. Brrno : Computeer Press, a. s., 20010. Úvod do sítí, s. 27-28. ISBN 978-800-251-3363-7. 2 O ODOM, Wenddell. Počítačové sítě bez přeedchozích zna alostí. Dotisk prvního p vydánní. Brno : Coomputer Presss, a. s., 2007. Proč P vlastně síť s existuje, s. 48. ISBN 80--251-0538-5.
2 205
modulu tvůrcee systému
W Webové slu užby Na serveru je uložženo množsttví různých informací, jaako například d text, grafika, an nimace, videeo nebo zvukové klipy. Koncový uživatel odešlee požadavekk na informaace 3 z w webového prohlížeče; seerver mu je vvrátí a webovvý prohlížeč zobrazí.
Ellektronickáá pošta Uživattel napíše zprávu z ve svém s e‐mailovém klienttu a odešlee konkrétním mu přříjemci.
Sllužby přenosu soubo orů Na serveru jsou umístěny u urččité soubory,, které si uživatelé jiných (klientskýcch) po očítačů mohou kopírovatt k sobě na m místní pevnýý disk, nebo naopak přep pisovat soub bor 4 naa serveru novvou verzí z m místního pevn ného disku. Hlavníími výhodam mi počítačovýých sítí je mo ožnost sdílen ní dat a jejich h snadný eno os, dílení hardwaarových prostředků, jako je napříklaad tiskárna, rychlá komu unikace v sítti a sd occhrana dat, kkdy data jsou u uložena naa hlavním serveru, který může sloužit nejen k jejiich záálohování.
16 6.3 Topolo ogie sítě Topolo ogie sítě udáává způsob vvzájemného rrozložení prvvků sítě a jejíí strukturu. JJde o zachycení fyyzické a logické podoby síítě. Barrie Sosinsky vee své knize uvádí: u „Síť může m být possuzována z h hlediska fyziccké to opologie, kteerá se zabývvá vztahy mezi m fyzickým mi zařízenímii a prvky, nebo z hledisska logické topolo ogie, jejímž úkolem je popsat vztahy či hierarchii funkčnícch složek síítě. 5 Hyybridní topologie pak kom mbinuje předchozí dva tyypy do jediného obrazu ttopologie.“ Sběrniccová topolo ogie Spojujje dvě nebo více stanic. Je realizována pomocí kkabelu, na ktterý se stanice přřipojují odbo očovacími prrvky, což je například T‐konektor. T Z Zakončena je termináto ory, ktteré pohltí siignál, aby see nešířil dál p po síti. Data vyslána z jed dné stanice putují ke vše em stanicím připo ojeným ke sb běrnici, příjm me je ovšem m jen ta, kterré jsou určeny. To však síť zp pomalí a zbyttečně zatěžu uje. Za výhod dy sběrnicovvé topologie se dá považžovat snadnáá a neenákladná realizace. r Nevýhodu přředstavuje havárie h celéé sítě i při sebemenšším přřerušení sběrnice. Síť je značně omeezená a má m malou přeno osovou rychllost. Její výkkon s kkaždou dalšíí připojenou u stanicí klesá a zvyšuje e se možnosst poruch, kkteré se velice šp patně hledajíí.
3
O ODOM, Wenddell. Počítačové sítě bez přeedchozích zna alostí. Dotisk prvního p vydánní. Brno : Coomputer Presss, a. s., 2007. Proč P vlastně síť s existuje, s. 48. ISBN 80--251-0538-5. 4 O ODOM, Wenddell. Počítačové sítě bez přeedchozích zna alostí. Dotisk prvního p vydánní. Brno : Coomputer Presss, a. s., 2007. Proč P vlastně síť s existuje, s. 48. ISBN 80--251-0538-5. 5 S SOSINSKY, B Barrie. Mistroovství - počítaččové sítě. Vyd dání první. Brnno : Computerr Press, a. s., 20010. Úvod do sítí, s. 32. ISB BN 978-80-2551-3363-7.
Síttě a bezpečn nost
OBRÁZEK 13.1
S Sběrnicová t topologie
Zd droj: Vlastní zzpracování Hvězdicová topolo ogie připomíná hvvězdu. Skládáá se z jednottlivých kabelů, které vedou Svým zapojením p do o centrálního o rozbočovače, jímž všecchna procháázejí. Síť je m méně náchylná k chybám m a needochází zdee ke kolizím dat. Poruch ha na kabelu u vyřadí pou uze stanici, ke které ved de. Zb bytek sítě ted dy může dál bez problém mu fungovatt. Pád celé síítě způsobí tteprve poruccha ceentrálního ro ozbočovače. Přidání či odebrání stanice ze síítě je zde ttedy mnohe em jednodušší. Sn náze se v této o topologii h hledají i chyby a poruchy..
2 207
modulu tvůrcee systému
OBRÁZEK 13.2
H Hvězdicová t topologie
Stromo ová topolog gie Stromová topologgie se sklád dá z několika hvězdicovvých topologgií, které jssou vzzájemně pro opojeny aktiivními prvkyy. Funguje tedy naprossto stejně jjako topologgie hvvězdicová a p používá se přředevším ve velkých firm mách. OBRÁZEK 13.3
S Stromová top pologie
Síttě a bezpečn nost
Kruhovvá topologiee Stanicce jsou vzájeemně propojjeny tak, že tvoří uzavřeený kruh. Daata v síti puttují v kruhu, tedy od jedné staanice ke druh hé a číst je o opět mohou jjen ty, kterým jsou určen na. Sttanice jsou k síti připojeny stejně jako u sběrnicové top pologie. Výhodou kruho ové to opologie všakk je, že každ dá ze stanic ffunguje jako o repeater, tedy signál zeesiluje a possílá dáál. Dále již není n třeba sííť ukončovatt pomocí terrminátorů. Ale A výpadek jednoho uzzlu, stejně jako u ssběrnicové to opologie, znaamená pád ccelé sítě. Tato ssíť se realizujje pomocí teechnologie T Token ring, jejíž princip jje jednoduch hý. Vyysílat může p pouze stanicce, která vlasstní speciální paket nazýývaný token. Ten koluje ssítí (sttanice si ho o postupně předávají) a a v jednom okamžiku o m právo vyssílat jen jed má dna stanice. OBRÁZEK 13.4
K Kruhová top ologie
2 209
modulu tvůrcee systému
Logickáá topologie e Logickké topologie mapují trasu, kterou ab bsolvují datové pakety přři své cestě od uzzlu k uzlu. Logickou top pologii je mo ožné sestaviit pouze v p případě, že uzly v síti jssou do ostupné prosstřednictvím m protokolů p používaných k výměně dat. Je možnéé zakládat taaké 6 virtuální síťováá rozhraní.
16 6.4 Síťové é protokolyy Síťovýý protokol je norma psaná na papíře (resp. Textovvým editorem na počítačči). V Internetu see používají n normy nazývaané Requestt For Commeents – zkratkou RFC, kte eré see číslují průběžně od jedničky. Meezinárodní normalizační n í úřad (ISO)) normalizovval so oustavu prottokolů označčovaných jako ISO OSI. Další slovutnou organiizací vydávajjící no ormy v oblassti komunikací je ITU se s sídlem v Ženevě. Dále se setkám me s normaami vyydanými sdrružením elekktrotechnických inženýrů IEEE. Běžný uživatel se však mů ůže 7 do ostat pouze kk normám RFC, protože o ostatní organ nizace neposskytují své no ormy zdarmaa. Mnoho publikací s problematikou síťovýých protokolů přirovnávvá komunikaci mezi počítači ke komunikkaci dvou cizzinců, kdy každý umí jen svůj jazykk. Zdánlivě oba o cizzinci komunikují mezi sebou. Prravdou ale je, že informace přředávají svýým přřekladatelkám m a ty teprvee informaci p předají dál (vviz obrázek čč. 1.5). Počítaačové sítě využívají více vrstev, podle toho o jaké prottokoly použžijí. m TCP/IP a ISO/OSI. Protoko oly V Internetu see nejčastěji setkáme see síťovým modelem TC CP/IP mají čtyři vrstvy, ISO/OSI využívvají vrstev se edm. OBRÁZEK 13.5
T Třívrstvá kom munikační architektura
6
S SOSINSKY, B Barrie. Mistroovství - počítaččové sítě. Vyd dání první. Brnno : Computerr Press, a. s., 20010. Úvod do sítí, s. 39. ISB BN 978-80-2551-3363-7. 7 D DOSTÁLEK, Libor; KABE ELOVÁ, Alenna. Velký průvodce protokolly TCP/IP a syystémem DNS S. 2. aktualizovanéé vydání. Brnoo : Computer Press, a. s., 20 000. Síťové protokoly, s. 1.. ISBN 80-722 263223-4.
Síttě a bezpečn nost
Alena. Velkýý průvodce prrotokoly TCP Zd droj: DOSTÁLEK, Libor; KABELOVÁ, K P/IP a systém mem DN NS. 2. aktualizované vyd dání. Brno : C Computer Prress, a. s., 20 000. Síťové p protokoly, s. 2. ISBN 80‐7226‐‐323‐4.
Re eferenční model ISO O/OSI Mezin národní norm malizační úřaad práci v ssíti rozdělil do d sedmi sp polupracujícíích v je vrstva v fyzickáá, dále vrstvva linková, síťová, transp portní, relačční, vrrstev. První vrstvou prrezentační a poslední apllikační vrstvaa. Každá vrstvva komuniku uje jen s vrstvou pod seb bou a nad sebou.. Spodní vrsstva předá úkol vyšší vrstvě, v ta jeej zpracuje a předá daalší naadřazené vrsstvě. Horizon ntálně mohou vrstvy kom munikovat jeen se stejnou u vrstvou v jiiné sítti. V praxi see však často o setkáme s tím, že síťo ové protokoly pracují naa více vrstváách záároveň. á vrstva Fyzická Je nejn nižší vrstvou ISO/OSI. Fyzzická vrstva jje odpovědn ná za přenos bitů z místa na uje elektrickéé (či optické), mechanickké a funkční vlastnosti: jaakým signále em místo. „Popisu ná začátek bitu, jaký je tvvar je reprezentovvána logická jednička, jakk přijímací sttanice rozezn 8 onektoru, k ččemu je kterýý vodič v kab belu použit…“ ko Na fyzzické vrstvě pracují kabeely a optickáá vlákna, rád diová komunikace, ale taaké zaařízení sloužící k připojen ní. á vrstva Linková Linkovvá vrstva zajjišťuje v příp padě sériovýcch linek vým měnu dat meezi sousedníími po očítači a v přřípadě lokáln ních sítí výměěnu dat v rám mci lokální síítě. Základní jednotkou p pro přřenos dat jee na linkovéé vrstvě dattový rámec. Datový rámec se skláádá ze záhlaaví (H Header), přenášených dat (Payload)) a zápatí (TTrailer). Dattový rámec nese v záhlaaví lin nkovou adresu příjemce,, linkovou ad dresu odesíllatele a další řídící informace. V záp patí 8
H HORÁK, Jarooslav; KERŠL LÁGER, Milann. Počítačové sítě pro začínnající správce.. 3. akktualizované vydání. v Brno : Computer Press, a. s., 2006 6. Hardwarovvé prvky sítí, ss. 18. ISBN 80 02551-0892-9.
2 211
modulu tvůrcee systému
neese mj. obvvykle kontrolní součet z přenášenýc z ch dat. Pom mocí něho leez zjistit, zd dali needošlo při přřenosu k porrušení dat. V V přenášenýcch datech je pak zpravidla nesen pakket 9 síťťové vrstvy. Síťová vrstva uje spojení a a směrováníí mezi počítaači nebo sítěěmi, které n nejsou spoje eny Zajišťu přřímo, a vyhleedá nejvhodn nější cestu prro spojení. Transp portní vrstvva Její prrací je rozděělit data na pakety p a opě ět je posklád dat. Přijímá data ze síťo ové vrrstvy, pakety správně seřřadí a potvrdí jejich přijettí. Relační vrstva nosu ukonču uje spojení. Může prováádět ověřováání Navazuje a po skkončení přen 10 užživatelů, zabeezpečení přísstupu k zařízzením… Prezentační vrstva a ntační vrstvva je zodp povědná zaa reprezenttaci a zabeezpečení dat. Prezen Reeprezentace dat může býýt na různých počítačích různá. Napřř. se jedná o problém, zd dali je nejvyšší bitt v bajtu zcela vlevo neb bo vpravo attp. Zabezpeččením se rozzumí šifrováání, 11 zaabezpečení in ntegrity dat, digitální pod depisování atd. Aplikačční vrstva Na ap plikační vrstvvě pracují už u konkrétní aplikace – software. Jee to napříkllad ený webový prohlížeč či e‐maailový klient a mnoho dalších. Umožňuje také ttřeba vzdále přřístup k tiskáárně. Na téh hle vrstvě taaké nalezneme největší množství p protokolů, jaako naapříklad pro otokol HTTP (Hypertext Transfer Protocol), FTP (File Tran nsfer Protoccol) prrotokol nebo o protokol PO OP (Post Office Protocol).
Re eferenční model TCP P/IP V mod delu TCP/IP známe pro formát přen nosu dat tři různé proto okoly. Protokkol TC CP (Transmisssion Contro ol Protocol) se zabývá založením z a fungováním m spojení mezi syystémy na In nternetu, zattímco nespo ojovanou kom munikaci popisuje proto okol UDP (Usser 9
D DOSTÁLEK, Libor; KABE ELOVÁ, Alenna. Velký průvodce protokolly TCP/IP a syystémem DNS S. 2. aktualizovanéé vydání. Brnoo : Computer Press, a. s., 20 000. Síťové protokoly, s. 3.. ISBN 80-722 263223-4. 10 HORÁK, Jarooslav; KERŠL LÁGER, Milaan. Počítačovéé sítě pro začínnající správcee. 3. akktualizované vydání. v Brno : Computer Press, a. s., 2006 6. Hardwarovvé prvky sítí, ss. 18. ISBN 80 02551-0892-9. 11 DOSTÁLEK, Libor; KABE ELOVÁ, Alenna. Velký průvvodce protokooly TCP/IP a ssystémem DNS NS. 2. aktualizovanéé vydání. Brnoo : Computer Press, a. s., 20 000. Síťové protokoly, s. 6.. ISBN 80-722 263223-4.
Síttě a bezpečn nost
Daatagram Pro otocol). Kon nečně třetí protokol IP (Internet Protocol) P deefinuje form mát paaketů při přeenosu sítí. Prrotokoly TCP a UDP operují na transp portní vrstvě, protokol IP P je 12 paak na úrovni síťové vrstvyy. OBRÁZEK 13.6
P Porovnání re eferenčních m modelů TCP//IP a ISO/OSI
droj: DOSTÁLEK, Libor; KABELOVÁ, K P/IP a systém mem Zd Alena. Velkýý průvodce prrotokoly TCP DN NS. 2. aktualizované vyd dání. Brno : C Computer Prress, a. s., 20 000. Síťové p protokoly, s. 2. ISBN 80‐7226‐‐323‐4.
Sííťový hardw ware Síťovýým hardwareem nazývám me technické é prostředkyy, které zajiššťují propoje ení prrvků sítě a jso ou tedy nezb bytné pro její činnost.
Se erver Serverr je softwaro ový program,, který poskyytuje službu jjinému počíttači přes síťo ové sp pojení. Serveery mohou běěžet na místním počítačii nebo na vzd dáleném sysstému, ale vžždy
12
SOSINSKY, Barrie. Mistroovství - počítaačové sítě. Vydání první. Brrno : Computeer Press, a. s., 20010. Síťový záásobník, s. 54.. ISBN 978-800-251-3363-7.
2 213
modulu tvůrcee systému
musí existovatt softwarováá rutina poskkytující danou služby jinýým systémům m v síti, nebo o ji 13 musí po síti aleespoň nějak zprostředko ovat. Serverrem může být také počíítač, který je e nakonfigurován pro běěh jisté sdíle ené ap plikace nebo služby. Na vvětšině dneššních severů běží servero ový operačníí systém, kte erý 14 po odporuje posskytování serverové služby. Serverru, který nen ní nakonfigurován pro určitou funkci, říkáme serrver obecného zaaměření. Ostatní jsou určeny u svou hlavní funkkcí. Nejčastěějšími typy, se kterými se můžeme setkaat, jsou již zm míněné soub borové a tiskkové serveryy. Dále zálohovací serverr či prroxy server, který zprosstředkovává spojení s jinou sítí. Neebo také síťo ový a webo ový se erver a jiné.
Sííťové rozhrraní Síťovéé rozhraní jee hranice meezi dvěma rozdílnými r tyypy síťových h médií. Kažždé pojení v síti je dáno sííťovým rozh hraním, kterré představu uje hranici mezi fyzickkou sp přřenosovou ko omunikační vrstvou (dráty, rádiovým mi vlnami a p podobně) na jedné straně ě a vrrstvami spolupracujícími s aplikacem mi na přípravvě přenášen ných dat na straně druh hé. Síťťové rozhran ní je adresovvatelné, to zn namená, že ssignál odeslaaný po fyzickkém médiu m míří 15 naa určité rozhraní v síti. K důleežitým vlastn nostem síťovvého rozhran ní patří MAC C adresa, co ož je jedineččná ad dresa každéh ho síťového zzařízení.
Přřenosová m média Přenosová média pracují na první vrstvě ě referenčníího modelu ISO/OSI, te edy m kabeely, jež přenáší elektriccký proud, o optické kabe ely vrrstvě fyzickéé. Jsou to měděné přřenášející svěětlo a bezdrrátové spoje fungující přředevším na rádiových aa mikrovlnnýých freekvencích.
Používvaná kabelovvá média jsou:
• Kroucená dvojlinka d • Koaxiální kabel k • Optické vláákno Krouceená dvojlink ka Nejrozzšířenější kab beláží počítaačových sítí je kroucená d dvojlinka, která přenáší jjak an nalogový, takk digitální siggnál. Je tak o oblíbená především díky svým nízkým m nákladům na po ořízení. Dělí se na nestííněnou (UTP P, Unshielded d Twisted‐Paair) a stíněn nou kroucenou dvvojlinku (STP P, Shielded TTwisted‐Pair), která je díkky stínění o n něco nákladnější. Stíněn ní u STTP zajišťuje fo olie a pletený drát. 13
SOSINSKY, Barrie. Mistroovství - počítaačové sítě. Vydání první. Brrno : Computeer Press, a. s., 20010. Servery a systémy, s. 127. 1 ISBN 9788-80-251-3363 3-7. 14 SOSINSKY, Barrie. Mistroovství - počítaačové sítě. Vydání první. Brrno : Computeer Press, a. s., 20010. Servery a systémy, s. 128. 1 ISBN 9788-80-251-3363 3-7. 15 SOSINSKY, Barrie. Mistroovství - počítaačové sítě. Vydání první. Brrno : Computeer Press, a. s., 20010. Síťové roozhraní, s. 1533. ISBN 978-880-251-3363-7 7.
Síttě a bezpečn nost
Kabel UTP je velm mi populární aa narazíte naa něj v mnoh ha různých tyypech sítí. U UTP ů, které jsou kolem sebee obtočené, ale jednotliivé je sestaveno zpráv měděných kabelů be nejsou izolované. Právě UPT je kabel, který se dnes použíívá pááry od seb v eethernetovýých sítích a často i v teleffonních prop pojeních. Pro o využití v T‐‐1 linkách musí býýt signál v krroucené dvo ojlince zesilo ován každých h 1,8 kilomeetru opakovaacím zařízen ním 16 (reepeater). OBRÁZEK 13.7
K Kroucená dvo ojlinka (STP)
brázek č. 1.7 7 Ob Zd droj: Dostup pné z URL: http://www.m h obi-tek.ru/img g/hyper/imge//cable_c8.jpg [cit. 2011‐0 05‐ 01 1]. ální kabel Koaxiá Koaxiáální kabel see používá prro přenos te elevizního siignálu. Dřívee byl používván také k propojeení na dlouh hé vzdálenosti, než jej ovšem o začala vytlačovatt stále levně ější op ptická vláknaa. Jak je vid dět na obrázzku č. 1.8, koaxiální k kab bel se skládáá ze čtyř čásstí. Up prostřed je měděný dráát, který je obklopen o izo olátorem. Ko olem izoláto oru je splete ený drrát, který slouží jako stínění a vnější o obal tvoří plaastový či tefllonový plášť. V současno osti je spousta různých druhů koaxiálních kkabelů, které é se liší v někkolika ohledeech. OBRÁZEK 13.8
K Koaxiální kab bel
16
SOSINSKY, Barrie. Mistroovství - počítaačové sítě. Vydání první. Brrno : Computeer Press, a. s., 20010. Přenosovvá média, s. 1775. ISBN 978--80-251-3363--7.
2 215
modulu tvůrcee systému
Zd droj: Přenoso ová média. D Dostupné z U URL: http://peppa.zvonicek.innfo/inf/koaxial.jpg [cit. 201 11‐ 05 5‐01]. Optickýý kabel Optickké kabely nepřenáší n d data elektricky, ale svvětelnými im mpulsy. Jejiich záákladem jsou u minimálně dvě optická vlákna, pro každý směr přenosu dat jedno. Ta jssou ch hráněna seku undární vrstvvou před ohyyby kabelu. O Optická vlákn na jsou velmi křehká oprroti měděným kab belům, proto ože jsou vyro obena ze skla nebo z plaastu. Proto se optické sítě s mnohem obtíížněji budují a jsou dražžší. Rozlišuje eme dva dru uhy optických vláken. A to jednovidové a mnohovid dové vlákno o. Jednovido ové vlákno přenáší jen jeden sign nál, zaatímco mnoh hovidové může signálů přřenášet více.. U mnohovidového o vlákna se signál odráží od pláštěě vlákna. Jarroslav Horákk a M Milan Keršláger uvádí: „B Během přeno osu je původ dní světelnýý paprsek ro ozložen na vííce svvětelných částí, tzv. vidů ů. Na konec kabelu pakk dojde půvo odní paprsekk rozložený na něěkolik vidů. Příjemce pro ovede součeet jednotlivýých vidů a dostane půvo odní informaaci. 17 Vidy však doraazí k cíli s urččitým časovýým odstupem m – přenášen ný údaj je zkrreslen.“ Jednovvidovým vláknem však prochází p pou uze jeden vid d bez jakých hkoli lomů. Má M prroto lepší op ptické vlastnosti a je vho odný pro pře enos na dlou uhé vzdáleno osti. To ovše em zp působuje, že je i nákladněější. OBRÁZEK 13.9
O Optický kabe el
17
HORÁK, Jarooslav; KERŠL LÁGER, Milaan. Počítačovéé sítě pro začínnající správcee. 3. akktualizované vydání. v Brno : Computer Press, a. s., 2006 6. Hardwarovvé prvky sítí, ss. 15. ISBN 80 02551-0892-9.
Síttě a bezpečn nost
Ob brázek č. 1.1 10 Zd droj: HORÁK K, Jaroslav; KERŠLÁGER,, Milan. Poočítačové sítěě pro začínajjící správce. 3. akktualizované vydání. Brn no : Computeer Press, a. s., s 2006. Hardwarové prrvky sítí, s. 15. 1 ISBN 80‐251‐0 0892‐9. OBRÁZEK 13.10
P Přenos jedno o a vícevidovvým vláknem m
Bezdrá átové sítě Bezdráátová komunikace mezii stanicemi v síti je zajiššťována nejččastěji pomo ocí elektromagnetických vln. é linky používají jako m médium vzdu uch Prakticcky všechnyy bezdrátovéé počítačové neebo vakuum. Přijímač i vvysílač musí být rozumně ě zkonstruovvány a také naceněny, aaby see daly běžněě používat. Vysílač V emittuje elektrom magnetické záření s jisto ou frekvencíí a
2 217
modulu tvůrcee systému
en nergií. Ta od dpovídá amp plitudě vlny, jež musí býýt dostatečněě velká, aby mohl vybraaný 18 přřijímač signál na požadovvanou vzdáleenost rozpoznat.
Aktivní prvkky sítě Pro sp právnou funkkci sítě je třeeba použít prropojovací zaařízení, kteráá vytvoří síťo ový okkruh. Jsou to o směrovače,, přepínače, rozbočovače e, mosty a brrány. Opakovvač (repeatter) Nacháází se předevvším u koaxxiálních sítí a a pracuje na první, tedyy fyzické vrsttvě ISO/OSI modeelu. Používá sse u dlouhýcch kabelů, kd dy by už sign nál nebyl dosst silný a ztraatil svvou kvalitu, takže zesilujee signál, kterýý jím prochází. Směrovvač (router)) Je zatíím nejinteliggentnějším aktivním prvkkem, s nímž jjsme se setkkali. Pracuje na úrrovni síťové vrstvy ISO/O OSI. Shromažžďuje inform mace o připo ojených sítích a pak vybírá neejvýhodnější cestu pro p posílaný pakeet. Má v sob bě zabudovanou filtraci p paketů, kterrou do oplňuje o intteligentní sm měrování. U sítí LAN se s n ním nesetkám me často, typ pické je použžití 19 přři připojování sítí k Intern netu. měrovačích ro ozlišujeme dvě d operačníí úrovně: říd dící úroveň (ccontrol plane), Ve sm jejjíž součástí je j rozhodnutí o portu, přes p který bu udou paketyy odeslány ke svému cíli, a do oručovací úrroveň (forwaarding plane), která se stará s o přijetí paketů a jejich odesláání 200 prrostřednictvíím vybraného rozhraní. Rozboččovač (hub)) Hub jee zařízením fyzické vrsttvy. Jedná se e o pasivní zařízení, cožž znamená, že slo ouží pouze kk jednoduchéému fyzickém mu propojen ní. Využíval sse především m v hvězdico ové to opologii, kde jej časem naahradil switcch. očovač fungu uje následujjícím způsob bem. Pokud jsou v síti čtyři počítaače Rozbo prropojeny hubem a počíttač A pošle data počítaači C, hub data d rozešle do všech čttyř po očítačů, ale p pouze počítač C je příjmee. Přep pínač (switcch) Switch h si, na rozdííl od hubu, „zmapuje“ síťť a data posíílá pouze poččítači, kterém mu jso ou určena. Vytvoří V tedyy přímou ceestu mezi stanicemi, nezpomaluje ttak celou síťť a neeposílá zbyteečná data osttatním staniccím. Komuniikace je tedyy mnohem ryychlejší. 18
SOSINSKY, Barrie. Mistroovství - počítaačové sítě. Vydání první. Brrno : Computeer Press, a. s., 20010. Přenosovvá média, s. 1995. ISBN 978--80-251-3363--7. 19 HORÁK, Jarooslav; KERŠL LÁGER, Milaan. Počítačovéé sítě pro začínnající správcee. 3. akktualizované vydání. v Brno : Computer Press, a. s., 2006 6. Hardwarovvé prvky sítí, ss. 22-23. ISBN N 800-251-0892-9. 20 SOSINSKY, Barrie. Mistroovství - počítaačové sítě. Vydání první. Brrno : Computeer Press, a. s., 20010. Směrovačče, přepínače a mosty, s. 2008. ISBN 978--80-251-3363--7.
Síttě a bezpečn nost
Přepín nač je aktivn ní zařízení, ktteré spojuje e dvě sítě naa jedné nebo o více vrstváách 21 síťťového modeelu OSI. Most (b bridge) Bridgee pracuje na n linkové vrstvě v ISO/O OSI a zkoum má cílovou MAC adressu. Po odobně jako switch dokááže od sebe o oddělit části sítě. p mostu pán nové Horák a Keršláger popisují následovně: „M Most si přeččte Princip u paketu. Paaket pak pro opustí pouze e do té částti sítě, v níž je obsažen cíl cíllovou adresu paaketu. Filtro ováním se podstatně p sn nižuje zatíže ení sítě, pro otože pakety neputují do 22 síťťového segm mentu, kam n nepatří.“ Brána (gateway) Brána funguje na nejvyšší vrsttvě ISO/OSI a umožňujee komunikacii mezi různýými drruhy sítí. a síťovvé protokoly i samotná data. d Někdy můžete bránu Brány překládají adresy, po ořídit jako hardwarové h zařízení, v jiiných případ dech mají po odobu softw waru určené ého 23 k iinstalaci na p počítač, který pak bude m mít funkci brrány.
16 6.5 Síťové é operační systémy a software Síťovýý operační systém je operační systém, s který je optim malizován pro p oskytování síťových s služžeb jiným syystémům v síti. Téměř každý k komerrční počítačo ový po op perační systéém vytvořen ný v uplynulých 50 letecch měl nějakou síťovou u komponentu. Kaaždý síťový o operační systtém musí po oskytovat po odporu hardw waru, spoušttět protokolyy a slu užby a poskkytovat tyto o služby neb bo aplikace klientským systémům. Kromě těch hto záákladních služeb může síťťový operačn ní systém nabídnout nástroje pro sprrávu, jmenné é a ad dresářové slu užby, souborrové a tiskovvé služby, webové službyy, zálohován ní, zabezpeče ení a síťové směrrování, stejn ně jako by měl m sloužit jako operačční systém, na kterém lze instalovat a spouštět síťo ové aplikace. Síťový ope erační systém m, jenž disp ponuje širokýým sp pektrem funkcí, se typiccky označujee jako platfo orma. Nejpopulárnější dnes používaané 24 síťťové operačn ní systémy: U UNIX, Linux, Solaris, Nove ell NetWare,, Windows Seerver.
21
SOSINSKY, Barrie. Mistroovství - počítaačové sítě. Vydání první. Brrno : Computeer Press, a. s., 20010. Směrovačče, přepínače a mosty, s. 2002. ISBN 978--80-251-3363--7. 22 HORÁK, Jarooslav; KERŠL LÁGER, Milaan. Počítačovéé sítě pro začínnající správcee. 3. akktualizované vydání. v Brno : Computer Press, a. s., 2006 6. Hardwarovvé prvky sítí, ss. 22. ISBN 80 02551-0892-9. 23 SOSINSKY, Barrie. Mistroovství - počítaačové sítě. Vydání první. Brrno : Computeer Press, a. s., 20010. Směrovačče, přepínače a mosty, s. 2440. ISBN 978--80-251-3363--7. 24 SOSINSKY, Barrie. Mistroovství - počítaačové sítě. Vydání první. Brrno : Computeer Press, a. s., 20010. Síťové opperační systém my, s. 527-5311. ISBN 978-8 80-251-3363-77.
2 219
modulu tvůrcee systému
UNIX Systém m UNIX je ch harakterizováán jako víceú úlohový (mu ultitasking), vvíceuživatelský, v ččase sdílený síťový operaační systém. Byl postave en na jádru, kkteré by bylo o možno snááze po ortovat na jiné j počítačo ové architekktury (rodiny procesorů ů) než předcchozí operačční syystémy a kteeré by oddělilo uživatelsské funkce od o operací jáádra. Hlavníí filozofií, dn nes ob bčas nazývanou jako UNIXová U filozofie, bylo vytvoření modulárního m a opakovaaně 25 po oučitelného ssíťového opeeračního systtému a jeho komponent.
Linux Linux jje „UNIX‐likee“ operační ssystém, kterýý používá Op pen Source jáádro Linux. ZZdá m internetovvým servere em, see, že Linux může být nejrozšířeněějším dnes používaným alespoň podlee statistik vyvozených v z studií využití Interneetu. Verze LLinuxu běží na ze d malých, integrovaných h zařízení ažž po superpočítače. Linu uxové jádro je syystémech od monolitické a obsahuje sp právu procesů a paměti, o ovladače a m moduly vstup pně‐výstupníích bory zařízení, sokety a sytém soub borů. Další funkčnost, jjako napříkllad zaařízení, soub přříkazové inteerprety (shelll), utility a grafická g uživatelská rozh hraní (GUI), zzajišťují funkkce 26 užživatelského prostoru.
So olaris Operaační systém Solaris společnosti Su un Microsysstems je dnes nejčasttěji nixovým opeeračním systtémem. Solaaris byl před dstaven v ro oce naasazovaným síťovým un 19 992, kdy nah hradil operačční sytém SunOS a zaved dl pokročilý ssíťový zásobn ník podporujjící 27 síttě TCP/IP.
Novell NetW Ware Systém m NetWare společnosti Novell zasttával důležittou pozici v oblasti vývo oje měř jedno de esetiletí byl systém NetW Ware předn ním síťťových operačních systéémů. Po tém síťťovým operaačním systém mem pro ossobní počítače a zejmén na pro souborové a síťo ové slu užby a heterrogenní sítě obsahující m mnoho různýých typů klien ntů. S rostou ucí popularittou seerverů se systémy Microssoft Window ws Sever a zejména Linuxx začala popu ularita systém mu 288 NeetWare jako platformy sííťových operračních systé émů klesat.
od systému N NetWare pom malu upoušttí. V dneššní době se o
W Windows Se erver Windo ows Server jee univerzálním serverem m, který má největší a neejširší podpo oru síťťových aplikkací ze všech h síťových operačních o syystémů zde zmiňovanýcch. Jedinečnou 25
SOSINSKY, Barrie. Mistroovství - počítaačové sítě. Vydání první. Brrno : Computeer Press, a. s., 20010. Síťové opperační systém my, s. 531. ISB BN 978-80-25 51-3363-7. 26 SOSINSKY, Barrie. Mistroovství - počítaačové sítě. Vydání první. Brrno : Computeer Press, a. s., 20010. Síťové opperační systém my, s. 536-5388. ISBN 978-8 80-251-3363-77. 27 SOSINSKY, Barrie. Mistroovství - počítaačové sítě. Vydání první. Brrno : Computeer Press, a. s., 20010. Síťové opperační systém my, s. 538. ISB BN 978-80-25 51-3363-7. 28 SOSINSKY, Barrie. Mistroovství - počítaačové sítě. Vydání první. Brrno : Computeer Press, a. s., 20010. Síťové opperační systém my, s. 540. ISB BN 978-80-25 51-3363-7.
Síttě a bezpečn nost
výýhodou společnosti Miccrosoft je skkutečnost, že systém Windows W ovládá téměř 90 prrocent celossvětového trhu t deskto opových poččítačů, což umožňuje realizaci řaady užžitečných fun nkcí, jako jso ou automatizzované installace, engine zásad robusstního síťové ého 29 op peračního syystému a dalšší funkce
Active Direcctory Activve Directoryy je velice roozsáhlý a uk krývá se pood ním celé řešení spráávy ndows) ve firemním f prrostředí pod dle poočítačové síítě (počítače s OS Miccrosoft Win M Microsoftu. A Active Direectory, ve svvé podstatě, je distribuuovaná adreesářová služžba odd MS a jee součástí Windows W S Server 2000/2003. Addresář obsaahuje uložeené sooubory inforrmací o objjektech a jeejich vzájem mných vztazzích. V počíítačové síti se zdde nachází velká řadda objektů, jako serrvery, staniice, aplikacce, databázze, užživatelé. Užživatelé mussí být schoppni nalézt a použít tyto informace. Správci mu usí m možnostt řídit, jak jsou tyto objekty mít o pou užívány. Jee třeba, abyy adresář byl b ceentralizovanný
(centraalized),
alle
také
dostatečně
výkonnýý/škálovatellný
(sscalability). Active Dirrectory v soobě zahrnujee řadu služeeb. Jeho priimární role je pooskytování centrálníchh služeb proo autentizacii a autorizaaci, tedy sprráva uživateelů (ppřesněji sprááva účtů, prrotože to můůže být i třeba počítač).30
16 6.6 Typy ssítí Počítaačové sítě see mohou děělit různě z m mnoha hled disek. Nejčasstějším však je jejjich rozlehlost. Barrie Sosinsky je rozdělil na:
• „Domácí sítě s • Sítě peer-too-peer a perrsonální sítěě LAN • Místní sítě LAN p sítě • Rozlehlé síítě WAN a páteřní • Bezdrátovéé sítě Wi-Fi“31 29
SOSINSKY, Barrie. Mistroovství - počítaačové sítě. Vydání první. Brrno : Computeer Press, a. s., 20010. Síťové opperační systém my, s. 541. ISB BN 978-80-25 51-3363-7. 30 BOUŠKA, Peetr. SAMURAJJ-cz.com [onliine]. 08.02.20 008 [cit. 2011--04-16]. Activve Directory koomponenty - domain, d tree, forest, f site. Doostupné z WW WW:
>. 31 SOSINSKY, Barrie. Mistroovství - počítaačové sítě. Vydání první. Brrno : Computeer Press, a. s., 20010. ČÁST IIII: Typy sítí, s. 241-442. ISB BN 978-80-251-3363-7.
2 221
modulu tvůrcee systému
Domácí sítě ě Domácí sítě jsou stále častější a pokroččilejší. Vznikkají hlavně zz důvodu stáále vyyššího počtu počítačů v jjedné domácnosti a je potřeba p sdíleet internetovvé připojení. A jak Barrie Sosiinsky ve své knize říká: „P Při budováníí domácí sítěě musíte učin nit dvě základ dní ro ozhodnutí: ja ak se připojjit k Internettu a jak vzá ájemně prop pojit různé o oblasti vašeeho 32 do omova.“ V dnešní doběě je asi nejčaastějším prvkkem domácí sítě Wi‐Fi, kkteré umožňu uje mobilitu připo ojení.
Síítě peer‐to o‐peer a pe ersonální sítě LAN Sítě peeer‐to‐peer (P2P) jsou charakteristiccké tím, že sttanice v síti jsou si rovnyy a oli klienta a zároveň i seeveru. Uživatel naavzájem si poskytují služžby. Každá sttanice má ro síttě má přístup například ke sdíleným tiskárnám n nebo složkám m, které díkyy tomu nemusí býýt duplicitněě umístěny na n serveru. Řešení Ř P2P je relativně levné, ovšem m jen do dob by, neež jej chcem me důkladn ně zabezpeččit a zvýšit výkon. Síttě P2P jsou u nejvhodně ější k propojení malého m počtu u stanic. Při vyšším počttu propojenýých stanic jee dosti obtížžné ud držovat přeh hled o datecch a chránit je před zneužitím. Proto o se jako ho orní mez uváádí deeset spojení. nice. Napříkllad Roli personálních sítí mohou zastoupit některé počíttačové sběrn 33 USSB (Universaal Serial Bus),, FireWire (IEEEE 1394) a B Bluetooth.
M Místní sítě L LAN Definice místní síttě neboli LAN N spočívá v ttom, že je lim mitovaná co do rozsahu,, je prrivátní a má omezený po očet administrativních jednotek, tedyy domén neb bo podsítí. SSítě LA AN se dělí podle následu ujících atribu utů: topologgie, přenosovvé médium, technologiccké 34 standardy, vellikost, charakkteristiky sprrávy. Sítě LA AN (Local Arrea Networkk) jsou jen malého m rozsaahu, pokrývaají malé územ mí. Vyyznačují se levnou a vysokou v přenosovou rycchlostí. Nákklady na pořřízení jsou na saamotných majitelích sítěě. Slouží přeedevším ke sdílení s prosttředků a vyu užívají se te edy hlavně v domáácnostech, fiirmách či maalých areálecch. Nejrozzšířenější teechnologií v místních síttích je jedn noznačně Ethernet. Barrrie So osinsky Etheernet popisu uje: „Tento standard s de efinuje všesm měrové vysíílání rámců na médiu fyzickéé vrstvy spolu se signalizačními me etodami linkkové vrstvy založenými na 35 uchání nosnéého signálu ss vícenásobn ným přístupeem a detekcí kolizí.“ metodě naslou
32
SOSINSKY, Barrie. Mistroovství - počítaačové sítě. Vydání první. Brrno : Computeer Press, a. s., 20010. Domácí sítě, s s. 243. ISBN 978-80-2551-3363-7. 33 SOSINSKY, Barrie. Mistroovství - počítaačové sítě. Vydání první. Brrno : Computeer Press, a. s., 20010. Sítě peer--to-peer a perssonální sítě LA AN, s. 261. IS SBN 978-80-2251-3363-7. 34 SOSINSKY, Barrie. Mistroovství - počítaačové sítě. Vydání první. Brrno : Computeer Press, a. s., 20010. Místní síttě LAN, s. 2800. ISBN 978-880-251-3363-7. 35 SOSINSKY, Barrie. Mistroovství - počítaačové sítě. Vydání první. Brrno : Computeer Press, a. s., 20010. Místní síttě LAN, s. 2855. ISBN 978-880-251-3363-7.
Síttě a bezpečn nost
Ro ozlehlé sítě WAN Sítě WAN W (Wide Area A Networrk) pokrývajíí rozlehlé geeografické úzzemí. Propojjují jednotlivé míístní sítě LAN, L což většinou v zajjišťují veřejní poskytovvatelé služe eb. Neejznámějším m a zároveň n největším přííkladem sítě WAN je Internet. K jejím mu vybudováání je třeba zapojit technologii směrování neb bo přepínáníí a skkupinu proto okolů, které ttvoří trasy z jednoho míssta na jiné. EExistují čtyři typy sítí WA AN: 36 přřepínání okru uhů, přepínáání paketů, předávání buněk a pronajjaté linky.
Be ezdrátové sítě Wi‐Fi Wi‐Fi, neboli skup pina standardů IEEE 80 02.11x, využívá bezlicen nční frekvenčční páásmo, proto je to vhodná levná a výkonná varian nta sítě v příípadě, že se chceme obe ejít beez kabelů. j všechnyy založené na komunikkačních linkáách Běžně používané standardy jsou vyytvořených s pomocí s rád diových frekvvencí ve veřřejných pásm mech 2,4 GH Hz nebo 5 GH Hz. V rámci Wi‐Fii se šířka pásma p rozděěluje do kan nálů. V těch hto kanálech h pak probííhá ko omunikace rozptýlením v celém spektru, s které se odehrává buď ď jako přím má po osloupnost překrývajícíc p ch se přenosů, nebo se e zavádí nějjaké schémaa frekvenčníích 37 skkoků.
16 6.7 Bezdráátové technologie Naa závěr kapittoly se zmínííme o bezdráátových tech hnologiích. Blíže se rozep píšeme pouze e o teechnologii WiFi, W protožee je nejrozšíířenější, ostaatní technollogie (Laserb bit, Skywalker, ap pod.) se používají spíše vvýjimečně, b buďto jako bridge (na pro opojení něko olika sítí LAN N v sittuaci, kdy neelze použít jin nou technolo ogii, např. op ptický kabel)), popřípadě na páteřní ssíti. Beezdrátové síttě můžeme rrozdělit podlee mobility užživatelů: mobilní – um možňují poh hyb uživatelee a jeho bezd drátového zaařízení v rám mci jedné síttě i mezi sítěmi. Podpora mob bility se pak vvětšinou zajiššťuje prostřeednictvím síťťové vrstvy. fixní – umožňují připojen ní jen „pevnéé“ bezdrátovvé síti. neebo podle typu signálu: rádiové sítěě – většinou u se používají pro domáácí sítě a širrokopásmovýý přístup. Platí prravidlo, že číím je vyšší frrekvence, tím m je kratší dosah sítě. Signál o nízkéém kmitočtu se šířří jako povrcchová vlna, signál v řádecch GHz se šířří jako přímá vlna a je om mezena přímou vid ditelností. optické bezzdrátové sítě – potřebu ují přímou viditelnost, v dosahují vysoké kapaciity. bo polovodiččová laserováá technologiie. Používají se Vyyužívá se buď led (superrsvítivá) neb standardně třii vlnové délkky: 850, 1310 0 a 1550 nm. or v místnostti. infračervenéé sítě – malý dosah omezzen na prosto 36
SOSINSKY, Barrie. Mistroovství - počítaačové sítě. Vydání první. Brrno : Computeer Press, a. s., 20010. Rozlehlé sítě WAN a páteřní p sítě, s. 319. ISBN 97 78-80-251-33663-7. 37 SOSINSKY, Barrie. Mistroovství - počítaačové sítě. Vydání první. Brrno : Computeer Press, a. s., 20010. Bezdrátovvé sítě Wi-Fi, s. 349. ISBN N 978-80-251-3 3363-7.
2 223
modulu tvůrcee systému
neebo podle km mitočtového pásma: licenční bezlicenční po odle použití ssítě: bezdrátové metropolitníí sítě WMAN N (Wireless Metropolitan Area Netw works) – norm ma IEEE 802.16, používá p kmittočet 10–66 6 Ghz. V dne ešní době see pak hovoříí o technolo ogii W WiMax. lokální sítě W WLAN (Wireless Local Arrea Network) norma IEEEE 802.11, po oužívá kmitoččet 2,4 a 5 Ghz osobní sítě W WPAN (Perso onal Area Neetwork), norm ma IEEE 802.15, založenáá na standarrdu Bluetooth v1.1 1 širokopásmo ové mobilní bezdrátové sítě MBWA A (Mobile Brroadband W Wireless Access) ozznačovaná tééž Mobile‐Fi – norma IEEE 802.20. U technologiíí postavenýcch na jiných h kmitočtecch elektromaagnetických vlnění budou taková spojen ní velmi citlivvá na kovy (viz Faradayyova klec) a popřípadě d další materiáály vzzhledem k vlnové délce (např. WiFi sítě jsou citlivvé na vodu, 2,4 Ghz je to otiž rezonančční km mitočet vodyy, stejná frekkvence se používá u mikro ovlné troubyy).
Te echnologie e WiFi WiFi je bezdráátová techno W ologie založeená na stand dardu IEEE 802.11. Původní specifikaace 80 02.11 umožň ňovala rychlo osti kolem 1––2 Mbps, no ovější 802.11b až 11 Mbp ps a 802.11g až 54 4 Mbps. Exisstuje standarrd 802.11n, kkterý umožň ňuje zdvojnásobení rychlosti sloučením dvvou „linek“ p postavených na 802.11g (každá pro jeden směr). ny standardy využívají km mitočet 2,4 G Ghz (2,4–2,48 85GHz), výjim mkou je pou uze Tééměř všechn 80 02.11a, využíívající kmitočet 5 Ghz (5 5,1–5,3 a 5,75–5,825 GHz). WiFi 802.11a umožňu uje ceelkem spoleh hlivé spojení a rychlosti aaž 54 Mbps, vhodnější spíše na stab bilní datový ttok (p páteřní sítě), bohužel je mnohem vícce náchylné na rušení. D Dosah sítí se ve venkovn ním prrostředí při p použití stand dardní všesm měrové antén ny uvádí od 1 100–350 m, v budovách od 20 0–100 m. Přřístupové body bezdrátovvé sítě vysílaají tzv. SSID (SService Set Identifier), co ož je řetězec až 32 2 ASCII znakků, kterým se identifikujjí. SSID identifikátor je v v pravidelnýých intervale ech vyysílán do oko olí jako broaadcast, aby b bylo možné zzobrazit všecchny dostup pné bezdráto ové síttě. Tento ideentifikátor SSSID je možnéé před okolím m skrýt (hidee), pak klientt musí dopře edu teento řetězec (identifikáto or bezdrátovvé sítě) znát.. Sofistikovanější programy a ovladaače beezdrátových sítí však umíí tento řetězec odhalit. WiFi umožňuje propojení peer‐to‐peeer/ad‐hoc (prakticky každ W dý s každým m, připomíná to to opologii bus, toto je vhod dné spíše pro o méně rozle ehlé sítě) a C Client‐Server//Infrastructu ure , která k předpokládá existtenci přístup pového bodu u (Access Po oint/AP) a připomíná svvou to opologií hvězdu. Mnoheem běžnějšíí je Client‐SServer. Tuto o infrastrukturu je možžné ro ozšířit také o o most/bridge. Vzhledem m k tomu že dosah bezdrrátových sítí je v budováách po oměrně malý je možn né nastavit na bezdráttových zařízzeních (AP) pracujících v infrastruktuře o režim WD DS. Podrobněější informacce získáte paak v předmětu „Počítačo ové síttě II“ a „kom munikační pro otokoly a šifrrování“.
Síttě a bezpečn nost
Be ezpečnost WiFi Zaabezpečení bezdrátovýc b h přenosů je j vzhledem m k jejich fyyzikální podsstatě mnohe em ob btížnější, nežž u běžných kkabelových ssystémů. Neo oprávněné využívání kab belů si vyžadu uje instalaci zařízení přímo na n kabelu, což c vede k měřitelným m změnám. U bezdrátovýých teechnologií to oto neplatíí. Proto vzniklo několik různých technologiíí zabraňujíccím neeoprávněném mu přístupu do sítě: Zabezpečeníí MAC adresy je asi nejsttarší a nejjed dnodušší, zařřízení (dle svého nastave ení) neepřijme spo ojení (data) vyslané systémem s nepovolen nou MAC aadresou. To oto zaabezpečení je vhodné sp píše pro sítěě nepodléhajjící častým změnám, z pro otože jakáko oliv zm měna si vyžáádá nutnost rekonfiguraace prvků. Valná V většinaa Access Pointů umožňu uje so oftwarově zm měnit svou MAC adressu v nastavení. Tato ochrana je p poměrně máálo effektivní, navííc nezabraňu uje „odposlecchy“ přenosů ů. Zabezpečení WEP (Wireed Equivalen nt Privacy) klíčem k je lep pší, protože komunikace je kó ódována sym metrickým algoritmem a RC4 (s 64‐‐bit nebo 128‐bit 1 statiickým klíčem m). Slaabinou tohoto systém mu je (mim mo nutnosti distribuce klíče) relaativně snad dná ro ozluštitelnostt při opakováání přenosu kódovaného o stejným klíččem. Kódování TK KIP je nástavb bou na existujícím WEP kkódování. TK KIP využívá častějších zm měn klííče a také daalší technologgie pro vyšší zabezpečení oproti WEP P. Zabezpečen ní WPA (Wii‐Fi Protecteed Access) klíčem je novější n a beezpečnější než n kó ódování WEP P klíčem. Imp plementuje vvelkou část sttandardu IEEEE 802.11i a používá TKIP P. Nejnovějším m zabezpečení je pomocci WPA2 klíčče – plně im mplementuje standard IEEEE 80 02.11i (oprotti WPA použíívá navíc algo oritmus CCM MP).
2 225
modulu tvůrcee systému
ZAPAMATTUJTE SI
povinně
Rozeznávámee různé sítěě podle jejich topologie. Nejčastějšíí používanou R u topologií je j s sběrnicová a hvězdicová topologie a jjejich kombinace. Nejčastějším přenosovým médiem je kovový vodič a sklleněné vlákn N no. Často se s v využívají i be zdrátové sítěě. Hlavními kom H mponentami jsou síťová karta, směrovače, rozbo očovače, rou utery, brány a m mosty. síťovou kom P Pro obecnou munikaci byl definován, m mode ISO/OSSI. N Některé vrstv vy tohoto mo odelu využívvá internetovvý protokol TTCP/IP. D Důležitou sou učástí síťové komunikacee je její bezpečnost. KONTROLNÍÍ OTÁZKY
povinně
Co jee to počítačová síť. Vysvětlete použittí přepínače.. Jaké druhy sítí zn náte?
Síttě a bezpečn nost
S SHRNUTÍ KA PITOLY
Souččástí moderních informaččních systém mu jsou počítaačové sítě. Rozeeznáváme sítě drátové, optické a bezd drátové. Sítě m mohou mít rrůznou struktturu, které řííkáme topolo ogie sítě. Nejpoužívanější ttopologií je ssběrnice a hvvězda a jejich h kombinacee. Důležžitou součásstí komunikaci po síti je zajištění bezp pečnosti. STTUDIJNÍ LITEERATURA 21 1 základních pravidel po očítačové bezpečnosti / Tomáš Doseeděl. ‐ Vyd. 1.. ‐ Brno : CP Bo ooks, 2005 ‐ 52 s. : il. ISBN 80‐251‐05 574‐1 (brož.) Informační a telekomunikkační technika / Horst Jansen, J Hein nrich Rötter a kolektiv ; [z něěmeckého originálu ... přeložil p Jiří Handlíř]. H ‐ Vyyd. 1.. ‐ Praha : Europa‐Sobotáles cz., c 20 004 ‐ 399 s. : il. ISBN 80‐8 86706‐08‐7 ((brož.) Mistrovství ‐ p M počítačové sítě / Barrie SSosinsky ; [p překlad Joseff Pojsl, Pavel Vaida]. ‐ Vyyd. 1.. ‐ Brno : Com mputer Press, 2010 ‐ 840 0 s. : il. ISBN 978‐80‐251‐‐3363‐7 Moderní komunikační sítěě od A do Z [[Pužmanová,, 2006] / Ritaa Pužmanová. ‐ 2. aktualiz. M vyyd.. ‐ Brno : C Computer Press, 2006 ‐ 4 430 s. : il. ISB BN 80‐251‐12 278‐0 (brož.) Po očítače a sítěě / Jiří Kulháánek. ‐ Vyd. 1.. ‐ Ostravaa : VŠB ‐ Tecchnická univerzita Ostravva, 20 007 ‐ 1 elektrronický opticcký disk (CD‐‐R) : barev. ISSBN 978‐80‐2 248‐1516‐9 ((CD‐R) Po očítačové sítě pro začínajjící správce [[Horák, 2011 1] / Jaroslav H Horák, Milan n Keršláger. ‐‐ 5. akktualiz. vyd.. ‐ Brno : Com mputer Press, 2011 ‐ 303 s. : il. ISBN 9 978‐80‐251‐3 3176‐3 (brož.) Slo ovník počítačové informatiky : výkladový slovníkk pro práci s informacem mi : hardware e a so oftware včettně počítačo ových sítí, internetu a mobilních technologií t / Petr Říha. ‐ Osstrava : Mon ntanex, 2002 ‐ 261 s. ISBN N 80‐7225‐08 83‐3 (váz.) Zááklady počítaačových sítí : učební texty / Zora Jančíková, Ro obert Frischer. ‐ 1. vyd... ‐ Osstrava : VŠB ‐ Technickáá univerzita Ostrava, O 200 07 ‐ 75 s. : il. ISBN 978‐80‐248‐1315 5‐8 (b brož.)
2 227
modulu tvůrcee systému
Z Závěr Záávěrem bychom rádi věřiili, že jste se při použití té éto učební pomůcky neu unudili k smrtti. Věěříme, že jstte v ní našlii alespoň záákladní množství inform mací, které jsste při studiu hledali, a že Vám poskyttla odpověd di alespoň na základní otázky, o kterré se vám při p vyyslovení tém matu Tvůrce systému honily hlavou. Při psaní to ohoto textu jjsme mnohd dy těěžce vážili, co o ještě do texxtu zahrnou,, aby byl co m možná nejsro ozumitelnějšší a co naopaak jižž vynechat taak, aby zůstaal dostatečněě výstižný a přesný. Podobně i Vy, n naši studenti a laskaví čtenářři, si určitě uvědomujete u e, že nastíně ěné téma je neobyčejně široké a jeh ho studium by zaajisté zabralo o celý lidský život, a stále by bylo co o studovat. P Pro začátek sse můžete začíst do předložeené literaturyy, kde můžette získat mno oho inspirativvních příklad dů a návodů, kud dy se vydat dále. Auto oři
Po oužitá literattura a další zd droje
P Použitá l literatura a další zdroje
229
modulu tvůrcee systému