Vývoj bezpečných aplikací

Save this PDF as:
 WORD  PNG  TXT  JPG

Rozměr: px
Začít zobrazení ze stránky:

Download "Vývoj bezpečných aplikací"

Transkript

1 Vaše jistota na trhu IT Vývoj bezpečných aplikací Rudolf PECINOVSKÝ 2012 e-bezpečnost v Kraji Vysočina 1

2 Vaše jistota na trhu IT Obsah s odkazy Quo vadis, programování? Co je to bezpečné? Zásady správného a bezpečného programování 2012 e-bezpečnost v Kraji Vysočina 2

3 Vaše jistota na trhu IT Quo vadis, programování? 2012 e-bezpečnost v Kraji Vysočina 3

4 Programování se vyvíjí (1/3) Dříve Řada běžných, často se vyskytujících úloh stále čekala na vyřešení Nyní Většina běžných úloh je vyřešena a řešení jsou dostupná v komponentách či knihovnách Programy pracovaly samostatně, navzájem příliš nespolupracovaly Nové program jsou téměř vždy součástí rozsáhlejších aplikací a rámců Klíčovou úlohou programátora byl návrh algoritmů a základních datových struktur Klíčovou úlohou je návrh architektury systému Důležitější než znalost algoritmů je znalost knihoven a aplikačních rámců, v nichž jsou potřebné algoritmy a datové struktury připraveny 2012 e-bezpečnost v Kraji Vysočina 4

5 Programování se vyvíjí (2/3) Dříve Metodika vývoje programů počítala s pevným zadáním Zákazníci hledali firmu, která jejich projekt naprogramuje O výsledné podobě projektu rozhodovali analytici a programátoři Při vývoji programů se kladla váha především na jejich efektivitu U programátorů byla oceňována jejich schopnost vyvíjet programy, s malými HW požadavky Nyní Zadání většiny vyvíjených projektů se v průběhu vývoje neustále mění Programátorské firmy hledají zákazníky, kteří si u nich objednají tvorbu projektu O výsledné podobě projektu rozhoduje zákazník Při vývoji programů se klade váha především na jejich spravovatelnost a modifikovatelnost U programátorů je oceňována jejich schopnost vyvíjet programy, které je možno rychle a levně přizpůsobovat neustále se měnícím požadavkům zákazníka 2012 e-bezpečnost v Kraji Vysočina 5

6 Programování se vyvíjí (3/3) Dříve Prvotní úlohou programátora bylo vymyslet, jak úkol vyřešit Nyní Prvotní úlohou programátora je zjistit, jestli už někde není problém vyřešen Testy se většinou navrhovaly po dokončení projektu či jeho části a spouštěly se na závěr před odevzdáním projektu (byl-li čas) Stále častěji se testy navrhují před začátkem vývoje každé části a spouští se v průběhu celého vývoje po každé drobné změně Testy navrhovali programátoři a ověřovali v nich, že program dělá to, co chtěl programátor naprogramovat Testy se navrhují ve spolupráci se zákazníkem a ověřuje se v nich, že program dělá to, do po něm zákazník požadoval Návrh testů byl interní záležitostí vývojového týmu Návrh testů se často stává součástí smlouvy o vývoji programu 2012 e-bezpečnost v Kraji Vysočina 6

7 Vaše jistota na trhu IT Co je to bezpečné? Bezpečné zabezpečené aplikace Nebezpečnost geniálních programátorů Používané paradigma Nevýhody předčasné koncentrace na kód Problémy přechodu na nové paradigma 2012 e-bezpečnost v Kraji Vysočina 7

8 Bezpečné zabezpečené aplikace Bezpečná aplikace = aplikace, která je robustní vůči uživateli i vůči programátoru, který dostane za úkol ji upravit anebo rozšířit Zabezpečená aplikace = aplikace s dodatečnými nadstavbovými prvky, které mají zabránit případným útočníkům v realizaci jejich nekalých úmyslů Aplikaci, která není primárně vytvořena jako bezpečná, nezabezpečí žádné dodatečné zabezpečovací mechanizmy Existuje i druhý pohled: Bezpečná aplikace je taková, která firmě bezpečně přináší zisk Aplikace, která není bezpečná z programátorského hlediska nebude bezpečná ani z hlediska účetního, protože bude mít špatnou pověst (moc se jí neprodá) a navíc její údržba bude neúnosně drahá 2012 e-bezpečnost v Kraji Vysočina 8

9 Nebezpečnost geniálních programátorů Napsat program, kterému rozumí počítač, dokáže každý trouba, dobří programátoři píší programy, kterým rozumějí lidé. Martin Fowler, Refactoring Zkušenost ukazuje, že programátor vytvářející programy, kterým jeho kolegové nerozumí, je pro firmu stejně nebezpečný jako záměrný záškodník Když takovéhoto geniálního programátora zlanaří jiný zaměstnavatel nebo se stane obětí dopravní nehody, musí firma celou jím navrženou část aplikace zahodit a nahradit jinou Nemusím umět napsat stejně geniální program jako kolega, ale když už jej kolega vytvoří, měl by být pro mě natolik srozumitelný, abych v něm dokázal udělat jednoduché úpravy 2012 e-bezpečnost v Kraji Vysočina 9

10 Jednoduchý příklad nesrozumitelného kódu Klasický zápis programátorů v jazyce C int znak; while ((znak = bufreader.read())!= očekávaný); Zápis, který preferují méně zkušení programátoři int znak; do { znak = bufreader.read(); } while (znak!= očekávaný); 2012 e-bezpečnost v Kraji Vysočina 10

11 Používané paradigma Bezpečnost aplikace je do značné míry závislá na použitém paradigmatu Složitost programů se stále zvětšuje, avšak kapacita mozku zůstává konstantní V průběhu 80 let se proto prosadilo objektové paradigma, které umožňuje psát větší, robustnější a snáze spravovatelné programy Výzkumy ukázaly, že tvorba programů větších než příkazů je předobjektovými technologiemi jen těžko realizovatelná Zastánci tradičních paradigmat tvrdí, že stačí dodržovat zásady modularity. Bohužel nestačí; OO paradigma přináší několik konstrukcí, které přibližují náš programový popis simulované skutečnosti a umožňuje tak efektivnější a současně robustnější realizaci Publikace o programování bezpečných aplikací už většinou ani s jiným než s objektovým přístupem nepočítají 2012 e-bezpečnost v Kraji Vysočina 11

12 Nevýhody předčasné koncentrace na kód Kurzy programování na školách se většinou soustředí na kód a opomíjejí nutnost výuky výrazně jiného způsobu myšlení, namísto OO paradigmatu učí jenom kódování v OO jazyce Absolventi těchto kurzů dále vyvíjejí své strukturované programy, jenom je nyní vyvíjejí v objektově orientovaném jazyce Takto vychovaný programátor myslí a hovoří v termínech kódu; mezi ním a zákazníkem vzniká sémantická mezera Common

13 Problémy přechodu na nové paradigma Trocha psychologie Děti před pubertou jsou schopny přijmout nová fakta, aniž by si je musely spojovat s tím, co již znají; s postupným získáváním dalších informací si předchozí informace propojují a zařazují do kontextu Puberta mění naše myšlení z konkrétního na abstraktní a při té příležitosti nás o tuto schopnost připraví Člověk po pubertě si každý nový poznatek okamžitě podvědomě propojí s tím, co zná, i když při tom často dojde k výrazné dezinterpretaci Strukturovaný programátor při výkladu OOP podvědomě převádí vysvětlované termíny do paradigmatu, v němž je doma Problémem tohoto přechodu je k výrazná desinterpretace pojmů, v hlavě zůstane něco jiného, než co přednášející říkal Na počátku kurzu se domnívá, že slyší triviality, aby v další části zjistil, že se nechal zmást svou předchozí zkušeností a nyní se v termínech ztrácí Přechod trvá typicky měsíců; čím zkušenější je přeškolovaný programátor, tím delší a bolestivější je jeho přechod 2012 e-bezpečnost v Kraji Vysočina 13

14 Vaše jistota na trhu IT Zásady programování bezpečných aplikací Architektonické zásady Jednoduchost Zapouzdření a rozhraní Průzračnost kódu i aplikace Modifikovatelnost a rozšiřitelnost Jasné rozdělení zodpovědností Neopakovat kód s podobnou funkcí A další 2012 e-bezpečnost v Kraji Vysočina 14

15 Architektonické zásady Dobře navržená architektura výrazně snižuje pravděpodobnost vzniku slabých míst napadnutelných útočníkem Maximalizovat soudržnost (maximize cohesion) Míra soudržnosti označuje jak spolu souvisí funkcionalita jednotlivých části daného modulu Řešení úkolu by nemělo být rozcourané po programu Části programu s podobnou funkcionalitou by měly být součástí společné komponenty a naopak by se v ní neměly vyskytovat součásti řešící něco zcela jiného Minimalizovat provázanost (minimize coupling) Při definici každé entity bychom měli minimalizovat počet entit, které daná entita pro splnění daného úkolu oslovuje S konkrétními pravidly přichází zákon bohyně Demeter e-bezpečnost v Kraji Vysočina 15

16 Jednoduchost Čím je kód složitější, tím snáze přehlédneme dírku pro útočníka KISS (Keep it simple, Stupid!) Principle of good enough (POGE) Jednoduchý kód je vytvořen rychleji, obsahuje méně chyb, je robustnější a snadněji se modifikuje Často se také formuluje : vytvoř to nejjednodušší, co ještě bude fungovat Nevytvářejte YAGNI (You aren t going to need it) Řada programátorů má nutkavou potřebu vytvářet podprogramy, které by se mohly hodit; vytvářejte je, až budou opravdu potřeba, protože snižují robustnost kódu viz princip KISS e-bezpečnost v Kraji Vysočina 16

17 Zapouzdření a rozhraní Minimalizovat dostupnost informací použitelných pro napadení Zapouzdření: Zveřejněte, co umíte, ale tajte, jak to děláte Programátor musí u každé entity (třída, objekt, metoda, ) jasně oddělit, co musí okolní program o dané entitě vědět, aby ji mohl použít, a co definoval jenom proto, aby daná entita plnila svůj úkol Programujte proti rozhraní, ne proti implementaci Programátor by nikdy neměl využívat toho, jak je některá část programu definována, leda by tato skutečnost byla přímo uvedena v dokumentaci a stala se tak součástí rozhraní používané entity (třída, objekt, metoda, ) e-bezpečnost v Kraji Vysočina 17

18 Průzračnost kódu i aplikace Kód, v němž se nevyznáme, se hůře zabezpečuje proti případným záměrným útokům Tvořte kód pro potenciálního modifikátora Každá aplikace, která za něco stojí, bude v budoucnu upravována => pište tak, aby byly případné budoucí úravy co nejjednodušší Princip minimálního překvapení (Principle of least astonishment) Nenuť mne přemýšlet (Don t make me think) Kód by měl být srozumitelný s minimálním mentálním úsilím Aplikace by měla respektovat zavedené zvyklosti a očekávání a nevymýšlet si na budoucího uživatele (ani programátora) žádné překvapující obraty e-bezpečnost v Kraji Vysočina 18

19 Modifikovatelnost a rozšiřitelnost Připravenost kódu k modifikacím zvyšuje pravděpodobnost, že modifikace budou udělány čistě a nevzniknout skryté slabiny Open/Close Principle Jednotlivé části kódu by měly být uzavřeny vůči přímým modifikacím, ale otevřeny vůči dalším rozšířením Jakmile je kód jednou dokončen, mělo by se do něj zasahovat pouze při opravách objevených chyb; nové funkce by měly být realizovány pouze přidáním dalšího kódu Připravenost na změny zadání Při návrhu programu bychom měli počítat s tím, že jedinou konstantou současného programování je jistota, že zadání se brzy změní e-bezpečnost v Kraji Vysočina 19

20 Jasné rozdělení zodpovědností Potřebujeme usnadnit budoucí rozhodnutí kam sáhnout, abychom kód požadovaně upravili, a současně minimalizovat množství potřebných zásahů Princip jediného odpovědného (objektu) Single Responsibility Principle Každá část kódu by měla být zodpovědná za jedinou věc, měla by mít jediný, dobře definovaný úkol Oddělení zodpovědností (Separation of concerns SoC) Různá funkcionalita by měla být řešena různými částmi kódu, které by se měly překrývat pouze minimálně To ovšem neznamená, že by různé části kódu nemohly používat společné entity e-bezpečnost v Kraji Vysočina 20

21 Neopakovat kód s podobnou funkcí Objevuje-li se stejný či podobný kód na více místech, musíme při každé modifikaci oběhnout všechna tato místa a všude příslušný kód správně opravit DRY - Don t repeat yourself ; DIE Duplication is Evil Zavrhněte programování copy-paste, neopakujte znovu dříve napsaný kód Princip korektní abstrakce Každá důležitá část funkcionality by měla být implementována na jednom místě. Řeší-li několik částí kódu podobnou funkci, měli bychom je abstrahovat jako obecnější princip a společné jádro pak definovat na jednom místě e-bezpečnost v Kraji Vysočina 21

22 A další Neukládejte důvěrné informace jako běžný text Verifikujte všechny vstupy uživatele Vyvarujte se předčasných snah o optimalizace 60 % zkrachovalých projektů krachuje právě kvůli předčasným snahám o optimalizaci kódu Nechovejte se podle hesla: Proč řežete tupou pilou? Nemáme čas ji nabrousit Sledujte nové trendy v programování OOP, návrhové vzory, nová paradigmata, paralelní programování Sledujte nové technologie Frameworky, jazyky Naučte se anglicky, nebo změňte povolání 2012 e-bezpečnost v Kraji Vysočina 22

23 Vaše jistota na trhu IT Pachy v kódu 2012 e-bezpečnost v Kraji Vysočina 23

24 Uvnitř tříd 1/4 Dlouhé metody Kratší metody se lépe čtou a jsou celkově pochopitelnější Kratší metody obsahují méně chyb a snáze se udržují Komentáře Všechny veřejné metody by měly mít dokumentační komentáře; jejich vynechání je omluvitelné pouze u těch nejjednodušších metod se samovysvětlujícími názvy (většinou getry a setry ) Komentáře by měly vysvětlovat PROČ a ne CO; neměly by duplikovat kód Nutnost použít komentáře bývá často příznakem toho, že metoda je příliš složitá a bylo by ji vhodné rozdělit na několik metod jednodušších Dlouhé seznamy parametrů Snižují srozumitelnost kódu Zavání tím, že kód bude zbytečně složitý Často je výhodné nahradit seznam parametrů přepravkou 2012 e-bezpečnost v Kraji Vysočina 24

25 Uvnitř tříd 2/4 Opakování stejného či podobného kódu Potenciální problémy při úpravách kódu Musíme si pamatovat, kam všude jsme upravovaný kód zkopírovali Na všech místech jej správně upravit Příliš složité podmínky a větvení V převážné většině případů se po rozbití složitých podmíněných konstrukcí kód nejenom zpřehlední, ale také zrychlí Kombinatorická exploze V mnohých případech se objevuje množství variant kódu, které se navzájem liší pouze v maličkostech Často pomáhá vhodné zavedení genericity nebo použití návrhového vzoru Dekorátor Názvy typů v názvech metod Pokud musíte náhodou upravit název typu, musíte pak upravovat i názvy postižených metod 2012 e-bezpečnost v Kraji Vysočina 25

26 Uvnitř tříd 3/4 Velké třídy Jsou stejně obtížně čitelné a spravovatelné jako dlouhé metody Většinou porušují řadu další zásad, především zásadu, že každý objekt (a tím je i třída) má být zodpovědný za jedinou, přesně definovanou věc Kryptické názvy tříd, metod a proměnných Z názvu by mělo být vždy patrné, co má daný objekt na starosti a za co je zodpovědný Nekonzistentní názvy Stejná věc by se měla pokaždé nazývat stejně Java: length size Mrtvý kód Nepoužívaný kód by měl být odstraněn dříve, než jej někdo omylem použije, a to nejspíš spatně Díky správě verzí se k němu můžeme v případě potřeby vrátit 2012 e-bezpečnost v Kraji Vysočina 26

27 Uvnitř tříd 4/4 Zbytečná obecnost Tvořte kód, který řeší současné problémy, a nepřemýšlejte zbytečně nad řešením problémů, které by možná mohly někdy nastat až nastanou, budou se řešit Podivuhodná řešení Řešení problému by mělo být přímočaré a průzračné Podivuhodná řešení jsou často zbytky po duplikovaném a následně všelijak přizpůsobovaném kódu Pomocné atributy Množství pomocných, dočasných atributů bývá příznakem špatně navrženého kódu 2012 e-bezpečnost v Kraji Vysočina 27

28 Příklad důsledku špatného názvu public Vec odebervec(string vec) {//Špatný název parametru for (Vec cokoli2: seznamveci) { if (vec.getnazev().equals(vec)) {//Plete proměnné seznamveci.remove(vec); return vec; } return null; } } public Vec odebervec(string nazevveci) { //Dobrý název for (Vec vec: seznamveci) { if (vec.getnazev().equals(nazevveci)) {//Neplete se seznamveci.remove(vec); return vec; } return null; } } 2012 e-bezpečnost v Kraji Vysočina 28

29 Mezi třídami 1/5 Podobné třídy s rozdílnými rozhraními Třídy, které jsou si podobné uvnitř, ale liší se navenek, je vhodné upravit tak, aby i jejich rozhraní byla podobná či dokonce stejná Posedlost primitivy Nepoužívejte sadu primitiv jako náhradu objektu, který by všechna data sdružoval pod jednou střechou Datové třídy Třídy s instancemi určenými pouze k úschově dat jsou podezřelé; objekt by měl uschovávat data proto, aby s nimi mohl něco dělat Existují i výjimky např. přepravka; tam je ale jasný cíl Shluky dat Vyskytují-li se často pohromadě nějaká data, nejspíš k sobě patří => uvažujte o objektu, který tato data sdruží 2012 e-bezpečnost v Kraji Vysočina 29

30 Mezi třídami 2/5 Odmítnuté vazby Pokud dceřiná třída nepoužívá žádnou funkčnost své rodičovské třídy, je dědičnost nejspíše zbytečná Nevhodné důvěrnosti Jednotlivé třídy by měly mít co nejméně společného Třídy, které toho dělají příliš mnoho spolu bývají příznakem nevhodného návrhu Nevhodné zveřejňování Třída by měla minimalizovat zveřejňování jakýchkoliv informací o svých útrobách, tj. o své implementaci Cíleně minimalizujte zveřejňování takovýchto informací a posilujte tak zapouzdření 2012 e-bezpečnost v Kraji Vysočina 30

31 Mezi třídami 3/5 Líné třídy Každá třída by měl mít pádný důvod pro svoji existenci. Zbytečně definované třídy pouze zvyšují celkovou složitost projektu. Máte-li třídu, která skoro nic nedělá, zamyslete se nad tím, nebylo-li by výhodnější rozpustit její funkčnost mezi ostatní třídy Prostředníci Pokud třída většinu své funkčnosti na někoho deleguje, je v projektu pravděpodobně zbytečná Dávejte si pozor na třídy, které slouží pouze jako obaly na instance jiných tříd a jejich funkcionalitu Prostředníci bývají převlečené závislosti Zřetězení zpráv Dlouhé posloupnosti volání metod a dočasných proměnných potřebné k získání potřebných dat většinou přinášejí skryté závislosti 2012 e-bezpečnost v Kraji Vysočina 31

32 Mezi třídami 4/5 Špatně umístěná metoda Metoda, která intenzivně používá atributy a metody jiné třídy by měla být nejspíš definována ve třídě, jejíž členy používá Rozptýlené změny Vyžaduje-li změna v jedné části třídy nutnost upravit i jinou část, promyslete si, jestli třída neobsahuje dvě relativně nezávislé části, a nebylo-li by ji proto vhodné rozdělit na dvě třídy tak, aby případné změny byly vždy omezeny na jedinou třídu Domino Vyvolá-li změna v jedné třídě kaskádu změn v závislých třídách, je vhodné uvažovat o takové refaktoraci, po níž bude změna omezena pokud možno na jedinou třídu 2012 e-bezpečnost v Kraji Vysočina 32

33 Mezi třídami 5/5 Paralelní hierarchie dědičnosti Občas se stává, že s každou definicí potomka jedné třídy musíte současně definovat i potomka jiné třídy; v takovém případě je vhodné se zamyslet nad tím, zda by nebylo vhodné obě hierarchie dědičnosti nějak sloučit Nekompletní knihovní třída Máme-li knihovnu, jejíž obsah nemůžeme změnit, a potřebujeme-li metodu, která v této knihovně není definovaná, často její definici připíchneme k jiné třídě; vhodnější by ale bylo definovat separátní knihovní třídu, která bude schránkou na takovéto metody Rozmělněné řešení O rozmělněném řešení hovoříme tehdy, je-li k dosažení řešení potřeba příliš mnoho (třeba 5) tříd dané vrstvy; v takovém případě bychom měli uvažovat o úpravě návrhu 2012 e-bezpečnost v Kraji Vysočina 33

34 Vaše jistota na trhu IT Literatura 2012 e-bezpečnost v Kraji Vysočina 34

35 Doporučená literatura 1/7 OOP Naučte se myslet a programovat objektově, Computer Press 2010, ISBN Učebnice pro středoškoláky psaná jako rozhovor Soustředí se na to, jak program navrhnout Není to učebnice jazyka, jazyk je pouze nástroj Učí navrhovat programy podle výše uvedených zásad ICZ, 2011 Rudolf Pecinovský Úvod do OOP 35

36 Doporučená literatura 2/7 Myslíme objektově v jazyku Java Vydala Grada, 2008 ISBN , chystá se nové vydání pro Javu 7 Nepředpokládá žádné předchozí programátorské znalosti Na rozdíl od ostatních učebnic neučí hlavně syntaxi a knihovny, učí především programování Učí navrhovat programy podle výše uvedených zásad a na příkladech ukazuje nebezpečí při jejich nedodržení ICZ, 2011 Rudolf Pecinovský Úvod do OOP 36

37 Doporučená literatura 3/7 M. Fowler: Refaktoring zlepšení existujícího kódu, Grada 2003, ISBN Katalog metod úprav kódu zlepšujících návrh a neměnících funkčnost Velmi dobrý překlad J. Bloch: Java efektivně, 57 zásad sw experta, Grada 2002, ISBN Důležité zásady návrhu dobrého kódu; jedna z nejlepších knih o programování Akceptovatelný překlad K. Beck: Programování řízené testy, Grada 2004, ISBN Představení koncepce + řada doporučení Akceptovatelný překlad, je psána pro Američany Už nejsou v nabídce, je třeba hledat v knihovnách Copyright 2009, Rudolf Pecinovský ICZ 37

38 Doporučená literatura 4/7 Joshua Bloch: Effective Java Second Edition, 2008 Sun Microsystems, Inc. ISBN Prezentace klíčových zásad defenzivního programování spolu s podrobným výkladem možných důsledků porušování těchto zásad Vyhodnocena jako nejlepší kniha o Javě všech dob Autor Javy prohlásil, že kdyby knihu znal, navrhl by podle ní Javu lépe 2012 e-bezpečnost v Kraji Vysočina 38

39 Doporučená literatura 5/7 The CERT Oracle Secure Coding Standard for Java, 2012 Pearson Education, Inc. ISBN Kompendium zásad pro vývoj bezpečných aplikací deklarovaných (a vyžadovaných) firmou Oracle 2012 e-bezpečnost v Kraji Vysočina 39

40 Doporučená literatura 5/7 Vydal Computer Press 2005, ISBN Podrobně vysvětluje řadu konstrukcí, které jinde podrobně česky vysvětlené nenajdete: Parametrizované typy a typové parametry Výčtové typy Anotace Kódování znaků rozšířené sady Unicode Je vyprodaná, ale můžete si ji legálně zdarma stáhnout ve formátu PDF na adrese ICZ, 2011 Rudolf Pecinovský Úvod do OOP 40

41 Doporučená literatura 7/7 Návrhové vzory 33 vzorových postupů pro objektové programování, Computer Press, 2007, ISBN Učebnice návrhu programů pro pokročilejší, předpokládá znalosti zhruba na úrovni modré učebnice Koncipovaná opět jako rozhovor ICZ, 2011 Rudolf Pecinovský Úvod do OOP 41

42 Vaše jistota na trhu IT Rozhraní Implementace Rozhraní Implementace Signatura Kontrakt Dokumentační komentáře Zásady správného programování

43 Programování proti rozhraní Jedna z hlavních zásad říká, že programovat se má proti rozhraní a ne proti implementaci Řada studentů ale stále netuší, co to je rozhraní a k čemu je v programu dobré Další možná umějí implementovat interface, ale vůbec netuší, kdy by jej měli zakomponovat do svého návrhu => Následuje malé opakování 2012 e-bezpečnost v Kraji Vysočina 43

44 Rozhraní Implementace Definuje, co bude zbytek programu o dané entitě vědět Všem na sebe všechno řekne Zabezpečuje, aby entita plnila svoji funkci Všechno se snaží maximálně utajit I samotné rozhraní má dvě složky Signatura Specifikuje vlastnosti, které může zkontrolovat překladač (názvy, typy, ) Kontrakt Doplňuje další důležité informace, které však překladač zkontrolovat nedokáže o jejich dodržení se musí postarat programátor Copyright 2006, Rudolf Pecinovský VŠE 03 44

45 Příklad rozhraní ITvar v projektu Tvary Copyright 2006, Rudolf Pecinovský VŠE 03 45

46 Příklad: Přesouvač Definici plynulého posunu nebudeme programovat v každé třídě, ale vytkneme ji do zvláštní třídy, která bude všechny tvary obsluhovat Instance třídy Přesouvač jsou ochotny plynule přesunout každého, kdo implementuje interface ITvar K implementaci se třídy musí veřejně přihlásit ICZ, 2011 Rudolf Pecinovský Úvod do OOP 46

47 Obsluha instancí neznámí třídy Pokud Přesouvač obsluhuje všechny instance rozhraní ITvar, je schopen plynule přesunout i instance třídy, která v době jeho vzniku ještě vůbec neexistovala stačí, aby třída implementovala ITvar ICZ, 2011 Rudolf Pecinovský Úvod do OOP 47

48 Zjednodušení požadavků Z hlediska objektů, které chtějí být pouze plynule přesouvány, má rozhraní ITvar z předchozího příkladu na implementující třídy zbytečně velké nároky Přesouvači by mělo stačit, když instance umí prozradit svoji pozici a umí se přesunout na zadanou pozici; vše ostatní je zbytečné Lepší řešení je proto definovat nové rozhraní, např. IPosuvný, které omezí své požadavky na ty, jejichž splnění přesouvač bezpodmínečně potřebuje Třída může implementovat několik rozhraní současně Můžeme proto definovat a implementovat i další rozhraní, která např. definují požadavky instancí třídy Kompresor na instance, které chtějí plynule měnit svůj rozměr ICZ, 2011 Rudolf Pecinovský Úvod do OOP 48

49 Implementace více rozhraní Když budou všechny třídy tvarů implementovat všechna rozhraní, diagram se opět znepřehlední K zpřehlednění diagramu využijeme možnosti definovat mezi rozhraními vztahy dědičnosti: Potomek přebírá všechny požadavky předka a může přidat i své vlastní ICZ, 2011 Rudolf Pecinovský Úvod do OOP 49

50 Pravidla dědičnosti rozhraní Rozhraní může být potomkem jiného rozhraní; svého rodiče pak uvede v hlavičce za slovem extends interface IHýbací extends IPosuvný, INafukovací V diagramu tříd znázorňujeme vztah předek potomek šipkou s trojúhelníkovým koncem ukazujícím k předku Dceřiné rozhraní přebírá (dědí) všechny metody deklarované rodičem Třídy implementující dceřiné rozhraní musí implementovat všechny jeho metody včetně zděděných Copyright 2006, Rudolf Pecinovský VŠE 05 50

51 Použití v projektu ICZ, 2011 Rudolf Pecinovský Úvod do OOP 51

52 Vaše jistota na trhu IT Děkuji za pozornost Rudolf Pecinovský mail: ICQ: e-bezpečnost v Kraji Vysočina 52

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda 1. Lze vždy z tzv. instanční třídy vytvořit objekt? 2. Co je nejčastější příčinou vzniku chyb? A. Specifikace B. Testování C. Návrh D. Analýza E. Kódování 3. Je defenzivní programování technikou skrývání

Více

1. Programování proti rozhraní

1. Programování proti rozhraní 1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní

Více

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod. Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání

Více

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Bridge. Známý jako. Účel. Použitelnost. Handle/Body Bridge Bridge Známý jako Handle/Body Účel odděluje abstrakci (rozhraní a jeho sémantiku) od její konkrétní implementace předchází zbytečnému nárůstu počtu tříd při přidávání implementací používá se v době

Více

Principy OOP při tvorbě aplikací v JEE. Michal Čejchan

Principy OOP při tvorbě aplikací v JEE. Michal Čejchan Principy OOP při tvorbě aplikací v JEE Michal Čejchan Témata přednášky Principy OOP - připomenutí Úvod - co nás vede k používání OOP Reálný svět - jak (ne)používáme OOP Nedostatky na úrovni programovacích

Více

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Využití OOP v praxi -- Knihovna PHP -- Interval.cz Page 1 of 6 Knihovna PHP Využití OOP v praxi Po dlouhé teorii přichází na řadu praxe. V následujícím textu si vysvětlíme možnosti přístupu k databázi pomocí různých vzorů objektově orientovaného programování

Více

Výčtový typ strana 67

Výčtový typ strana 67 Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce

Více

Objektově orientované programování v jazyce Python

Objektově orientované programování v jazyce Python Objektově orientované programování v jazyce Python Co to je objektově orientované programování Python není přímo objektově orientovaný jazyk, ale podporuje nejdůležitější části objektově orientovaného

Více

PRVNÍ ELASTICKÝ INFORMAČNÍ SYSTÉM : QI

PRVNÍ ELASTICKÝ INFORMAČNÍ SYSTÉM : QI PRVNÍ ELASTICKÝ INFORMAČNÍ SYSTÉM : QI Cyril Klimeš a) Jan Melzer b) a) Ostravská univerzita, katedra informatiky a počítačů, 30. dubna 22, 701 03 Ostrava, ČR E-mail: cyril.klimes@osu.cz b) DC Concept

Více

Řízení reálných projektů, agilní metodiky

Řízení reálných projektů, agilní metodiky Agent Technology Group Katedra kybernetiky Fakulta elektrotechnická - České vysoké učení technické Praha, 2009 Osnova Lze vyvíjet software bez metodiky? - bohužel ano menší komerční firmy (zejména vývoj

Více

ŠVP Gymnázium Ostrava-Zábřeh. 4.8.16. Úvod do programování

ŠVP Gymnázium Ostrava-Zábřeh. 4.8.16. Úvod do programování 4.8.16. Úvod do programování Vyučovací předmět Úvod do programování je na naší škole nabízen v rámci volitelných předmětů v sextě, septimě nebo v oktávě jako jednoletý dvouhodinový kurz. V případě hlubšího

Více

Analýza a Návrh. Analýza

Analýza a Návrh. Analýza Analysis & Design Návrh nebo Design? Design = návrh Není vytváření použitelného uživatelského prostředí (pouze malinká podmnožina celého návrhu) Často takto omezeně chápáno studenty nedokáží si představit,

Více

Proč je analytický model IS nutným předpokladem pro zabránění tvorbě molochálních systémů

Proč je analytický model IS nutným předpokladem pro zabránění tvorbě molochálních systémů Proč je analytický model IS nutným předpokladem pro zabránění tvorbě molochálních systémů Část 1 autor RNDr. Ilja Kraval, http://www.objects.cz březen 2007 firma Object Consulting s.r.o. Úvod V reakci

Více

Desatero, aneb nejčastější chyby v programování

Desatero, aneb nejčastější chyby v programování Desatero, aneb nejčastější chyby v programování Aleš Keprt Univerzita Palackého listopad 2008, březen 2009 1. Nepoužívejte pole na místě veřejného rozhraní Používejte třídy obsahující pole uvnitř Pole

Více

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování. Předmět: Programování

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování. Předmět: Programování Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování Vzdělávací oblast Informatika a informační a komunikační technologie pro vzdělávací obor Programování

Více

Výsledky bezpečnostního auditu TrueCryptu. Ing. Josef Kokeš. CryptoFest 2015

Výsledky bezpečnostního auditu TrueCryptu. Ing. Josef Kokeš. CryptoFest 2015 Výsledky bezpečnostního auditu TrueCryptu Ing. Josef Kokeš CryptoFest 2015 Obsah TrueCrypt Bezpečnostní audity TrueCryptu Audit č. 1 Audit č. 2 Zhodnocení Diskuse TrueCrypt Populární nástroj pro šifrování

Více

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika Vyšší odborná škola ekonomická a zdravotnická a Střední škola, Boskovice INOVACE PŘEDMĚTŮ ICT MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika Zpracoval: Jaroslav Kotlán srpen 2009s Úvod Modul Programování

Více

10 Balíčky, grafické znázornění tříd, základy zapozdření

10 Balíčky, grafické znázornění tříd, základy zapozdření 10 Balíčky, grafické znázornění tříd, základy zapozdření Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům balíčkům, grafickému

Více

Databázové patterny. MI-DSP 2013/14 RNDr. Ondřej Zýka, ondrej.zyka@profinit.eu

Databázové patterny. MI-DSP 2013/14 RNDr. Ondřej Zýka, ondrej.zyka@profinit.eu Databázové patterny MI-DSP 2013/14 RNDr. Ondřej Zýka, ondrej.zyka@profinit.eu Obsah o Co je databázový pattern o Pattern: Přiřazení rolí o Pattern: Klasifikace Databázové patterny o Odzkoušené a doporučené

Více

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1 24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE

Více

Úvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39

Úvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39 Programování v C# Hodnotové datové typy, řídící struktury Petr Vaněček 1 / 39 Obsah přednášky Referenční datové typy datové položky metody přístupové metody accessory, indexery Rozhraní Pole 2 / 39 Třídy

Více

GNU/LINUX SILNÉ A SLABÉ STRÁNKY

GNU/LINUX SILNÉ A SLABÉ STRÁNKY GNU/LINUX SILNÉ A SLABÉ STRÁNKY Název školy Obchodní akademie, Vyšší odborná škola a Jazyková škola s právem státní jazykové zkoušky Uherské Hradiště Název DUMu GNU/Linux silnéaslabéstránky Autor Martin

Více

Diagram tříd (class diagram)

Diagram tříd (class diagram) Diagramy tříd 1 Diagram tříd (class diagram) Zobrazuje třídy v daném systému a vztahy mezi nimi Zobrazuje statický stav ukazuje vzájemné interakce, ale neukazuje co se při těchto interakcích děje Při znázornění

Více

Vývojové diagramy 1/7

Vývojové diagramy 1/7 Vývojové diagramy 1/7 2 Vývojové diagramy Vývojový diagram je symbolický algoritmický jazyk, který se používá pro názorné zobrazení algoritmu zpracování informací a případnou stručnou publikaci programů.

Více

ROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML HTTP://KTIML.MFF.CUNI.CZ/~SURYNEK/NAIL094

ROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML HTTP://KTIML.MFF.CUNI.CZ/~SURYNEK/NAIL094 10 ROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML HTTP://KTIML.MFF.CUNI.CZ/~SURYNEK/NAIL094 Matematicko-fyzikální fakulta Univerzita Karlova v Praze 1 ROZHODOVÁNÍ TEORIÍ POMOCÍ SAT ŘEŠIČE (SMT)

Více

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň

Více

Název předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu:

Název předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu: Plán předmětu Název předmětu: Algoritmizace a programování (PAAPK) Školní rok: 2007/2008 Forma studia: Kombinovaná Studijní obory: DP, DI, PSDPI, OŽPD Ročník: I Semestr: II. (letní) Typ předmětu: povinný

Více

Virtuální metody - polymorfizmus

Virtuální metody - polymorfizmus - polymorfizmus - potomka lze použít v místě, kde je možné použít předka - v dosud probraných situacích byly vždy volány funkce, které jsou známy již v době překladu. V situaci, kdy v době překladu není

Více

3. Třídy. Základní pojmy objektového programování. Třídy

3. Třídy. Základní pojmy objektového programování. Třídy 3. Třídy Základní pojmy objektového programování Jak už víme, je Java objektovým programovacím jazykem. V úvodu této kapitoly si objasníme základní pojmy objektové teorie. Objekt představuje souhrn dat

Více

Projekt Obrázek strana 135

Projekt Obrázek strana 135 Projekt Obrázek strana 135 14. Projekt Obrázek 14.1. Základní popis, zadání úkolu Pracujeme na projektu Obrázek, který je ke stažení na http://java.vse.cz/. Po otevření v BlueJ vytvoříme instanci třídy

Více

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz Vývoj moderních technologií při vyhledávání Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz INFORUM 2007: 13. konference o profesionálních informačních zdrojích Praha, 22. - 24.5. 2007 Abstrakt Vzhledem

Více

Úvod do principů objektově orientovaného programování

Úvod do principů objektově orientovaného programování OBSAH DISTANČNÍHO E-LEARNINGOVÉHO KURZU PROFESNÍ RŮST ANALYTIKA OD ZÁKLADŮ (BASE) ÚVOD DO TECHNOLOGIÍ INFORMAČNÍCH SYSTÉMŮ Jak funguje počítač na základní úrovni Základy HTML Skripty ve webovských technologiích

Více

Zpracoval: houzvjir@fel.cvut.cz

Zpracoval: houzvjir@fel.cvut.cz Zpracoval: houzvjir@fel.cvut.cz 15. Návrhové vzory. Komponentový návrh, volná vazba versus těsná vazba. Oddělení politiky od mechanismu. Doménově specifické jazyky (DSL). (A7B36OMO) Obsah Návrhové vzory...

Více

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans. 1 Grafické rozhraní Studijní cíl Tento blok je věnován vytváření programů s využitím grafického rozhraní (GUI). Vysvětlen bude základní filozofie pro vytváření aplikací s GUI ve srovnání s konzolovými

Více

POŘÍZENÍ A IMPLEMENTACE INFORMAČNÍCH SYSTÉMŮ

POŘÍZENÍ A IMPLEMENTACE INFORMAČNÍCH SYSTÉMŮ POŘÍZENÍ A IMPLEMENTACE INFORMAČNÍCH SYSTÉMŮ ŽIVOTNÍ CYKLUS IS Stejně jako stroje a technologické linky, které jsou pořízeny, provozovány a následně, po opotřebování vyřazeny, má i informační systém svůj

Více

XML A XWEB JAKO NÁSTROJE PRO TVORBU WEBOVÉHO SÍDLA S VELKÝM MNOŽSTVÍM KŘÍŽOVÝCH ODKAZŮ

XML A XWEB JAKO NÁSTROJE PRO TVORBU WEBOVÉHO SÍDLA S VELKÝM MNOŽSTVÍM KŘÍŽOVÝCH ODKAZŮ XML A XWEB JAKO NÁSTROJE PRO TVORBU WEBOVÉHO SÍDLA S VELKÝM MNOŽSTVÍM KŘÍŽOVÝCH ODKAZŮ Vlastimil Čevela 664 42 Modřice, Benešova 279, tel. 547 216 183, http://www.volweb.cz/cevelavl/, e-mail: cevelavl@vol.cz

Více

Jazyk UML - přehled. diagram hierarchie procesů. IS firmy. podpora řízení. evidence zaměstnanců. pokladny. výroba. diagram procesních vláken

Jazyk UML - přehled. diagram hierarchie procesů. IS firmy. podpora řízení. evidence zaměstnanců. pokladny. výroba. diagram procesních vláken Jazyk UML - přehled Unified Modeling Language jazyk pro popis objektově orientované analýzy a návrhu aplikací slouží k vzájemné komunikaci mezi zadavatelem a návrhářem systému má několik částí, není nutné

Více

Úvod. Boj se zavlečeným impedančním nesouladem na úrovni databáze

Úvod. Boj se zavlečeným impedančním nesouladem na úrovni databáze Boj se zavlečeným impedančním nesouladem na úrovni databáze ABSTRACT: Impedanční nesoulad může být zmírněn správnou volbou databázové technologie. Článek vysvětluje, co to impedanční nesoulad je a uvádí

Více

Semestrální práce KIV/PC

Semestrální práce KIV/PC Semestrální práce KIV/PC Václav Löffelmann 2014-12-31 1 Zadání Naprogramujte v ANSI C přenositelnou konzolovou aplikaci, která jako vstup obdrží soubor obsahující obrázek ručně psané číslice a soubor s

Více

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň

Více

EMBARCADERO TECHNOLOGIES. Jak na BYOD chytře? Možnosti zapojování různých mobilních zařízení do podnikových informačních systémů.

EMBARCADERO TECHNOLOGIES. Jak na BYOD chytře? Možnosti zapojování různých mobilních zařízení do podnikových informačních systémů. Jak na BYOD chytře? Možnosti zapojování různých mobilních zařízení do podnikových informačních systémů. Trendy a móda EMBARCADERO TECHNOLOGIES Popularita a prodej mobilních zařízení roste Skoro každý má

Více

Maturitní témata Školní rok: 2015/2016

Maturitní témata Školní rok: 2015/2016 Maturitní témata Školní rok: 2015/2016 Ředitel školy: Předmětová komise: Předseda předmětové komise: Předmět: PhDr. Karel Goš Informatika a výpočetní technika Mgr. Ivan Studnička Informatika a výpočetní

Více

1 Příklady pro druhý semestr PGL

1 Příklady pro druhý semestr PGL 1 Příklady pro druhý semestr PGL Jiří Fišer 1.1 Formátovač 1.1.1 Vytvoření aplikace pro snadné vytváření jednoduše strukturovaných dokumentů. Strukturované dokumenty musí podporovat sekce (=kapitoly) a

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

Vstupní požadavky, doporučení a metodické pokyny

Vstupní požadavky, doporučení a metodické pokyny Název modulu: Základy PHP Označení: C9 Stručná charakteristika modulu Modul je orientován na tvorbu dynamických stánek aktualizovaných podle kontextu volání. Jazyk PHP umožňuje velmi jednoduchým způsobem

Více

Příloha č. 12. Systém společného přihlašování, tzv. Single Sign On, ochrana dat

Příloha č. 12. Systém společného přihlašování, tzv. Single Sign On, ochrana dat Název projektu: Redesign Statistického informačního systému v návaznosti na zavádění egovernmentu v ČR Příjemce: Česká republika Český statistický úřad Registrační číslo projektu: CZ.1.06/1.1.00/07.06396

Více

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka Metody tvorby ontologií a sémantický web Martin Malčík, Rostislav Miarka Obsah Reprezentace znalostí Ontologie a sémantický web Tvorba ontologií Hierarchie znalostí (D.R.Tobin) Data jakékoliv znakové řetězce

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky. Dokumentace k programu MMDoc

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky. Dokumentace k programu MMDoc Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky Dokumentace k programu MMDoc Vypracoval: Petr Dvořák Datum: 15.prosince 2005 1. Úvod 1.1. Účel tohoto dokumentu

Více

Systém elektronického rádce v životních situacích portálu www.senorady.cz

Systém elektronického rádce v životních situacích portálu www.senorady.cz Systém elektronického rádce v životních situacích portálu www.senorady.cz Obec Senorady Miroslav Patočka 2006 Obsah: 1. Úvodní informace 1.1 Informace pro uživatele 1.1.1 Přístupnost HTML, PDA, WAP, XML

Více

Převod 4GL aplikací do webového prostředí. Ing. Jan Musil, IBM ČR Community of Practice for

Převod 4GL aplikací do webového prostředí. Ing. Jan Musil, IBM ČR Community of Practice for Převod 4GL aplikací do webového prostředí Ing. Jan Musil, IBM ČR Community of Practice for CEEMEA Co je to EGL? -4GL a EGL Agenda Popis převodu z -4GL do EGL krok za krokem Obecný postup převodu Závěrečný

Více

7.5 Diagram tříd pokročilé techniky

7.5 Diagram tříd pokročilé techniky 7.5 Diagram tříd pokročilé techniky Stereotypy - jeden ze základních prostředků rozšiřitelnosti UML - pro modelovací konstrukce neexistující v UML, ale podobné předdefinované v UML definované uživatelem

Více

Olga Rudikova 2. ročník APIN

Olga Rudikova 2. ročník APIN Olga Rudikova 2. ročník APIN Redakční (publikační) systém neboli CMS - content management system (systém pro správu obsahu) je software zajišťující správu dokumentů, nejčastěji webového obsahu. (webová

Více

Informační systémy. Jaroslav Žáček jaroslav.zacek@osu.cz

Informační systémy. Jaroslav Žáček jaroslav.zacek@osu.cz Informační systémy Jaroslav Žáček jaroslav.zacek@osu.cz Úvod - co možná umíte z předmětu SWENG Rozdělení IT Architektura IS Klíčový prvek řízení IS z něj vycházejí detailní analytické i plánovací charakteristiky

Více

Počítačové sítě. Lekce 4: Síťová architektura TCP/IP

Počítačové sítě. Lekce 4: Síťová architektura TCP/IP Počítačové sítě Lekce 4: Síťová architektura TCP/IP Co je TCP/IP? V úzkém slova smyslu je to sada protokolů používaných v počítačích sítích s počítači na bázi Unixu: TCP = Transmission Control Protocol

Více

Bezpečnost intranetových aplikací

Bezpečnost intranetových aplikací Bezpečnost intranetových aplikací Karel Miko (miko@dcit.cz) DCIT, s.r.o. (www.dcit.cz) Hlavní body prezentace Obsah příspěvku Fakta: historie a současnost Bezpečnost uvnitř podniku Kde jsou slabá místa

Více

Principy UML. Clear View Training 2005 v2.2 1

Principy UML. Clear View Training 2005 v2.2 1 Principy UML Clear View Training 2005 v2.2 1 1.2 Co je touml? Unified Modelling Language (UML) je univerzálníjazyk pro vizuální modelování systémů Podporuje všechny životní cykly Mohou jej implementovat

Více

Bezepečnost IS v organizaci

Bezepečnost IS v organizaci Bezepečnost IS v organizaci analýza rizik Zabezpečení informačního systému je nutné provést tímto postupem: Zjistit zranitelná místa, hlavně to, jak se dají využít a kdo toho může zneužít a pravděpodobnost

Více

Značkovací jazyky a spol. HTML/XHTML XML JSON YAML Markdown, Texy!

Značkovací jazyky a spol. HTML/XHTML XML JSON YAML Markdown, Texy! Značkovací jazyky a spol. HTML/XHTML XML JSON YAML Markdown, Texy! Značkovací jazyky Angl. termín "MARKUP" ("vyznačování") Smyslem je přidat do textu metainformace: formátovací sémantické Výsledek je prostý

Více

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2014 5.3-5.8 9/14

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2014 5.3-5.8 9/14 ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2014 5.3-5.8 9/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 12 0:40 UML unifikovaný modelovací jazyk Zkratka tohoto

Více

2 Postup při programování, úvod do programovacího jazyka Java

2 Postup při programování, úvod do programovacího jazyka Java 2 Postup při programování, úvod do programovacího jazyka Java Studijní cíl V tomto bloku bude věnována pozornost správnému postupu při programování, budou detailně vysvětleny jednotlivé etapy programování

Více

Možnosti propojení Lotus Notes/Domino a jiných systémů. Ondřej Fuxa Your System spol. s r.o.

Možnosti propojení Lotus Notes/Domino a jiných systémů. Ondřej Fuxa Your System spol. s r.o. Možnosti propojení Lotus Notes/Domino a jiných systémů Ondřej Fuxa Your System spol. s r.o. Lotus Symposium 2010 Agenda Integrace proč o ní uvažujeme? Možnosti integrace Lotus Notes/Domino a jiných systémů

Více

Enterprise Architecture na MPSV 23.9.2015

Enterprise Architecture na MPSV 23.9.2015 Enterprise Architecture na MPSV 23.9.2015 Mgr. Bc. et Bc. Robert Baxa, náměstek ministryně Mgr. Jiří Károly, ředitel odboru rozvoje a bezpečnosti ICT Enterprise Architecture (EA) na MPSV Východiska pro

Více

IMPLEMENTACE ECDL DO VÝUKY MODUL 6: GRAFICKÉ MOŽNOSTI PC

IMPLEMENTACE ECDL DO VÝUKY MODUL 6: GRAFICKÉ MOŽNOSTI PC Vyšší odborná škola ekonomická a zdravotnická a Střední škola, Boskovice IMPLEMENTACE ECDL DO VÝUKY MODUL 6: GRAFICKÉ MOŽNOSTI PC Metodika Zpracoval: Ing. David Marek srpen 2009 Úvod Grafické možnosti

Více

PORTÁL STÁTNÍ ROSTLINOLÉKAŘSKÉ SPRÁVY VE SLUŽBÁCH

PORTÁL STÁTNÍ ROSTLINOLÉKAŘSKÉ SPRÁVY VE SLUŽBÁCH PORTÁL STÁTNÍ ROSTLINOLÉKAŘSKÉ SPRÁVY VE SLUŽBÁCH VEŘEJNOSTI I ZAMĚSTNANCŮ O zákazníkovi Státní rostlinolékařská správa (SRS) je úředním orgánem rostlinolékařské péče České republiky. Činnost Státní rostlinolékařské

Více

Seminář Java II p.1/43

Seminář Java II p.1/43 Seminář Java II Seminář Java II p.1/43 Rekapitulace Java je case sensitive Zdrojový kód (soubor.java) obsahuje jednu veřejnou třídu Třídy jsou organizovány do balíků Hierarchie balíků odpovídá hierarchii

Více

Jazyk C++ II. Šablony a implementace

Jazyk C++ II. Šablony a implementace Jazyk C++ II Šablony a implementace AR 2013/2014 Jazyk C++ II Úvod Dědičnost a kompozice nejsou vždy tou správnou odpovědí na požadavky znovupoužitelnosti kódu. Proto máme možnost definování určité třídy

Více

Základy analýzy. autor. Jan Novotný http://blog.novoj.net/ 15. února 2007

Základy analýzy. autor. Jan Novotný http://blog.novoj.net/ 15. února 2007 Základy analýzy autor Jan Novotný http://blog.novoj.net/ 15. února 2007 V prezentaci jsou použity diagramy z: Wikipedia, Sparx UML Tutorial, Argo UML Metodiky vývoje Různé metodiky vývoje vazba na fáze

Více

1. Průběh funkce. 1. Nejjednodušší řešení

1. Průběh funkce. 1. Nejjednodušší řešení 1. Průběh funkce K zobrazení průběhu analytické funkce jedné proměnné potřebujeme sloupec dat nezávisle proměnné x (argumentu) a sloupec dat s funkcí argumentu y = f(x) vytvořený obvykle pomocí vzorce.

Více

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech 7 Formátovaný výstup, třídy, objekty, pole, chyby v programech Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost formátovanému výstupu,

Více

Obchodní akademie, Náchod, Denisovo nábřeží 673

Obchodní akademie, Náchod, Denisovo nábřeží 673 Název vyučovacího předmětu: Programování (PRO) Obor vzdělání: 18 20 M/01 Informační technologie Forma vzdělání: denní Celkový počet vyučovacích hodin za studium: 258 (8 hodin týdně) Platnost: 1. 9. 2009

Více

Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz

Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz EXCEL 2000 2007 5 Obsah Úvod... 9 1. Makra v Excelu... 13 1.1 Proč je v Excelu obsažen i programovací jazyk...13 1.2 Něco málo o vývoji Excelu

Více

SOFTWAROVÉ INŽENÝRSTVÍ 1

SOFTWAROVÉ INŽENÝRSTVÍ 1 Metodický list č. 1 Název tématického celku: Úvod do softwarového inženýrství Základním cílem tohoto tematického celku je vysvětlení smyslu discipliny nazývané softwarové inženýrství. Tematický celek zahrnuje

Více

CineStar Černý Most Praha 31. 10. 2012

CineStar Černý Most Praha 31. 10. 2012 CineStar Černý Most Praha 31. 10. 2012 Stejná aplikace na více zařízeních Michael Juřek Microsoft s.r.o. Potřebné ingredience 1. Portable libraries 2. Návrhový vzor MVVM 3. XAML 4. Abstrakce platformy

Více

Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz

Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz O autorovi Rudolf Pecinovský patří ke špičkovým odborníkům na výuku programování. Publikoval již 39 učebnic, které byly přeloženy do pěti jazyků,

Více

ROZDÍL MEZI VZTAHEM EXTEND A INCLUDE V USE CASE DIAGRAMECH

ROZDÍL MEZI VZTAHEM EXTEND A INCLUDE V USE CASE DIAGRAMECH ROZDÍL MEZI VZTAHEM EXTEND A INCLUDE V USE CASE DIAGRAMECH 3. část RNDr. Ilja Kraval, srpen 2009 http://www.objects.cz ÚVOD Tento článek je pokračováním předešlých článků. Článek vysvětluje použití vztahu

Více

ROZDÍLY V NÁVRZÍCH RELAČNÍCH A OBJEKTOVÝCH DATABÁZÍ A JEJICH DŮSLEDKY PRO TRANSFORMACI MODELŮ

ROZDÍLY V NÁVRZÍCH RELAČNÍCH A OBJEKTOVÝCH DATABÁZÍ A JEJICH DŮSLEDKY PRO TRANSFORMACI MODELŮ ROZDÍLY V NÁVRZÍCH RELAČNÍCH A OBJEKTOVÝCH DATABÁZÍ A JEJICH DŮSLEDKY PRO TRANSFORMACI MODELŮ RELATIONAL AND OBJECT DATABASES DESIGN DIFFERENCES AND IT S IMPLICATIONS TO MODEL TRANSFORMATION Vít Holub

Více

Implementace SOA v GE Money

Implementace SOA v GE Money 3 Shared Experience Informační systémy a integrace Implementace SOA v GE Money Vybudování fungující SOA architektury a zavedení konceptu Enterprise Service Bus přineslo GE Money moderní a flexibilní IT

Více

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER váš partner na cestě od dat k informacím globtech spol. s r.o. karlovo náměstí 17 c, praha 2 tel.: +420 221 986 390 info@globtech.cz

Více

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13 Obsah Úvodem 9 1. Úvod do Ajaxu 11 Jak Ajax funguje? 13 Popis 13 Ukázky 13 Jaké jsou možnosti tvorby interaktivních webových aplikací? 15 Co je třeba znát? 16 Jak fungují technologie Ajaxu 16 Jak funguje

Více

Problémové domény a jejich charakteristiky

Problémové domény a jejich charakteristiky Milan Mišovič (ČVUT FIT) Pokročilé informační systémy MI-PIS, 2011, Přednáška 02 1/16 Problémové domény a jejich charakteristiky Prof. RNDr. Milan Mišovič, CSc. Katedra softwarového inženýrství Fakulta

Více

MASSIV. Middleware pro tvorbu online her

MASSIV. Middleware pro tvorbu online her MASSIV Middleware pro tvorbu online her Obsah prezentace Úvod Prostředky poskytované Massivem Využití jádra Massivu v Demu Zhodnocení projektu Prezentace Dema Úvod Část 1. Tým projektu Massiv Zahájení

Více

DATABÁZOVÉ SYSTÉMY. Metodický list č. 1

DATABÁZOVÉ SYSTÉMY. Metodický list č. 1 Metodický list č. 1 Cíl: Cílem předmětu je získat přehled o možnostech a principech databázového zpracování, získat v tomto směru znalosti potřebné pro informačního manažera. Databázové systémy, databázové

Více

KOMU JE KNIHA URČENA?

KOMU JE KNIHA URČENA? 7 Kapitola 0. O této knížce KOMU JE KNIHA URČENA? Tuto učebnici jsem vytvářel na základě mých přednášek a úvodních kursů na Vysoké škole manažerské informatiky a ekonomiky. Většina mých studentů měla malou

Více

Téma Školitel Počet dní Moderní principy řízení výrobního podniku

Téma Školitel Počet dní Moderní principy řízení výrobního podniku Katalog školení QAD Školení probíhají na adrese: Minerva ČR, Skálova 2490, Tábor začátek 9:00 hod do cca 16 hod Minerva ČR, AT Tower Pražákova 69, Brno začátek 9:00 hod do cca 16 hod cena 4000Kč/osoba,

Více

E-learningovýsystém Moodle

E-learningovýsystém Moodle E-learningovýsystém Moodle Jan Povolný Název projektu: Věda pro život, život pro vědu Registrační číslo: CZ.1.07/2.3.00/45.0029 Co je to Moodle? - systém pro tvorbu a správu elektronických výukových kurzů

Více

Program a životní cyklus programu

Program a životní cyklus programu Program a životní cyklus programu Program algoritmus zapsaný formálně, srozumitelně pro počítač program se skládá z elementárních kroků Elementární kroky mohou být: instrukce operačního kódu počítače příkazy

Více

Abstraktní datové typy: zásobník

Abstraktní datové typy: zásobník Abstraktní datové typy: zásobník doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Abstraktní datové typy omezené rozhraní

Více

Agenda. Docházka Návrat k minulému praktickému cvičení Zápočtové práce. Dokumentace. Dotazy, přání, stížnosti. Co, jak a proč dokumentovat

Agenda. Docházka Návrat k minulému praktickému cvičení Zápočtové práce. Dokumentace. Dotazy, přání, stížnosti. Co, jak a proč dokumentovat QA & Dokumentace Agenda Docházka Návrat k minulému praktickému cvičení Zápočtové práce QA opakování Dokumentace Co, jak a proč dokumentovat Dotazy, přání, stížnosti Kde je chyba? public static StringBuilder

Více

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY Příloha č. 3 k č.j. MV-159754-3/VZ-2013 Počet listů: 7 TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY Nové funkcionality Czech POINT 2012 Popis rozhraní egon Service Bus Centrální Místo Služeb 2.0 (dále jen CMS

Více

BPM Software pro přehledné řízení práce

BPM Software pro přehledné řízení práce www.orinoco.cz BPM Software pro přehledné řízení práce Snížení nákladů zvýšení efektivity Řízení workflow, procesy pod kontrolou Systém, který roste s firmou Co je orinoco? co je orinoco? Orinoco je BPM

Více

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v DSL manuál Ing. Jan Hranáč 27. října 2010 V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v současné době krátký) seznam vestavěných funkcí systému. 1 Vytvoření nového dobrodružství Nejprve

Více

4.4.2012. Obsah přednášky. Příkaz for neúplný. Příkaz for příklady. Cyklus for each (enhanced for loop) Příkaz for příklady

4.4.2012. Obsah přednášky. Příkaz for neúplný. Příkaz for příklady. Cyklus for each (enhanced for loop) Příkaz for příklady Základy programování (IZAPR, IZKPR) Přednáška 5 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky Příkazy cyklu -

Více

Aplikační standard - Dokumentace ICT Standardy MPSV MPSV

Aplikační standard - Dokumentace ICT Standardy MPSV MPSV ICT Standardy MPSV MPSV Vedoucí projektu Objednatele: Milan Hojer Vedoucí projektu Zhotovitele: Michal Čanda HEWLETT-PACKARD s.r.o. Vyskočilova 1/1410 140 21 Praha 4 Tel: 261 307 111 Datum: 7.10.2012 Informace

Více

Tabulkový procesor. Orientace textu. O úroveň níž O úroveň výš

Tabulkový procesor. Orientace textu. O úroveň níž O úroveň výš Formátování Formátováním rozumíme změnu vlastností daného objektu, dle našich představ a možností programu MS Excel. Formátovat můžeme texty v buňkách, můžeme formátovat buňky, listy i celý sešit a měnit

Více

Jak udělat webový projekt

Jak udělat webový projekt Jak udělat webový projekt a vydělat na něm první milion... plus stručné vysvětlení, kam se vývoj webových technologií ubírá Nápad! Nápad! 1. Nápad dostane programátor => nelze na něm vydělat! 2. Nápad

Více

MS Excel 2007 Kontingenční tabulky

MS Excel 2007 Kontingenční tabulky MS Excel 2007 Kontingenční tabulky Obsah kapitoly V této kapitole se seznámíme s nástrojem, který se používá k analýze dat rozsáhlých seznamů. Studijní cíle Studenti budou umět pro analýzu dat rozsáhlých

Více

Připravovaná legislativa pro přístupnost informací a dokumentů. Michal Rada Ministerstvo vnitra

Připravovaná legislativa pro přístupnost informací a dokumentů. Michal Rada Ministerstvo vnitra Připravovaná legislativa pro přístupnost informací a dokumentů Michal Rada Ministerstvo vnitra Governance accessibility Stavíme veřejnou správu a veřejné služby jako přístupné a využitelné pro všechny,

Více

Monitorování datových sítí: Dnes

Monitorování datových sítí: Dnes Monitorování datových sítí: Dnes FlowMon Friday, 29.5.2015 Petr Špringl springl@invea.com Obsah Monitorování datových toků = Flow monitoring Flow monitoring a bezpečnost sítě = Network Behavior Analysis

Více

OOT Objektově orientované technologie

OOT Objektově orientované technologie OOT Objektově orientované technologie Požadavky a případy užití Daniela Szturcová Institut geoinformatiky, HGF Osnova Systém Uživatelé Případy užití Vazby (asociace, generalizace, include a extend) Shrnutí

Více