Využití návrhových vzorů v praxi. Josef Miléř

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

Download "Využití návrhových vzorů v praxi. Josef Miléř"

Transkript

1 České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačů Bakalářská práce Využití návrhových vzorů v praxi Josef Miléř Vedoucí práce: Ing. Jiří Daněček Studijní program: Softwarové technologie a management Obor: Softwarové inženýrství 25. května 2011

2 iv

3 v Poděkování Rád bych poděkoval panu Ing. Jiřímu Daněčkovi, že se ujal tématu této bakalářské práce, za jeho připomínky a spolupráci. Dále bych chtěl poděkovat mé rodině za podporu v průběhu celého studia a mým spolužákům Michalovi a Milanovi.

4 vi

5 vii Prohlášení Prohlašuji, že jsem bakalářskou práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu 60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon). V Praze dne

6 viii

7 Abstract The bachelor project introduces design patterns as a programming tool. The software architecture and its styles, namely N-TIER pattern are also of the concern there. Later, some of the object-oriented design principles are implemented in a single example. Finally, the practical use of particular design patterns are presented in a simple software project. Abstrakt Bakalářská práce představuje návrhové vzory jako programovací nástroj, věnuje se softwarové architektuře a jejím stylům, zejména pak vzoru N-TIER a na konkrétním příkladě předvádí praktickou implementaci některých z objektových návrhových principů. Nakonec na jednoduchém softwarovém projektu demonstruje využití jednotlivých návrhových vzorů. ix

8 x

9 Obsah Úvod 1 1 Význam a využití návrhových principů 3 2 Softwarová architektura Úvod do softwarové architektury Architektonické vzory N-TIER / 3-TIER vzor Praktické použití architektonického vzoru Výčet požadavků na softwarový projekt Použité technologie a knihovny Programovací jazyk Komunikační frameworky Perzistentní frameworky Databáze Návrhové vzory Seznámení s návrhovými vzory Struktura Rozdělení návrhových vzorů Unified Modeling Language - UML Příklad použití návrhového vzoru Softwarový projekt Analýza a návrh Prezentační TIER Singleton Builder Facade Composite State Command Chain of Responsibility Byznys TIER Memento Data Transfer Object xi

10 xii OBSAH Proxy Table module Data TIER Abstract Factory Data Access Object Pooling Active Record Foreign Key Mapping Serialized LOB Testování Jednotkové testy Integrační testy Validační testy Systémové testy Závěr 35 Literatura 37 A Seznam použitých zkratek 39 B Diagramy 41 C Obsah přiloženého CD 51

11 Seznam obrázků 1.1 Základní model tvorby software User, Business, System [6] Běžný aplikační model [6] N-TIER architektonický návrhový vzor Model New I/O [7] Příklad vztahu asociace Příklad vztahu agregace Příklad vztahu kompozice Příklad návrhového vzoru - COMMAND Návrhový vzor - SINGLETON Návrhový vzor - BUILDER Návrhový vzor - FACADE Návrhový vzor - COMPOSITE Návrhový vzor - STATE Návrhový vzor - CHAIN OF RESPONSIBILITY Návrhový vzor - DTO Návrhový vzor - PROXY Návrhový vzor - ABSTRACT FACTORY Návrhový vzor - DATA ACCESS OBJECT Návrhový vzor - POOLING Návrhový vzor - FOREIGN KEY MAPPING B.1 Use Case Model B.2 Class Diagram - Prezentační TIER (bez ServiceLayer) B.3 Class Diagram - Prezentační TIER (ServiceLayer) B.4 Class Diagram - Byznys TIER B.5 Class Diagram - Data TIER B.6 Datový model B.7 Přehled použitých vzorů - prezentační TIER B.8 Přehled použitých vzorů - byznys TIER B.9 Přehled použitých vzorů - data TIER B.10 Strukturální testování xiii

12 xiv SEZNAM OBRÁZKŮ

13 Seznam tabulek 2.1 Architektonické styly [6] Jednotkové testy Strukturální testy Inkrementální testy Validační testy - Zobrazení všech View Systémové testy xv

14 xvi SEZNAM TABULEK

15 Úvod Životní cyklus tvorby softwarové aplikace se dá stručně shrnout do několika základních etap: analýza, návrh, implementace, testování, nasazení. V etapě tvorby návrhu může docházet k situaci, kdy jsou v různých projektech řešeny obdobné či stejné návrhové problémy. Pro řadu takových situací byly vytvořeny návrhové vzory, které danou problematiku řeší a dají se efektivně využít. Návrhový vzor je obecným znovu použitelným nástrojem pro řešení problému, který se určitým způsobem opakuje a je využitelný v různých situacích. Návrhový vzor pojmenovává, abstrahuje a identifikuje klíčové aspekty běžných návrhových struktur, které jsou vhodné pro tvorbu znovu použitelného objektově orientovaného návrhu. Návrhový vzor identifikuje použité třídy a instance, jejich role a vazby a přiřazení zodpovědností.[1] Návrhové vzory jsou aplikovatelné jak na úrovni návrhu celkové architektury informačních systémů, tak na úrovni řešení dílčích komponent. Motivem k sepsání této bakalářské práce byla potřeba blíže pochopit širší souvislosti zasazení návrhových vzorů do návrhu softwarových systémů, jejich role, vztahy v systému i mezi jednotlivými návrhovými vzory a jejich praktické využití. Cílem této bakalářské práce je představit návrhové vzory jako programovací nástroj a následně na jednoduchém příkladě předvést praktickou implementaci některých z objektových návrhových principů. Bakalářská práce se proto zabývá výběrem architektonického stylu, definicí rozhraní jednotlivých komponent, jsou zde zmíněny některé heuristiky, na jejichž základě jsou vytvářeny statické a dynamické části aplikace, a konečně i návrhové vzory. Tato bakalářská práce nemá představovat výčet veškerých návrhových vzorů s jejich popisem, ale byla sepsána s důrazem na aplikaci návrhových principů. Význam některých principů je proto názorně ilustrován v praktické části bakalářské práce. Bakalářské práce je strukturovaná do dvou hlavních částí, kde první část pokrývá nezbytný teoretický rámec a sestává z prvních tří kapitol. Druhá, praktická část je soustředěná ve čtvrté kapitole, tedy samotném softwarovém projektu. V první kapitole je stručně nastíněn význam a využití návrhových principů. Druhá kapitola se týká architektury návrhu softwarových systémů a jejich vzorů. Třetí kapitola popisuje strukturu publikace návrhových vzorů, jejich rozdělení, dále představuje nástroj pro modelování objektově orientovaných systémů a je zakončena příkladem využití návrhových vzorů. Softwarový projekt, který byl vytvořen v rámci této bakalářské práce a je popsán ve čtvrté kapitole, je jednoduchý registrační systém, kde si připojení uživatelé mohou listovat mezi akcemi, přihlásit se na ně a spravovat svůj profil. Tento jednoduchý model aplikace poskytuje dostatek prostoru pro objasnění funkcionalit návrhových principů. Jádro čtvrté kapitoly, a potažmo celé bakalářské práce, proto obsahuje přehled použitých návrhových vzorů včetně popisu jejich implementace. 1

16 2 ÚVOD

17 Kapitola 1 Význam a využití návrhových principů Návrhový vzor má svůj původ zcela mimo oblast softwarových technologií. V řadě publikací je citován architekt Christopher Alexander, který v šedesátých letech dvacátého století prohlásil: "Každý vzor popisuje jistý problém, který se může kolem nás znovu a znovu objevovat, a poté navrhuje jádro řešení k tomuto problému takovým způsobem, že toto řešení můžete využívat milionkrát znovu a znovu bez toho, aniž byste to tak kdy dělali dvakrát stejným způsobem".[2] Přestože Christopher Alexander v té chvíli mluvil o vzorech architektury návrhu budov, tato definice přesně popisuje problematiku návrhových vzorů. Počátky vzniku návrhových vzorů se datují do pozdních osmdesátých let, kdy se objektové programování stávalo více a více populární ve výzkumu a mezi experty, jako byli Gamma, Beck, Helm. Tito zkušení návrháři měli dokonalé podmínky pro to, aby začali zaznamenávat konstrukce spolupracujících objektů. Jejich práce se soustředila zejména kolem konferencí "Object-Oriented Programming, Systems, Languages and Applications"(OOPSLA) v Oregonu.[3] První publikací, která přináší strukturovaný přehled o základních návrhových vzorech a položila základy dalším snahám v tvorbě návrhových vzorů, je Design Patterns: Elements of Reusable Object-Oriented Software od Gamma, Helm, Johnson, Vlissides [1]. Tato čtveřice autorů, vystupující pod názvem Gang of Four, dala základy pro ostatní tvůrce, definovala strukturu publikace návrhového vzoru a představila prvních 23 vzorů. Dnes jich existují řádově stovky a uplatňují se ve specifických odvětvích. Návrhové vzory se v poslední době stávají jistým standardem pro návrhy softwarových systémů, jistotou dobré strukturovanosti, možnosti znovupoužitelnosti a přehledu. Opírají se o objektově orientované programovací jazyky a jejich nasazení získává v současnosti největší úspěch v Enterprise aplikacích. Tvorba software se dělí do několika etap: Analýza, návrh, implementace, testování, nasazení. Návrhové vzory jsou jistou paralelou těchto etap a doplňují právě analýzu, návrh a implementaci 1.1. Pokud mluvíme o návrhovém vzoru, vstupujeme tím do nitra návrhu a poté implementace daného projektu. Návrhové vzory přistupují k řešení problému z různé úrovně abstrakce. Řeší buď přímo specifický problém na úrovni části zdrojového kódu, či naopak odstupují do takové 3

18 4 KAPITOLA 1. VÝZNAM A VYUŽITÍ NÁVRHOVÝCH PRINCIPŮ Obrázek 1.1: Základní model tvorby software dálky, jako je vnější pohled na architekturu celého systému. Např. výběr strategie provedení nějaké úlohy na základě vstupních údajů (jdeme blíže k implementaci), nebo způsob návrhu celé byznys logiky vytvářeného systému (jdeme dále od konkrétní implementace). Návrhový vzor tedy pokrývá široké spektrum celého návrhu. Výrazným rysem návrhových vzorů je znovupoužitelnost daného řešení. Tato vlastnost má vliv na několik faktorů tvorby (ne jenom) informačních systémů [4]: rychlost vývoje softwarových systémů finance stabilita Použití návrhových vzorů má rovněž ekonomické implikace. To, jak rychle je firma schopná vyvíjet software, jí dává výraznou konkurenční výhodu na trhu. Využití již jednou navrženého řešení v dalších projektech generuje úsporu času, která se odrazí v nižší potřebě pracovní síly a tedy i úspoře nákladů. Díky tomu je firma schopná předložit zákazníkovi nižší cenovou nabídku za celý projekt a uspět v získání zakázky oproti konkurenci. Posledním zmíněným faktorem je stabilita. Již navržené funkční a otestované řešení jistého problému dává záruku k tomu, že bude stabilní. To se opět projeví v úspoře času, což se opět promítne do nižších nákladů a ceny, kterou lze zákazníkovi nabídnout. Velmi zjednodušeně se dá dojít k závěru, že návrhové vzory mají podíl na snižování nákladů na projekt.

19 Kapitola 2 Softwarová architektura Tato kapitola pojednává o softwarové architektuře a jejích stylech. Na tomto základě je vybrán a popsán vhodný architektonický styl pro softwarový projekt v rámci této bakalářské práce. Nakonec jsou zmíněny jednotlivé subsystémy toho vybraného architektonického stylu a popsány technologie, které byly použity pro projekt. 2.1 Úvod do softwarové architektury Martin Fowler ve své knize [5] definuje softwarovou architekturu, jako rozdělení systému na jednotlivé komponenty na nejvyšší možné úrovni a jako rozhodnutí, která bývají v následujících krocích těžko měnitelná. Softwarová architektura tedy neřeší nějakou specifickou implementaci. Použijeme-li slova Martina Fowlera, jsou to hlavně rozhodnutí o rozvržení, rozdělení systému na menší části. Špatně navržený systém je nestabilní, nepodporuje možná budoucí obchodní rozhodnutí, těžko se strukturuje. Obrázek 2.1: User, Business, System [6] Systém by měl být navržen tak, aby vytvořil jistý konsenzus mezi uživatelem, obchodní částí a systémem jako takovým (viz obrázek 2.1). Softwarová architektura je nedílnou součástí strategie návrhu celého systému. Pokládá základní kámen celé struktuře. Je to vlastně první dekompozice požadavků od zákazníka. 5

20 6 KAPITOLA 2. SOFTWAROVÁ ARCHITEKTURA Pokud se bude jednat o rozsáhlé systémy, je nadmíru důležité správně separovat jednotlivé komponenty a přiřadit jim právě tu správnou zodpovědnost za daný úkol. Několik následujících principů objasňuje předchozí tvrzení [6]: Správná separace - je důležité správně rozdělit systémové komponenty tak, aby jejich funkcionality co nejméně přesahovaly vzájemně vlastní hranice. V podstatě jde o to docílit: vysoké koheze - snaha o co nejvyšší míru účelovosti dané komponenty (třídy...), tzn. snaha o to, aby daná komponenta dělala pouze to, co má a nezajišťovala toho příliš. nízkého couplingu - snaha o snížení závislostí či propojení na ostatních komponentech (knihovnách, třídách...) Jednoduchá zodpovědnost - jde o to, aby každá komponenta měla co nejužší specializaci a byla zodpovědná právě za jednu danou vlastnost, samozřejmě na dané míře abstrakce. Minimální indirekce (Demeterův zákon) - jedna komponenta by neměla vědět o interní struktuře druhé komponenty. Pravidlo "Neopakuj se!"(dry - Do not repeat yourself) - jednoduché pravidlo o neopakování zdrojového kódu. Pokud existují duplikace, zřejmě to znamená, že by měla existovat komponenta spravující právě tuto duplicitu. Posledním bodem je pravidlo o tom "nepiš, co nemáš". Je potřeba vytvořit systém dle požadavků zákazníka, ne nic navíc. 2.2 Architektonické vzory Architektonické vzory (styly) jsou v podstatě podtřídou softwarové architektury. Je důležité si uvědomit, že architektura není to samé co vzor. Může existovat mnoho různých architektur, které implementují stejné architektonické vzory a naopak. Lze říci, že softwarová architektura je první dekompozicí návrhu systému, která implementuje výběr daného vzoru. Jelikož softwarový projekt v této bakalářské práci je jednoduchý registrační systém, jeho návrh začíná právě výběrem architektonického stylu. Rozhodnutí použít architektonický vzor přináší důležitou výhodu, která spočívá v užití jistého společného jazyka popisující systém na určité úrovni abstrakce. Bez nutnosti znalosti konkrétní implementace je možné diskutovat o daném systému. Například u vzoru CLIENT- SERVER je dopředu definována jeho konstrukce a možnosti použití technologie. Díky tomu, že není potřeba se zabývat detaily implementace, je možné na této úrovni zajišťovat služby vrstvy byznys procesu. Níže jsou představeny některé základní architektonické vzory (Tabulka 2.1). Kromě těchto uvedených stylů existuje řada dalších jako např. PIPE AND FILTERS, DATACENTRICké styly, VIRTUAL MACHINE a další. Tento výběr je pouze ukázkou toho, že nějaké existují, že mají jisté vlastnosti, podle kterých je pak možné volit vhodný styl pro dané řešení.

21 2.2. ARCHITEKTONICKÉ VZORY 7 Architektonický vzor Client/Server Domain Driven Architecture Layered Architecture Message Bus N-TIER Object-Oriented Popis Rozděluje systém na dvě aplikace, kde často bývá, že server je databází s aplikační logikou, reagující na požadavky klienta Vytváří doménový model na základě byznys konceptu. Jeden z nejpoužívanějších stylů. Základní princip je používaní služeb nižších vrstev vrstvami vyššími. Ne naopak. Rozděluje systém na komponenty na různé úrovni abstrakce. Komponenty jsou propojeny sběrnicí, do které přispívají svými zprávami, které jsou po této sběrnici doručovány na daný cíl. Každá TIER je spuštěná na jiném hardwaru. Komponenty reprezentující TIER mají různou funkcionalitu na stejné úrovni abstrakce. Rozložení zodpovědností třídám, které zapouzdřují data a chování. Tabulka 2.1: Architektonické styly [6] N-TIER / 3-TIER vzor N-TIER aplikace má podobné vlastnosti jako aplikace vícevrstvá. Dekomponuje systém na jednotlivé TIER, které jsou uspořádány do vrstev. Každá vrstva komunikuje pouze s vrstvou přilehlou a to skrze vytvořené rozhraní. Důležitou vlastností N-TIER modelu je, že jednotlivé TIER či komponenty poskytují různou funkcionalitu na stejné úrovni abstrakce a že každá TIER může být spuštěna samostatně na jiném zařízení, hardware. Druhá ze zmíněných vlastností nabízí následující benefity: Spravovatelnost - jelikož každá TIER je nezávislá, umožňuje jednoduchou správu aktualizací a změn uvnitř TIER. Škálovatelnost - obdobnost s vrstevnatým vzorem přináší jasnou dekompozici komponent celého systému. Flexibilita - na základě předchozích dvou vlastností je zřejmá flexibilita. Na obrázku 2.2 je běžný aplikační model, na kterém je popsán příklad, jakým způsobem může být N-TIER aplikace modelována. Systém se skládá ze čtyř vrstev plus jedné cross-cutting vrstvy. V N-TIER aplikaci by se tyto vrstvy rozdělily do tří samostatných aplikací. Komunikace probíhá od klienta skrze vrstvy do databáze a zpět ke klientovi. Následuje výčet jednotlivých vrstev a popis, jaké služby mají zajistit [6]: Presentation Layer - prezentační vrstva nám zprostředkovává základní komunikaci s uživatelem, většinou se v podstatě považuje za grafické rozhraní celého systému. V architektonickém stylu klient-server představuje klienta. Může nabízet následující služby:

22 8 KAPITOLA 2. SOFTWAROVÁ ARCHITEKTURA Obrázek 2.2: Běžný aplikační model [6] Kompozice - navržení nezávislých komponent zprostředkovávající komponování grafického rozhraní za běhu aplikace. Zjednodušuje správu těchto komponent. Navigace - zajištění správné navigace celého systému umožní uživateli jednoduchý průchod a pochopení nabízené služby. Klientské rozhraní - nabízí grafické rozhraní pro uživatele. Validace - kontrola správného zadání údajů. Business Layer - tato vrstva je jádrem logiky celého systému. Většinou mívá tyto základní komponenty: Facade - jedná se o základní rozhraní celé byznys vrstvy (TIER) a zjednodušuje přístup klienta k ostatním komponentám uvnitř vrstvy. Business Workflow - tato komponenta, nebo set komponent zajišťuje proces zpracování dat, které přijdou od klienta. Kontrolují tok dat, nastavují pořadí zpracování dat. Business Entities - vytvářejí doménový model struktury systému. Definují objekty jako např. Uživatel, Nákup, Nákupní položka atp. Data Layer - hlavním úkolem této vrstvy je zajištění přístupu k databázi a doručení dat byznys vrstvě. Na tomto místě lze poprvé zmínit návrhové vzory. Přístup k databázi a doručení dat byznys vrstvě řeší např. DATA ACCESS OBJECT či přístup mapování této vrstvy k databázi řeší ACTIVE RECORD aj. Mezi vlastnosti této vrstvy patří:

23 2.2. ARCHITEKTONICKÉ VZORY 9 Konektivita - řeší způsob připojení k databázi (viz POOLING atd.) BLOB (Binary Large Objects) - umožňuje uložit perzistentně instance tříd (objektů) Transakce - zajišťuje práci s daty nad databází jako s atomickou jednotkou. Service Layer - servisní vrstva nám poskytuje přenos zpráv mezi prezentační a byznys vrstvou, byznys vrstvou a data TIER. V případě použití Transmission Control Protocol (TCP) služby nám zprostředkuje vytvoření potřebných soketů, zapouzdření komunikace a definuje rozhraní pro samotnou komunikaci. Z toho i vyplývají služby, které má zajistit: Vytvoření zpráv - od přilehlé vrstvy získává data, vytvoří zprávu, do které vloží přenášené data. Vytvoření kanálu - zajistí vytvoření potřebného kanálu pro přenos zpráv v rámci servisní vrstvy. Transformace zprávy - transformuje zprávu do podoby přizpůsobené přenášenému médiu. Ukončení zprávy - definuje ukončení přenosu. Směrování zprávy - zajistí správné doručení zprávy danému cíli. Cross-Cutting - tato speciální vrstva může některé služby celého systému soustředit do jednoho místa. Přináší to samozřejmě lepší servis dané služby či možnost jednoduché změny. Mezi tyto služby patří: Autentizace - slouží k jednoznačnému určení uživatele, který přistupuje k systému. Autorizace - proces ověření přístupových oprávnění uživatele vstupující do informačního systému. Logování - systém ukládající informace o změnách v systému. Cache - v závislosti na tom, jak moc tenký klient je, je možnost zvýšit výkonnost právě pomocí cache. Opět to poskytuje příležitost k užití návrhových vzorů, jakými jsou např. IDENTITY MAP či LAZY-LOAD. V podstatě jde o chytrost klienta v době, kdy získává odpovědi ze serveru. Pokud má pocit, že dané informace by mohl později potřebovat, uloží je do cache a při příštím dotazu již nemusí žádat server resp. databázi, ale sáhne pouze do cache. Management výjimek - dobře navržená služba správy výjimek zajistí stabilitu klienta Praktické použití architektonického vzoru Pro tuto bakalářskou práci byl vybrán N-TIER architektonický návrhový vzor. Spolu s klientserver a vrstevnatým systémem jsou to nejpoužívanější vzory při požadavcích na GUI (grafické uživatelské rozhraní), DB (databázi) a připojení přes TCP. Projekt splňuje základní vlastnost N-TIER aplikace. Každá TIER může běžet na jiném virtuálním stroji. Praktické použití N-TIER architektonického návrhu je znázorněno na obrázku 2.3. Příklad použití N-TIER vzoru z obrázku 2.3 lze stručně popsat následovně:

24 10 KAPITOLA 2. SOFTWAROVÁ ARCHITEKTURA Obrázek 2.3: N-TIER architektonický návrhový vzor Prezentační TIER (klient) - je v našem případě tenkým klientem, který zasílá požadavky na server a ten mu vrací odpověď. Při každé odpovědi sestavuje GUI, případně plní daty zaslanými serverem. Ověřuje pouze vstupy na úrovni datových typů a povinných položek. Servisní vrstva klienta zajišťuje služby komunikace (startuje soket, sestavuje spojení se serverem) doručuje a provádí dekompozici přenášených dat (doručování zpráv - paketů) zprostředkovává odeslání zpráv (paketů) TCP - přenosový protokol zaručující doručení paketů. Servisní vrstva byznys serveru zajišťuje služby komunikace (startuje soket server, vyčkává na připojení klienta) doručuje a provádí dekompozici přenášených dat (doručování zpráv - paketů) zprostředkovává odeslání zpráv (paketů) přiřazuje číslo relace poskytuje LOG Byznys TIER - udržuje logiku celého systému. Vytváří požadavky na datový server. RMI - vzdálené volání metod viz kapitola Servisní vrstva data serveru zprostředkovává instanci objektu (Driver) pro vzdálené volání poskytuje LOG

25 2.3. VÝČET POŽADAVKŮ NA SOFTWAROVÝ PROJEKT 11 Data TIER udržuje spojení s databází nabízí metody pro získání dat z databáze JDBC - viz kapitola DB - MySQL viz kapitola NetInterface - rozhraní paketu přenášeného mezi klientem a serverem. Každý paket je sám sebou požadavkem či odpovědí. Dle druhu paketu se volají příslušné metody na fasádách. Každý paket nese úložiště dat ve formě DATA TRANSFER OBJECT (DTO) 4.7. Přenos mezi klientem a serverem je objektový. 2.3 Výčet požadavků na softwarový projekt Softwarový projekt v této bakalářské práci má splňovat následující požadavky: Přihlášení - základní možnost přihlásit se k existujícímu účtu na základě jména a hesla Registrace - možnost vytvoření vlastního účtu v systému Vyhledávání uživatele - vyhledání informací o ostatních uživatelích Vyhledávání akce - vyhledat akci a její detailní informace Vyhledávání organizace - možnost najít informace o organizaci a jejích členech Přihlášení se na akci - možnost přihlášení se na vypsanou akci Odhlášení se z akce - možnost odhlášení se z akce Editace vlastního profilu - možnost dodatečně upravit své údaje Těchto několik požadavků bývá jádrem veškerých registračních systémů. Jedná se o úroveň user. Tedy bez editace či přidávání dalších instancí. Díky jednoduchosti tohoto modelu lze názorně ukázat aplikaci návrhových vzorů dle druhu použití. Systém bude ukládat data na perzistentní medium. Nakonec bude vytvořeno grafické uživatelské rozhraní pro uživatele. 2.4 Použité technologie a knihovny Programovací jazyk Java Systém byl vytvořen s pomocí Java Development Kit (JDK) JDK 1.6 a spuštěn a otestován na Java Real-time Engine (JRE) jre6. Použita byla standardní knihovna. Grafické uživatelské rozhraní bylo vytvořeno pomocí knihovny Swing, bez použití frameworku. Nebyl použit žádný aplikační server, při tvorbě byly využity možnosti standardních knihoven Standard Development Kit (SDK).

26 12 KAPITOLA 2. SOFTWAROVÁ ARCHITEKTURA Komunikační frameworky New I/O NIO zkratka New I/O je od roku 2004 součástí kitu JDK 1.4. Jedná se o zcela nový přístup spravování TCP rozhraní. Na rozdíl od předchozí verze I/O, kde každému připojenému klientu bylo vytvořeno samostatné vlákno, NIO tuto problematiku řeší jinak. Vkládá mezi soket a klientskou část na serveru tzv. selector, který přepíná mezi jednotlivými kanály tak, jak přichází požadavky od vzdáleného klienta. Ty pak předává vytvořeným instancím spravující vzdálené dotazy. Viz obrázek 2.4. Obrázek 2.4: Model New I/O [7] Remote Method Invocation Základní vlastností této knihovny je možnost volání objektů vytvořených na jiném virtuálním stroji. Pro získání reference na tento vzdálený objekt se využívá Remote Method Invocation (RMI) registry. Vzdálený server pomocí třídy rmi.naming zavede tzv. stub pro daný objekt a umožní klientovi či přistupujícímu serveru, aby referenci na tuto instanci z RMI registry zprostředkoval. Poté lze plnohodnotně s instancí pracovat. Veškeré výpočty a správa se děje právě na vzdáleném virtuálním stroji. Další informace viz webové stránky firmy Oracle [8] Perzistentní frameworky Java Data Base Connectivity Java Data Base Connectivity (JDBC) je služba (knihovna) poskytující rozhraní pro unifikovaný přístup k databázím. Je napsána přesně pro rozhraní java.sql.*. Pro použití této knihovny je potřeba zaregistrovat Driver pomocí Class.forName(), čímž je spuštěna statická metoda, která právě com.mysql.jdbc.driver zaregistruje do java.sql.drivermanager. Voláním pak objektu DriverManager lze získat přístup ke všem třídám JDBC.

27 2.4. POUŽITÉ TECHNOLOGIE A KNIHOVNY Databáze MySQL Perzistentním médiem v tomto systému je databázový server MySQL5.5 s engine InoDB.

28 14 KAPITOLA 2. SOFTWAROVÁ ARCHITEKTURA

29 Kapitola 3 Návrhové vzory Následující kapitola představuje strukturu publikace návrhových vzorů a jejich rozdělení. Je zde nastíněn základní modelovací jazyk a jeho elementární vztahy mezi objekty. Na závěr je předvedena ukázka použití návrhového vzoru. 3.1 Seznámení s návrhovými vzory Struktura S vydáním knihy "Design Patterns: Elements of Reusable Object-Oriented Software"[1] byla definována struktura publikace návrhového vzoru. Každý vzor by měl pokrývat tyto požadavky: Název vzoru - každý návrhový vzor by měl svým názvem dopředu identifikovat problematiku, kterou řeší. Definování problému - měl by jasně definovat problematiku a popsat vhodnost použití. Řešení problému - nejdůležitější je představení daného řešení. Popis je na úrovni abstrakce, ne konkrétní implementace, protože vzor by měl být šablonou řešení, která může být použita v různých situacích. Souvislosti - informace o souvislostech ve vztahu k ostatním objektům či návrhovým vzorům Rozdělení návrhových vzorů Návrhové vzory byly původně rozděleny do tří skupin (názvy skupin se obecně nepřekládají) [1]: Creational - slouží ke kontrole tvorby objektů. Pomáhají systému, aby se stal více nezávislým na zodpovědnosti, jak budou objekty tvořeny, komponovány a reprezentovány. Behavioral - účastní se tvorby algoritmů a delegují zodpovědnosti mezi jednotlivé objekty. 15

30 16 KAPITOLA 3. NÁVRHOVÉ VZORY Structural - vytvářejí strukturu celého systému. V dnešní době se počet těchto kategorií rozrostl dle oblasti, kterou dané návrhové vzory řeší, např.: Concurrency - řeší problematiku souběhu dvou či více vláken, žádající stejnou službu (např. OPTIMISTIC OFFLINE LOCK, PESSIMISTIC OFFLINE LOCK). View - navrhuje možné strategie prezentační vrstvy (např. MVC). Distribution - zajišťuje distribuci objektů v systému (např. DTO4.3.2). Session state - spravuje stavové objekty (např. CLIENT SESSION STATE, SERVER SESSION STATE) Unified Modeling Language - UML Unified Modeling Language vznikl za účelem potřeby vizualizace objektového modelování. Stal se vyšší vrstvou návrhu softwarových systémů. Zpřehlednil samotný návrh a umožnil zjednodušenou komunikaci při řešení daných problematik. V dnešní době je to základní modelovací nástroj. Níže jsou stručně popsány tři nejzákladnější (a zároveň nejkontroverznější) vztahy uvnitř návrhů: Asociace Obrázek 3.1: Příklad vztahu asociace Asociace je primární vztah v UML a spočívá v tom, že jeden objekt nějakým způsobem používá druhý objekt. Na níže uvedeném příkladě je specifikováno šipkou, že objekt Klub používá objekt Osoba. Pokud by zde šipka nebyla, mohou oba dva sebe vzájemně používat. Agregace a kompozice Agregace i kompozice jsou podtřídou asociace a blíže specifikuje asociační vlastnost. V obou případech se bude jednat o modelování jistého celku. Agregace definuje model jako rozložitelný celek. Na obrázku objekt Auto používá objekty Motor a Kolo. V tomto případě se jedná o rozložitelný celek, což dokazuje i převedení objektů do skutečného světa. Kolo z jednoho auta lze použít i na jiné, pokud jsou typově identická. Naopak kompozice demonstruje na obrázku celek, který rozložitelný již není. Zde funguje pravidlo - s nikým se neděl. Není možné vzít pokoj z jednoho domu a dát ho do druhého. Instanci třídy Pokoj může používat pouze jedna instance třídy Dům, nemůže dojít ke sdílení instancí.

31 3.2. PŘÍKLAD POUŽITÍ NÁVRHOVÉHO VZORU 17 Obrázek 3.2: Příklad vztahu agregace Obrázek 3.3: Příklad vztahu kompozice 3.2 Příklad použití návrhového vzoru Jak již bylo řečeno výše, návrhový vzor řeší jistou problematiku, která již byla řešena, otestována, proběhl proces připomínkování a oprav až došlo k jeho publikaci. Níže je představen první návrhový vzor COMMAND. Obrázek 3.4: Příklad návrhového vzoru - COMMAND

32 18 KAPITOLA 3. NÁVRHOVÉ VZORY Návrhový vzor COMMAND lze použít tehdy, když je potřeba volat metodu objektu, o které není nezbytné vědět, co přesně dělá. Pouze je zřejmé, že daný objekt metodu implementuje a že jakmile je tento objekt předán, tak se metoda zavolá. V níže uvedeném projektu je vzor COMMAND využit v případě volání metod objektu FACADE, který je vstupním rozhraním prezentační TIER. Postup je následující: Server ve své byznys logice vytvoří objekt LoginViewPacket, který má funkci zobrazení přihlašovacího formuláře. Pošle ho prostřednictvím TCP směrem ke klientovi, kde na něj čeká objekt PacketReceiver. PacketReceiver jediné co ví, že mu určitě dorazí objekt Packet (či jeho potomek), který implementuje metodu doit(). Přijme, v tomto případě, LoginViewPacket a zavolá na něm implementovanou metodu. Metoda volá metodu objektu Facade. Zobrazí se GUI přihlašovacího formuláře. Základní výhodou této konstrukce je, že není třeba složitě vytvářet dlouhý přepínač s jednotlivými možnostmi, ale pouze na základě druhu objektu Packet je volána příslušná metoda na Facade.

33 Kapitola 4 Softwarový projekt V poslední kapitole je popsána základní analýza a návrh softwarového projektu včetně výsledků testů. Jednotlivé podkapitoly, které se věnují popisu využití konkrétních návrhových vzorů, je rovněž možné využít jako tutorial při studiu návrhových vzorů. 4.1 Analýza a návrh Do této bakalářské práce byl vybrán architektonický vzor N-TIER, podrobně popsán v podkapitole Analýza a návrh tohoto projektu je tvořena napříč celým dokumentem. Úvodní informace o systému jsou v kapitole 2, dále požadavky na systém v kapitole 2.3 a přehled použité technologie v kapitole 2.4. Use Case diagram je zobrazen v přílohách jako obrázek B.1. V následujících podkapitolách je v rámci jednotlivých TIER vysvětleno použití jednotlivých návrhových vzorů. Na úvod každého návrhového vzoru je popis problematiky, kterou řeší, a dále pak jeho konkrétní implementace. V přílohách jsou pak k nalezení diagramy použitých návrhových vzorů k daným TIER, prezentační TIER B.7, byznys TIER B.8, data TIER B Prezentační TIER Singleton SINGLETON lze použít v případě, kdy je třeba zajistit u daného objektu, aby existovala pouze jediná instance v celé době běhu programu. Řešení v softwarovém projektu Třída Singleton má privátní konstruktor, privátní atribut Singleton a Synchronized statickou metodu getinstance(). Metoda zajišťuje při prvním volání vytvoření vlastní instance, při dalších volání již vrací tu jedinou vytvořenou. Singleton byl použit u následujících tříd: ViewFactory - zajišťuje tvorbu GUI 19

34 20 KAPITOLA 4. SOFTWAROVÝ PROJEKT Obrázek 4.1: Návrhový vzor - SINGLETON SessionFactory - vrací session dané komunikace SocketFactory - navrací vytvořený soket pro komunikaci TCP Builder BUILDER odděluje konstrukci složeného objektu od jeho reprezentace. Stejný konstrukční proces může nabídnout různou reprezentaci. Jednoduše řečeno, pokud jsou různé objekty sestavovány stále stejným procesem, lze tento proces automatizovat právě vzorem BUILDER. Obrázek 4.2: Návrhový vzor - BUILDER Řešení v softwarovém projektu Vzor BUILDER je využíván pro sestavování jednotlivých pohledů grafického rozhraní. Vždy je volán objekt Director, je mu předán konkrétní objekt Builder (LoginViewBuilder) a zavolána metoda buildview(). Každý vytvářený pohled prochází procesem vytvoření komponent, vložením hodnot, nastavením posluchačů (vzor OBSERVER), rozmístění komponent a nakonec vložením do zobrazeného JFrame. V první fázi jsou komponenty vytvořeny a uloženy do datové struktury ArrayList(JComponent), dále je toto pole objektů předáno třídě (např.

35 4.2. PREZENTAČNÍ TIER 21 LoginViewSetter) zajišťující vložení hodnot. Ta postupně prochází polem jednotlivých komponent a předá hodnoty dle požadavku. Třetí částí vzniku View je zaregistrování posluchačů. Průchodem polem objektů je přiřazen daným komponentám posluchač. Zároveň je připravena metoda, která z View získá potřebné hodnoty a nakonec je přiřazena akce, kterou má po zavolání posluchače komponenta vykonat Facade Vzor FACADE poskytuje jednotné rozhraní složité hierarchii subsystémů. Pokud je v projektu několik subsystémů a všechny potřebují komunikovat s okolím, právě FACADE zjednoduší přístup k vnitřním rozhraním. Obrázek 4.3: Návrhový vzor - FACADE Řešení v softwarovém projektu V prezentační a byznys TIER slouží vzor FACADE jako hlavní rozhraní celé vrstvy. Odstiňuje přistupující objekty od vnitřní implementace. Pomáhá zjednodušit přístup k funkcionalitám jednotlivých TIER tím, že soustředí metody jednotlivých funkcí na jedno místo. FACADE v tomto projektu je součástí celého NetInterface, které je komunikačním protokolem přenášených dat po TCP mezi prezentační a byznys TIER Composite Vzor COMPOSITE komponuje objekty do stromové struktury. Vytváří složené objekty. Pomáhá zjednodušit manipulaci s objekty, které tvoří hierarchickou strukturu. Poté lze voláním jednoho objektu volat i všechny ostatní, které jsou v dané hierarchii. Řešení v softwarovém projektu Jsou využívány kompozitní struktury tvorby menu v knihovně javax.swing.*, které jsou postaveny na návrhovém vzoru COMPOSITE. Základním principem je, že všechny třídy tvořící samotné menu (JMenu, JMenuItem, JMenuBar...) dědí od tříd Container a JComponent. Dědění od těchto tříd předává svým potomkům kompozitní vlastnost, jak na úrovni třidy Container (mohu vkládat, či odstraňovat jednotlivé komponenty), tak zajišťuje vykreslení skrze třídu JComponent (její metodu paint(), resp. repaint()).

36 22 KAPITOLA 4. SOFTWAROVÝ PROJEKT Obrázek 4.4: Návrhový vzor - COMPOSITE State Vzor STATE umožňuje objektům měnit své chování na základě vnitřního stavu za běhu programu. Řeší nahrazení struktury case či if objektovým přístupem. Objekt se navenek chová dle aktuálního stavu, resp. dle právě použité třídy reprezentující stav. Obrázek 4.5: Návrhový vzor - STATE

37 4.2. PREZENTAČNÍ TIER 23 Řešení v softwarovém projektu Vzor STATE pomáhá specifikovat zobrazení grafických komponent na základě role uživatele. Tento návrhový vzor je využíván jako vnitřní stav celé TIER, na kterou se pak jednotlivé komponenty odkazují, a dle stavu se zobrazí či nikoliv. Např. u třídy RoleUser metoda isuser() vrací true, ale metody isaction() a ismanager() vrací false. Potom např. tlačítko AddAction při volání své metody isvisible(boolean) volá jako vstupní parametr metodu isaction() instance třídy, která implementuje rozhraní RoleUser. Pokud bude mít uživatel přiřazena práva pro správu akcí, potom bude implementovat třídu RoleAction a všechny funkcionality úrovně action bude mít zpřístupněné Command Návrhový vzor COMMAND a jeho využití byly již představeny v podkapitole 3.4. Obrázek 4.6: Návrhový vzor - CHAIN OF RESPONSIBILITY Chain of Responsibility V rámci do řetězu spojených objektů, je předáván požadavek na vyřízení tomu objektu, který daný požadavek vyřídí. V podstatě se jedná o předání zodpovědnosti objektu, kterému tato zodpovědnost byla přidělena. Řešení v softwarovém projektu Vzor CHAIN OF RESPONSIBILITY spolupracuje s návrhovým vzorem STRATEGY, kde rozhoduje strategii zpracování požadavku od uživatele. Pokud není schopen požadavek zpracovat, předává ho dál k vyřízení jiným třídám. Vzor je demonstrován na úrovni rozhraní jednotlivých tříd. Detailněji lze popsat na názorném příkladě. Např. ošetření vstupů je řešeno na úrovni prezentační TIER. Třída implementující rozhraní ActionInterface vykonává akce, které vyvolává uživatel systému. Každé akci je přidělena jistá zodpovědnost za to, co má sama zprostředkovat a co má předat dále na byznys TIER. K tomuto předávání zodpovědností slouží právě CHAIN OF RESPONSIBILITY.

38 24 KAPITOLA 4. SOFTWAROVÝ PROJEKT 4.3 Byznys TIER Memento Vzor MEMENTO slouží k uchování vnitřního stavu objektu, bez porušení jeho zapouzdření. Často se využívá při implementování služeb Undo či Checkpoint. Základním principem je uchování vnitřního stavu objektu buď na perzistentním úložišti, nebo v paměti, aniž by byla porušena struktura zapouzdření mechanizmu STATE. Řešení v softwarovém projektu Vzor MEMENTO je využit k uchování stavu prezentační TIER resp. jeho role. U jednotlivých uživatelů jsou uchovávány instance tříd implementující rozhraní Role např. RoleUser. K perzistenci slouží databáze s využitím vzoru SERIALIZED LOB Obrázek 4.7: Návrhový vzor - DTO Data Transfer Object Vzor DATA TRANSFER OBJECT (DTO) se zvolí, pokud je třeba přenést složitější konstrukci dat či např. v Java u metod navrátit více než jednu hodnotu. Tento princip je často využíván při přenosu dat v rámci systému či jeho modulů. Často totiž nestačí přenášet pouze jeden parametr resp. jeden datový typ. Konstrukce DATA TRANSFER OBJECT, která nám zapouzdřuje námi požadovaná data, usnadňuje jak komunikaci napříč systémem, tak mezi systémy. Nevýhodou může být vázanost na programovací technologii. Je potřeba zvážit při analýze a návrhu. Řešení v softwarovém projektu Vzor DTO zajišťuje přenos dat v rámci celého systému. Je doménově orientovaný, tzn. přenáší existující objekty. Mezi prezentační TIER a byznys TIER zapouzdřuje objekty jako DTO- Person či DTOOrganization. Např. DTOPerson má jako své atributy String login, String password, String name, String surname atp. Takto vytvořená struktura přenosu zjednodušuje a zpřehledňuje celý systém.

39 4.3. BYZNYS TIER Proxy Vzor PROXY zajišťuje kontrolu nad přístupem k jinému objektu. Mezi nejznámější vzory asi patří RemoteProxy, který poskytuje lokální reprezentaci objektů volaných ze vzdáleného cíle. Poskytuje sadu rozhraní, které tvoří přístup ke vzdáleným objektům. Obrázek 4.8: Návrhový vzor - PROXY Řešení v softwarovém projektu Vzor PROXY slouží jako zprostředkovatel rozhraní pro přístup do datové TIER. Skrze PROXY lze získat vzdálenou instanci DAOFactory, která dovoluje přistoupit do databáze. Jádrem PROXY je zde instance třídy Driver uložená v RMIregistry 2.4.2, kterou skrze rozhraní DriverInterface získá objekt DAOFactoryProxy. Tento mechanizmus je použit i při zavádění driveru v JDBC Po zavedení nezbytně nutného ovladače je získán kompletní přístup ke všem objektům v data TIER. Druh perzistentního media je vybrán parametrem uvnitř DAOFactory Table module Vzor TABLE MODULE je rozhodnutí o struktuře byznys logiky mezi třemi možnostmi - TRANSACTION SCRIPT, DOMAIN MODEL, TABLE MODULE [5]. Transaction Script - je nejjednodušším přístupem. Pokud na server přijde požadavek od klienta, vytvoří se transakce, provedou se potřebné změny v databázi, uzavře se transakce, pošle se odpověď na klienta. Každý dotaz má svou proceduru, která ho zpracovává. Domain Model - vyplatí se u složitějších systémů, kde se vytváří topologie objektů, které spolu v dané logice komunikují. Každý objekt zodpovídá za svou činnost. Bývá složitější mapovat rozhraní pro přístup do databáze. Table Module - každá tabulka v databázi má svou třídu v byznys logice, která ji reprezentuje. Tato třída pak obsahuje metody, které tvoří celou logiku systému.

40 26 KAPITOLA 4. SOFTWAROVÝ PROJEKT Rozhodnutí o výběru dané struktury je zásadní v dalších krocích. Těžko se refaktoruje z jedné možnosti na druhou. Je na zvážení, jakým způsobem se systém může změnit, rozrůst atd. Řešení v softwarovém projektu V tomto projektu byl zvolen TABLE MODULE. TRANSACTION SCRIPT by se jevil jako ideální volba, ale TABLE MODULE dává jistý přehled v tom, který objekt co dělá. V této konkrétní byznys logice existují právě třídy jako Person, Organization či Action. 4.4 Data TIER Abstract Factory Vzor ABSTRACT FACTORY poskytuje interface pro zastřešení konkrétních Factory, které řeší stejný problém různým způsobem. Abstrakce zde slouží jako rozhraní, které definuje strukturu a požadavky tříd Factory, které tuto abstrakci implementují. Obrázek 4.9: Návrhový vzor - ABSTRACT FACTORY Řešení v softwarovém projektu V tomto projektu je použit vzor ABSTRACT FACTORY pro zastřešení továrny DAOFactoryJDBC, která skrze JDBC nabízí přístup do databáze. Uvnitř třídy DAOFactory, abstraktní továrny, je naznačena možnost použití i jiné továrny DAOFactoryODBC, která by mohla zpřístupnit jiné typy databází např. Oracle. Stejně tak by mohla být vytvořena továrna pro uložení do souboru. Výhodou je, že změnou jednoho parametru je možné okamžitě připojit jiné médium a pracovat s ním bez potřeby upravit zbylý kód. Struktura abstrakce v tomto případě musí být navržena velmi pečlivě s ohledem na možné implementace Data Access Object Vzor DATA ACCESS OBJECT poskytuje data z databáze prostřednictvím svých metod. DATA ACCESS OBJECT může být různě mapován - viz podkapitola Společnou

41 4.4. DATA TIER 27 vlastností je specifičnost pro různá přístupová média a definované rozhraní pro stejný druh funkčnosti. Např. pokud bude potřeba uložit informace o uživateli jako např. jeho jméno a příjmení a bude požadována možnost uložení na pevný disk nebo do databáze, vytvoří se dvě třídy, které budou implementovat stejné rozhraní s metodami např. vložuživatele(), vraťuživatele(). Bude se tedy jednat o dvě třídy, které budou nabízet tyto služby, ale budou různě implementovány. Pak jednoduchým výběrem třídy resp. továrny lze přistoupit k vybranému médiu. Obrázek 4.10: Návrhový vzor - DATA ACCESS OBJECT Řešení v softwarovém projektu Na obrázku B.5 je znázorněna celá implementace DATA ACCESS OBJECT včetně FAC- TORY, který vytváří jednotlivé objekty. Hlavní výhodou tohoto přístupu je odstínění konkrétní implementace skrze ABSTRACT FACTORY a rozhraní jednotlivých DATA ACCESS OBJECT. Klient, v tomto případě byznys TIER, pouze vlastní rozhraní na celý tento přístup k databázi a implementaci ponechává na straně Data TIER Pooling Vzor POOLING nabízí řešení zajišťující sdílení vytvořených instancí v rámci systému či subsystému. Využije se v případě, že tvorba instance je příliš drahá. Pokud se vyplatí udržovat živé instance tříd oproti jednotlivým tvorbám instancí, které poskytují určitou službu, právě POOLING se stará o zprostředkování mezi přistupující uživatele resp. objekty. Zajišťuje perzistenci či držení v paměti nabízených instancí tříd, jejich distribuci a opětovné navrácení do úložiště pool. Řešení v softwarovém projektu Tato konstrukce byla využita v případě sdílení vytvořených připojení do databáze. Při inicializaci se systém automaticky spojí s databází pomocí deseti vytvořených spojení a tyto

42 28 KAPITOLA 4. SOFTWAROVÝ PROJEKT Obrázek 4.11: Návrhový vzor - POOLING instance pak udržuje v úložišti pool. Pokud přistupující klient potřebuje komunikovat s databází, volá továrnu ConnectionPool, která vrátí jednu z volných deseti připojení. Toto řešení zvyšuje rychlost vybavení klienta resp. jeho požadavků Active Record Vzor ACTIVE RECORD je způsob mapování DATA ACCESS OBJECT k databázi. Existuje několik přístupů, zde jsou uvedeny tři nejznámější: Row Data Gateway - objekt, který svými atributy odpovídá přesně jedné instanci v tabulce. Metody pak pokrývají základní databázové dotazy, jako např. insert, update, delete. Table Data Gateway - objekt odpovídá přesně celé tabulce. Nemá atributy, vstupní data se předávají, jako parametry metod. Metody vracejí celé record sety. Active Record - podobá se vzoru ROW DATA GATEWAY. Navíc má metody, které jsou spojeny s byznys logikou, např. getregisteredperson(name Action), metoda která vrací seznam všech instanci třídy Person, které jsou přihlášeni na danou akci. Pomocí základních dotazů vytvoří složitější dotaz. Pro více informací viz publikace [5] od Martina Fowlera. Řešení v softwarovém projektu Vzor ACTIVE RECORD svým provedením nabízí plné využití Standard Query Language(SQL) dotazů do databáze. Tím se přesouvá část výpočtů na datový server a rozkládá tak zátěž na jednotlivé TIER. DATA ACCESS OBJECT třídy jsou mapovány na instance jednotlivých tabulek s tím, že nabízejí komfortnější metody pro přenos dat s databází.

43 4.5. TESTOVÁNÍ Foreign Key Mapping FOREIGN KEY MAPPING (cizí klíč) je základním integritním omezením na úrovni databáze. Definují se tím jisté povinnosti, vlastnosti vzájemných asociací mezi tabulkami. Na obrázku 4.12 je tabulka person, která má jako jeden z atributů hodnotu ID. Toto číslo je jedinečné a existující uživatel má právě jedno. Ve druhé tabulce role jsou skrze ID přiřazovány uživatelům jejich role. Hodnota ID v tabulce role je definovaná jako FOREIGN KEY, čímž se říká, že pokud neexistuje instance v tabulce person s daným ID, nemůže existovat ani instance s tímto ID v tabulce role. Vzájemně se to vylučuje. Cizím klíčem jsou vlastně vysouvány atributy jedněch tabulek do druhých. Obrázek 4.12: Návrhový vzor - FOREIGN KEY MAPPING Řešení v softwarovém projektu Implementaci vzoru FOREIGN KEY MAPPING znázorňuje obrázek B Serialized LOB Vzor SERIALIZED LOB umožňuje uložení objektů na perzistentní úložiště. Pokud je např. potřeba uložit složitější strukturu objektů, vytvoří se jeden, který ostatní zapouzdří a jako bajtový proud pak uloží na perzistentní medium. Řešení v softwarovém projektu SERIALIZED LOB byl využit pro uchování instancí tříd, které implementují rozhraní Role jednotlivých uživatelů (tabulka role) B Testování Testy tohoto softwarového projektu byly provedeny za účelem snížení výskytu chyb na minimum. Testovalo se na těchto úrovních: Jednotkové testy Integrační testy

44 30 KAPITOLA 4. SOFTWAROVÝ PROJEKT Validační testy Systémové testy Jednotkové testy Jednotkové testy slouží ke zjištění správné funkčnosti a stability na úrovni nejmenších jednotek čili tříd. Otestovány byly třídy reprezentující objekty DATA ACCESS OBJECT metodou white-box, kde hlavním požadavkem je úplný přehled o struktuře jednotlivých tříd. Jako nástroj bylo použito vývojové prostředí NetBeans s nástrojem JUnitTest 4.5. Výstupy testů byly vypsány buď přímo do konzole, nebo byly ověřeny přímo v databázi. Následující tabulka přináší ukázku výsledku testů třídy DAOPersonJDBC (P - předpokládaný výstup, T - otestovaný výstup, V - výsledek): Č. Test Vstup P T V 1 existlogin(login) "milerjo1" true true OK 2 existlogin(login) "" false false OK 3 existlogin(login) "select login from person false false OK where login = milerjo1 " 4 existperson(login,password) "root","root" true true OK 5 existperson(login,password) "root","snizemic" false false OK 6 existperson(login,password) "", "" false false OK Tabulka 4.1: Jednotkové testy Jednotkové testy byly provedeny na následujících třídách: DAOActionJDBC DAOAddressJDBC DAOContractJDBC DAOOrganizationJDBC DAOPersonJDBC DAORoleJDBC ObjectHolder

45 4.5. TESTOVÁNÍ Integrační testy Integrační testy jsou založené na testování postupné konstrukce celého systému. Z pohledu jednotkového testování se jedná o slučování jednotek do subsystému a na něm pak aplikované testy. V této části testování byly použity dva přístupy [9]: Strukturální testování (White-box testing) - zaměřuje se na otestování cest, resp. všech rozhodovacích větví, zda-li jsou všechny použity, zda-li jsou korektně použity atp. Inkrementální testování - začíná testováním od prvních dvou modulů, odstraňuje chyby, poté přidává další modul a opět testuje a odstraňuje chyby až do úplného vytvoření systému. Strukturální testování Strukturální testování je zaměřeno především na zajištění správného průchodu rozhodovacích větví. Na obrázku B.10 je zobrazení otestování modulu vlastního profilu. Byly provedeny následující testy průchodu 4.2: Cesta Popis Výsledek 1, true, 4 defaultní zobrazení MyView, načtou se data z DB o OK přihlášeném uživateli 2, false, 4 aktualizace zobrazení organizace v JComboBox OK 3, false, false, 4 updateperson s nevyplněnými povinnými položkami OK 3, true, true, 5 updateperson bez příslušné organizace OK 3, true, false, 5 updateperson s příslušnou organizací OK Tabulka 4.2: Strukturální testy Strukturální testy byly provedeny na modulech byznys logiky: vyhledávací modul modul autentizace registrační modul modul správy akcí modul správy organizací modul vlastního profilu

46 32 KAPITOLA 4. SOFTWAROVÝ PROJEKT Inkrementální testování Principem inkrementálního testování je postupné testování, počínaje u dvou komponent. Tyto dvě komponenty se otestují, odstraní chyby a postupně se přidávají další části. Opět se testuje a odstraňují chyby. Takto se postupuje až do vytvoření celého systému. V softwarovém projektu vypracovaném do této bakalářské práce byly použity následující principy inkrementálního testování: Od shora dolů testování - tímto principem byly vyvíjeny a zároveň testovány jednotlivé TIER: Prezentační TIER - rozložení grafických komponent, komunikační engine, ošetření vstupů, objektový interface. Byznys TIER - komunikační engine, log modul, objektový interface. Datová TIER - komunikační rozhraní (RMI, JDBC), log modul. Sandwich integrační testování - tímto principem byla testována byznys logika byznys TIER. Kombinací těchto dvou principů byl vytvořen a otestován celý systém N-TIER aplikace na úrovni integračního testování. V tabulce 4.3 je příklad testů rozložení grafických komponent: Test Label TextField Button ComboBox Výsledek LoginView "Login", "Password", "Note" RegisterView "Login", "Password", "Name", "Surname", " ", "Note" "Login", "Password" "Login", "Password", "Name", "Surname", " ", "LogIN", "Register" "Register" Tabulka 4.3: Inkrementální testy OK OK Validační testy Validační testy se provádí po dokončené integraci a slouží k ověření, že požadavky, které byly od zákazníka vzneseny, jsou splněny. Testy byly provedeny metodou black-box. Tester je tedy odstíněn od dané implementace a zajímá ho pouze jaký bude výstup na základě jeho vstupu. V rámci této části byly provedeny následující testy: Ošetření vstupů - povinné položky, formát hodnoty datum.

47 4.5. TESTOVÁNÍ 33 Zobrazení všech View - průchod v menu, souvisí s následujícím bodem, tabulka 4.4 (V - výsledek). Postupný průchod všemi funkcionalitami - testovacími daty otestovány všechny nabízené funkce jako např. updatemyprofile, signin, signoff, detailaction. View V View V View V LoginView OK RegisterView OK SearchPersonView OK ActionAddView OK ActionView OK Menu OK OrganizationAddView OK OrganizationView OK PersonDetailView OK PersonMyView OK PersonAddView OK OK Tabulka 4.4: Validační testy - Zobrazení všech View Systémové testy Systémové testy byly provedeny hlavně se zaměřením na stabilitu byznys a data TIER. Výsledkem by měla být právě informace o tom, zda-li obě zmíněné TIER pracují dále bez jakékoliv kolize. Byly provedeny následující testy, viz tabulka 4.5 (V - výsledek): Test Přerušení komunikace na úrovni TCP mezi prezentační TIER a byznys TIER Ukončení aplikace (prezentační TIER) Více klientů (Concurrency) V OK OK OK Tabulka 4.5: Systémové testy

48 34 KAPITOLA 4. SOFTWAROVÝ PROJEKT

49 Závěr Tato bakalářská práce měla za cíl představit návrhové vzory jako programovací nástroj a následně na konkrétním příkladě předvést praktickou implementaci některých z objektových návrhových principů. První část se věnovala nezbytnému teoretickému základu, který se dotýkal softwarové architektury, architektonických stylů a úvodu do návrhových vzorů. Druhá, praktická část, spočívala v prezentaci vlastního softwarového projektu. Pro účely této bakalářské práce byl vytvořen jednoduchý model registračního systému, který využíval principů návrhových vzorů. Praktická implementace umožnila pochopit roli jednotlivých návrhových vzorů, zobrazila vazby mezi použitými vzory i jejich chování v rámci celého systému. Při zpracování této bakalářské práce bylo využito cca 20 návrhových vzorů a principů. Během práce na projektu se potvrdila kvalita konstrukce vybraných návrhových vzorů. Jejich implementace zpřehlednila celý softwarový návrh a položila dobré základy pro případné pozdější modifikace. Závěrem je třeba zdůraznit, že tento projekt představuje jen jednu z možných variant použití návrhových vzorů, která vznikla na základě určitého rámce naplánovaného na začátku práce. Po dokončení zpracování projektu se autorovi této bakalářské práce jeví další možnosti zlepšení funkcionalit a využití dalších návrhových vzorů. Následující úpravy a rozpracování by ale přesahovaly rozsah této bakalářské práce. 35

50 36 KAPITOLA 4. LITERATURA

51 Literatura [1] Erich Gamma, Richard Helms, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, Boston, 2nd edition, [2] Christopher Alexander, Sara Ishikawa, MurraySilverstein, Max Jacobson, Ingrid Fiksdahl-King, and Shlomo Angel. A Pattern Language. Oxford University Press, New York, [3] Mike O Docherty. Object-Oriented Analysis and Design: Understanding System Development with UML 2.0. John Wiley and Sons Ltd, West Sussex, England, 1st edition, [4] Ilja Kravál. Design Patterns v OOP. Praha, 1st edition, [5] Martin Fowler, David Rice, Matthew Foemmel, Edward Hieatt, Robert Mee, and Randy Stafford. Patterns of Enterprise Application Architecture. Addison Wesley, Boston, 1st edition, November 05, [6] S. Somasegar, Scott Guthrie, and David Hill. Microsoft Application Architecture Guide. Microsoft, 2nd edition. [7] Jakob Jenkov. Java nio. < [Online 15. duben 2011]. [Citace: 7. květen 2011.]. [8] Oracle. Rmi. < [Online 27. duben 2011]. [Citace: 7. květen 2011.]. [9] B.B.Agarwal, S.P. Tayal, and M. Gupta. Software Engeneering and Testing. Jones and Bartlett Publishers, Sudbury, Massachusetts, 1st edition,

52 38 LITERATURA

53 Příloha A Seznam použitých zkratek BLOB DAO DB DRY DTO GUI JDBC JDK JRE MVC NIO OOPSLA RMI SDK SQL SW TCP UML Binary Large Objects Database Access Object Databáze Dont repeat yourself Data Transfer Object Graphical User Interface Java Data Base Connectivity Java Development Kit Java Real-Time Engine Model View Controler New I/O (input/output) Object-Oriented Programming, Systems, Languages and Applications Remote Method Invocation Standard Development Kit Standard Query Language Software Transmission Control Protocol Unified Modeling Language 39

54 40 PŘÍLOHA A. SEZNAM POUŽITÝCH ZKRATEK

55 Příloha B Diagramy Obrázek B.1: Use Case Model 41

56 42 PŘÍLOHA B. DIAGRAMY Obrázek B.2: Class Diagram - Prezentační TIER (bez ServiceLayer)

57 Obrázek B.3: Class Diagram - Prezentační TIER (ServiceLayer) 43

58 44 PŘÍLOHA B. DIAGRAMY Obrázek B.4: Class Diagram - Byznys TIER

59 Obrázek B.5: Class Diagram - Data TIER 45

60 46 PŘÍLOHA B. DIAGRAMY Obrázek B.6: Datový model

Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika

Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika Vývoj informačních systémů Architektura, návrh Vzory: Doménová logika Zachman Framework Zdroje Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns: Elements of Reusable Object-Oriented

Více

Návrhové vzory. Jakub Klemsa, Jan Legerský. 30. října Objektově orientované programování.

Návrhové vzory. Jakub Klemsa, Jan Legerský. 30. října Objektově orientované programování. Jakub Klemsa Jan Legerský Objektově orientované programování klemsjak@fjfi.cvut.cz jan.legersky@gmail.com 30. října 2012 návrhový vzor (design pattern) obecné řešení problému, které se využívá při návrhu

Více

Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika

Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika Vývoj informačních systémů Architektura, návrh Vzory: Doménová logika Zachman Framework Zdroje Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns: Elements of Reusable Object-Oriented

Více

Design Patterns. Tomáš Herceg Microsoft MVP (ASP.NET) www.dotnetcollege.cz

Design Patterns. Tomáš Herceg Microsoft MVP (ASP.NET) www.dotnetcollege.cz Design Patterns Tomáš Herceg Microsoft MVP (ASP.NET) www.dotnetcollege.cz Základní návrhové vzory Kategorie Creational Patterns starají se o vytváření instancí Structural Patterns struktura komponent v

Více

Vývoj informačních systémů. Přehled témat a úkolů

Vývoj informačních systémů. Přehled témat a úkolů Vývoj informačních systémů Přehled témat a úkolů Organizace výuky doc. Mgr. Miloš Kudělka, Ph.D. EA 439, +420 597 325 877 homel.vsb.cz/~kud007 milos.kudelka@vsb.cz Přednáška Znalosti Schopnosti Cvičení

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího

Více

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Semináˇr Java X J2EE Semináˇr Java X p.1/23 Seminář Java X J2EE Seminář Java X p.1/23 J2EE Složitost obchodních aplikací robusní, distribuované, spolehlivé aplikace s transakcemi na straně serveru, klientské aplikace co nejjednodušší Snaha : Návrh,

Více

6 Objektově-orientovaný vývoj programového vybavení

6 Objektově-orientovaný vývoj programového vybavení 6 Objektově-orientovaný vývoj programového vybavení 6.1 Co značí objektově-orientovaný - organizace SW jako kolekce diskrétních objektů, které zahrnují jak data tak chování objekt: OMG: Objekt je věc (thing).

Více

Vývoj informačních systémů. Přehled témat a úkolů

Vývoj informačních systémů. Přehled témat a úkolů Vývoj informačních systémů Přehled témat a úkolů Organizace výuky doc. Mgr. Miloš Kudělka, Ph.D. EA 439, +420 597 325 877 homel.vsb.cz/~kud007 milos.kudelka@vsb.cz Přednáška Teorie Praxe Cvičení Diskuze

Více

Obsah. Zpracoval:

Obsah. Zpracoval: Zpracoval: houzvjir@fel.cvut.cz 03. Modelem řízený vývoj. Doménový (business), konceptuální (analytický) a logický (návrhový) model. Vize projektu. (A7B36SIN) Obsah Modelem řízený vývoj... 2 Cíl MDD, proč

Více

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá

Více

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování.

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování. 3 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Business modelling, základní nástroje a metody business modelová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

Semin aˇr Java N avrhov e vzory Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Duben 2008 Radek Koˇc ı Semin aˇr Java N avrhov e vzory 1/ 24

Semin aˇr Java N avrhov e vzory Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Duben 2008 Radek Koˇc ı Semin aˇr Java N avrhov e vzory 1/ 24 Seminář Java Návrhové vzory Radek Kočí Fakulta informačních technologií VUT Duben 2008 Radek Kočí Seminář Java Návrhové vzory 1/ 24 Znovupoužitelnost Dědičnost implementace třídy pomocí jiné (již existující)

Více

Business Intelligence

Business Intelligence Business Intelligence Josef Mlnařík ISSS Hradec Králové 7.4.2008 Obsah Co je Oracle Business Intelligence? Definice, Od dat k informacím, Nástroj pro operativní řízení, Integrace informací, Jednotná platforma

Více

Použití databází na Webu

Použití databází na Webu 4IZ228 tvorba webových stránek a aplikací Jirka Kosek Poslední modifikace: $Date: 2010/11/18 11:33:52 $ Obsah Co nás čeká... 3 Architektura webových databázových aplikací... 4 K čemu se používají databázové

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

Návrhové vzory OMO, LS 2014/2015

Návrhové vzory OMO, LS 2014/2015 Návrhové vzory OMO, LS 2014/2015 Motivace Cílem objektového návrhu je strukturu aplikace navrhnout tak, aby splňovala následující kritéria: snadná rozšiřitelnost účelnost testovatelnost dokumentovatelnost

Více

MVC (Model-View-Controller)

MVC (Model-View-Controller) MVC vs PAC MVC (Model-View-Controller) Architektonický vzor zabývající se uživatelským rozhraním Odděluje doménovou (bussiness) logiku a uživatelské rozhraní do tří nezávislých komponent: Model View Controller

Více

Common Object Request Broker Architecture

Common Object Request Broker Architecture Common Object Request Broker Architecture Tvorba aplikací, jejichž komponenty budou komunikovat přes počítačovou síť Programátor jedné aplikace volá metody vzdálených objektů podobně jako u sebe lokální

Více

Semin aˇr Java N avrhov e vzory Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Duben 2009 Radek Koˇc ı Semin aˇr Java N avrhov e vzory 1/ 25

Semin aˇr Java N avrhov e vzory Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Duben 2009 Radek Koˇc ı Semin aˇr Java N avrhov e vzory 1/ 25 Seminář Java Návrhové vzory Radek Kočí Fakulta informačních technologií VUT Duben 2009 Radek Kočí Seminář Java Návrhové vzory 1/ 25 Znovupoužitelnost Dědičnost implementace třídy pomocí jiné (již existující)

Více

Vývoj informačních systémů. Obecně o IS

Vývoj informačních systémů. Obecně o IS Vývoj informačních systémů Obecně o IS Informační systém Informační systém je propojení informačních technologií a lidských aktivit směřující k zajištění podpory procesů v organizaci. V širším slova smyslu

Více

8.2 Používání a tvorba databází

8.2 Používání a tvorba databází 8.2 Používání a tvorba databází Slide 1 8.2.1 Základní pojmy z oblasti relačních databází Slide 2 Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3 Pojmy tabulka, pole, záznam

Více

Databázové a informační systémy

Databázové a informační systémy Databázové a informační systémy 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 Obsah Jak ukládat a efektivně zpracovávat

Více

IS pro podporu BOZP na FIT ČVUT

IS pro podporu BOZP na FIT ČVUT IS pro podporu BOZP na FIT ČVUT Závěrečná zpráva pro 2. iteraci 21. dubna 2011 Zadavatel: Ing. Jiří Chludil Řešitelský tým: Jiří Kopecký Jan Kratochvíl Milan Matějček Štefan Pinďák Kristýna Streitová Úvod

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

Znalostní systém nad ontologií ve formátu Topic Maps

Znalostní systém nad ontologií ve formátu Topic Maps Znalostní systém nad ontologií ve formátu Topic Maps Ladislav Buřita, Petr Do ladislav.burita@unob.cz; petr.do@unob.cz Univerzita obrany, Fakulta vojenských technologií Kounicova 65, 662 10 Brno Abstrakt:

Více

Architektura softwarových systémů

Architektura softwarových systémů Architektura softwarových systémů Ing. Jiří Mlejnek Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Jiří Mlejnek, 2011 jiri.mlejnek@fit.cvut.cz Softwarové

Více

(Enterprise) JavaBeans. Lekce 7

(Enterprise) JavaBeans. Lekce 7 (Enterprise) JavaBeans Lekce 7 JavaBeans vs. Enterprise JavaBeans (EJB) JavaBeans technologie: jedná se o tzv. komponentní architekturu určenou pro JSE platformu určená pro tvorbu JSE GUI programů pomocí

Více

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D. VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ Ing. Lukáš OTTE, Ph.D. Ostrava 2013 Tento studijní materiál vznikl za finanční podpory

Více

ČÁST 1. Zahřívací kolo. Co je a k čemu je návrhový vzor 33

ČÁST 1. Zahřívací kolo. Co je a k čemu je návrhový vzor 33 Stručný obsah Část 1: Zahřívací kolo Kapitola 1 Co je a k čemu je návrhový vzor 33 Kapitola 2 Zásady objektově orientovaného programování 39 Kapitola 3 Co konstruktor neumí (Jednoduchá tovární metoda Simple

Více

Architektury informačních systémů

Architektury informačních systémů Architektury informačních systémů doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes/vyuka/tis Miroslav.Benes@vsb.cz Obsah přednášky Co je to

Více

UML a jeho použití v procesu vývoje. Jaroslav Žáček jaroslav.zacek@osu.cz

UML a jeho použití v procesu vývoje. Jaroslav Žáček jaroslav.zacek@osu.cz UML a jeho použití v procesu vývoje Jaroslav Žáček jaroslav.zacek@osu.cz Různé pohledy na modelování Různé pohledy na modelování Unified Modeling Language UML není metodikou ani programovacím jazykem,

Více

1. Integrační koncept

1. Integrační koncept Příloha č. 2: Technický popis integrace 1. Integrační koncept Z hlediska koncepčního budování Smart Administration na Magistrátu města Mostu je možno hovořit o potřebě integrace tří úrovní systémové architektury

Více

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek = Velmi malé jádro = implementuje jen vybrané základní mechanismy: = virtuální paměť; = plánování vláken; = obsluha výjimek; = zasílání

Více

Architektury informačních systémů

Architektury informačních systémů Architektury informačních systémů doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes/vyuka/tis Miroslav.Benes@vsb.cz Obsah přednášky Co je to

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

7.6 Další diagramy UML

7.6 Další diagramy UML 7.6 Další diagramy UML 7.6.1 Moduly (balíčky - package) a kolaborace (collaboration) Jak rozložit rozsáhlý systém na menší? - seskupování tříd (prvků modelu) do jednotek vyšší úrovně (package v UML). UI

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 25. Otázka : Komponentní technologie - základní pojmy a principy, metody specifikace komponent. Obsah : 1. Základní pojmy 1.1 Komponenta Komponenta

Více

Požadavky pro výběrová řízení TerraBus ESB/G2x

Požadavky pro výběrová řízení TerraBus ESB/G2x Dokument: Převod dat TerraBus ESB/G2x Požadavky pro výběrová řízení TerraBus ESB/G2x Obsah 1. Účel dokumentu... 2 2. Použité termíny a zkratky... 2 3. Požadavky... 3 Účel dokumentu Účelem tohoto dokumentu

Více

7.6 Další diagramy UML

7.6 Další diagramy UML 7.6 Další diagramy UML 7.6.1 Moduly (balíčky - package) a kolaborace (collaboration) Jak rozložit rozsáhlý systém na menší? - seskupování tříd (prvků modelu) do jednotek vyšší úrovně (package v UML). UI

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

Bc. Martin Majer, AiP Beroun s.r.o.

Bc. Martin Majer, AiP Beroun s.r.o. REGISTR DIGITALIZACE HISTORICKÝCH FONDŮ (RDHF) A DIGITÁLNÍCH KONKORDANCÍ (DK) Návrh uživatelského rozhraní klientských aplikací verze 1.0 Bc. Martin Majer, AiP Beroun s.r.o. 28.11.2016-1 - Obsah 1 Seznam

Více

Softwarové komponenty a Internet

Softwarové komponenty a Internet Softwarové komponenty a Internet Doc. Dr. Ing. Miroslav Beneš Katedra informatiky FEI VŠB-TU Ostrava Miroslav.Benes@vsb.cz Obsah přednášky Motivace Vývoj přístupů k tvorbě programů Definice komponenty

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

UML. Unified Modeling Language. Součásti UML

UML. Unified Modeling Language. Součásti UML UML Unified Modeling Language 1995 počátek 1997 verze 1.0 leden dnes verze 2.0 (vývoj stále nedokončen) Standardní notace OMG podpora velkých firem (Microsoft, IBM, Oracle, HP ) popisuje struktury popisuje

Více

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ SPOLEČNOST DECADIC PROJEKT FRAMETRIX

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ SPOLEČNOST DECADIC PROJEKT FRAMETRIX FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ MANAGEMENT PROJEKTŮ SPOLEČNOST DECADIC PROJEKT FRAMETRIX SPECIFIKACE POŽADAVKŮ AUTOR DOKUMENTU JIŘÍ JANDA BRNO 15. března 2012 Obsah 1 Úvod........................................

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

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. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services 13. Webové služby. K čemu slouží? Popis a vyhledávání služeb. Co je a k čemu slouží orchestrace a choreografie služeb. Technologie pro implementaci služeb 1. Webové služby. K čemu slouží? Definice WS -

Více

MBI - technologická realizace modelu

MBI - technologická realizace modelu MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,

Více

Návrhový vzor Factory v JAVA API

Návrhový vzor Factory v JAVA API Návrhový vzor Factory v JAVA API Martin Kot Katedra informatiky VŠB - Technická univerzita Ostrava martin.kot.fei@vsb.cz Abstrakt V třídách API jazyka JAVA je použito mnoho návrhových vzorů. Najdeme zde

Více

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework Web Jaroslav Nečas Obsah přednášky Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework Co to je web HTTP protokol bezstavový GET POST HEAD Cookies Session HTTPS

Více

Programování II. Modularita 2017/18

Programování II. Modularita 2017/18 Programování II Modularita 2017/18 Modul? Osnova přednášky Vývoj programování Modularita Příklad Vývoj programování Paradigmata programování Jak a proč se jazyky vyvíjejí? V čem se OOP liší od předchozí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

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence schopnost, který je spolufinancován

Více

Objekty, třídy, vazby 2006 UOMO 30

Objekty, třídy, vazby 2006 UOMO 30 Objekty, třídy, vazby 2006 UOMO 30 Osnova Vymezení pojmu objekt Objekt a základní objektové koncepty Třídy, třída vs. objekt Vztahy mezi objekty, vazby mezi třídami Polymorfismus 2006 UOMO 31 Vymezení

Více

Roční periodická zpráva projektu

Roční periodická zpráva projektu WAK-1F44C-2005-2 WAK System Název projektu: Automatizovaná výměna dat mezi informačními systémy krizového řízení v dopravě s jednotným univerzálním a implementovaným rozhraním založeným na standardu webových

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

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server ADMINISTRACE POČÍTAČOVÝCH SÍTÍ OPC Server Funkce a využití v průmyslové automatizaci Jiří NOSEK 2011 Co je OPC Server? OPC = Open Process Control (původně OLE for Process Control) sada specifikací průmyslového

Více

Připojení přístroje A4101 k aplikaci DDS2000

Připojení přístroje A4101 k aplikaci DDS2000 " Uživatelský manuál Připojení přístroje A4101 k aplikaci DDS2000 Aplikace :! Přenos a archivace dat naměřených přístrojem A4101! Přenos pochůzky vytvořené v aplikaci DDS2000 do přístroje A4101 Vlastnosti

Více

Architektura informačních systémů. - dílčí architektury - strategické řízení taktické řízení. operativní řízení a provozu. Globální architektura

Architektura informačních systémů. - dílčí architektury - strategické řízení taktické řízení. operativní řízení a provozu. Globální architektura Dílčí architektury Informační systémy - dílčí architektury - EIS MIS TPS strategické řízení taktické řízení operativní řízení a provozu 1 Globální Funkční Procesní Datová SW Technologická HW Aplikační

Více

Databáze II. 1. přednáška. Helena Palovská palovska@vse.cz

Databáze II. 1. přednáška. Helena Palovská palovska@vse.cz Databáze II 1. přednáška Helena Palovská palovska@vse.cz Program přednášky Úvod Třívrstvá architektura a O-R mapování Zabezpečení dat Role a přístupová práva Úvod Co je databáze Mnoho dat Organizovaných

Více

EXTRAKT z české technické normy

EXTRAKT z české technické normy EXTRAKT z české technické normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním ICS 35.240.60 materiálem o normě. Systémy dopravních informací a řídicí systémy (TICS) Datová rozhraní

Více

11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9 Obsah přednášky 9 Základy programování (IZAPR, IZKPR) Přednáška 9 Základy dědičnosti, přístupová práva Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií

Více

Objektově orientované technologie Diagram komponent Implementační náhled (Diagram rozmístění) Pavel Děrgel, Daniela Szturcová

Objektově orientované technologie Diagram komponent Implementační náhled (Diagram rozmístění) Pavel Děrgel, Daniela Szturcová Objektově orientované technologie Diagram komponent Implementační náhled (Diagram rozmístění) Pavel Děrgel, Daniela Szturcová Osnova K čemu slouží diagram komponent obsah komponent závislosti rozhraní

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

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

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 22. Otázka : Úvodní fáze rozpracování softwarového projektu. Postupy při specifikaci byznys modelů. Specifikace požadavků a jejich rozpracování pomocí

Více

CAL (CAN Application Layer) a CANopen

CAL (CAN Application Layer) a CANopen CAL (CAN Application Layer) a CANopen J. Novák České vysoké učení technické v Praze Fakulta elektrotechnická Katedra měření Průmyslový distribuovaný systém na bázi sběrnice CAN Pressure sensor Stepper

Více

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy Bc. Petr Pokorný Letní semestr 2009/2010 1 Obsah 1 Úvod... 3 2 Workflow... 3 3 Workflow

Více

Tvorba informačních systémů

Tvorba informačních systémů Tvorba informačních systémů Michal Krátký 1, Miroslav Beneš 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006 Michal Krátký, Miroslav Beneš Tvorba informačních

Více

Microsoft SharePoint Portal Server 2003. Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR

Microsoft SharePoint Portal Server 2003. Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR Microsoft SharePoint Portal Server 2003 Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR Přehled Země: Česká republika Odvětví: Velkoobchod Profil zákazníka

Více

Analýza Systém Správce

Analýza Systém Správce Analýza Systém Správce Toto je analýza aplikace Systém Správce, která slouží k alokaci zaměstnanců vedených v databázi do týmů. Jedná se o pomůcku projektových manažerů. Rozbor požadavků Funkční požadavky

Více

Informační systém ozdravných pobytů zdravotní pojišťovny

Informační systém ozdravných pobytů zdravotní pojišťovny Úvod ní studie @fel.cvut.cz Téma bakalářské práce: Informační systém ozdravných pobytů zdravotní pojišťovny Pokyny pro vypracování: Analyzujte IS ozdravných pobytů dětí a mládeže obecné zdravotní pojišťovny.

Více

Microsoft Windows Server System

Microsoft Windows Server System Microsoft Windows Server System Uživatelský autentikační systém od společnosti truconnexion komplexně řeší otázku bezpečnosti interních počítačových systémů ebanky, a.s. Přehled Země: Česká republika Odvětví:

Více

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů - 1.1 - Kapitola 1: Úvod Účel databázových systémů Pohled na data Modely dat Jazyk pro definici dat (Data Definition Language; DDL) Jazyk pro manipulaci s daty (Data Manipulation Language; DML) Správa

Více

Klíčová slova: OOP, konstruktor, destruktor, třída, objekt, atribut, metoda

Klíčová slova: OOP, konstruktor, destruktor, třída, objekt, atribut, metoda Anotace sady: Úvod do objektově orientovaného programování, VY_32_INOVACE_PRG_OOP_01 Autor: Blanka Sadovská Klíčová slova: OOP, konstruktor, destruktor, třída, objekt, atribut, metoda Druh učebního materiálu:

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

, Brno Připravil: David Procházka Návrhové vzory

, Brno Připravil: David Procházka Návrhové vzory 7. 10. 2010, Brno Připravil: David Procházka Návrhové vzory Základy objektově orientovaného návrhu Design Patterns NV (Design patterns) můžeme s nadsázkou označit za ntu, jak řešit určitý problém nejen

Více

Tvorba informačních systémů

Tvorba informačních systémů Tvorba informačních systémů Michal Krátký 1, Miroslav Beneš 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006 Michal Krátký, Miroslav Beneš Tvorba informačních

Více

Vyřešené teoretické otázky do OOP ( )

Vyřešené teoretické otázky do OOP ( ) Vyřešené teoretické otázky do OOP (16. 1. 2013) 1) Vyjmenujte v historickém pořadí hlavní programovací paradigmata a stručně charakterizujte každé paradigma. a) Naivní chaotičnost, špatná syntaxe a sémantika

Více

RMI - Distribuované objekty v Javě

RMI - Distribuované objekty v Javě Vysoká škola báňská - Technická univerzita Ostrava 30. března 2009 Osnova Co je to RMI? 1 Co je to RMI? 2 Vnější pohled Vrstvy RMI Stub & Skeletons Layer Remote Reference Layer Transport Layer Pojemnování

Více

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE WEBOWÉ STRÁNKY TŘÍD KAMIL POPELKA ZÁVĚREČNÁ MATURITNÍ PRÁCE BRNO 2011 Prohlášení Prohlašuji, že maturitní práce je mým původním autorským dílem, které

Více

Oracle XML DB. Tomáš Nykodým

Oracle XML DB. Tomáš Nykodým Oracle XML DB Tomáš Nykodým xnykodym@fi.muni.cz Osnova Oracle XML DB Architektura Oracle XML DB Hlavní rysy Oracle XML DB Hlavní rysy Oracle XML DB - pokračování XMLType XML Repository Využívání databázových

Více

Profilová část maturitní zkoušky 2017/2018

Profilová část maturitní zkoušky 2017/2018 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2017/2018 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA

Více

Národní šetření výsledků žáků v počátečním vzdělávání

Národní šetření výsledků žáků v počátečním vzdělávání Projekt NIQES Národní šetření žáků v počátečním vzdělávání Národní šetření výsledků žáků v počátečním vzdělávání Druhá celoplošná generální zkouška Název souboru: CP2-Procesy_přípravy_a_realizace_V3.doc

Více

Databázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz

Databázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Databázové systémy Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Vývoj databázových systémů Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace 60.-70. léta Program Komunikace Výpočty

Více

EXTRAKT z mezinárodní normy

EXTRAKT z mezinárodní normy EXTRAKT z mezinárodní normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě ICS: 03.220.01; 35.240.60 Komunikační infrastruktura pro pozemní mobilní zařízení (CALM)

Více

Aplikace Elektronická podání Transakční část portálu veřejné správy

Aplikace Elektronická podání Transakční část portálu veřejné správy Aplikace Elektronická podání Transakční část portálu veřejné správy Vysvětlení pojmů Obsah Občan 3 Organizace 3 Zástupce 3 Uživatel 3 4 Zastupování 5 Služba 6 Transakce 6 Vlastník služby 6 Registrace 6

Více

PŘÍLOHA C Požadavky na Dokumentaci

PŘÍLOHA C Požadavky na Dokumentaci PŘÍLOHA C Požadavky na Dokumentaci Příloha C Požadavky na Dokumentaci Stránka 1 z 5 1. Obecné požadavky Dodavatel dokumentaci zpracuje a bude dokumentaci v celém rozsahu průběžně aktualizovat při každé

Více

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části: Aplikace Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části: prezentační vrstva vstup dat, zobrazení výsledků, uživatelské rozhraní, logika uživatelského rozhraní aplikační vrstva

Více

Technologie. Osnovy kurzu: Školení správců systému. 1. den, dopolední blok

Technologie. Osnovy kurzu: Školení správců systému. 1. den, dopolední blok 1. den, dopolední blok Konfigurace počítačů posluchačů přivítání zobrazení konfiguračních údajů a průvodce nastavením místní sítě přivítání účastníků zapojení počítačů instalace potřebného SW (klient z

Více

java remote method invocation Kateřina Fricková, Matouš Jandek

java remote method invocation Kateřina Fricková, Matouš Jandek java remote method invocation Kateřina Fricková, Matouš Jandek Distribuovaný systém počítačový systém, ve kterém jsou jednotlivé komponenty propojeny počítačovou síťí komponenty systému sdílí cíl, kterého

Více

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni Webové aplikace Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni Harmonogram Dopolední blok 9:00 12:30 Ing. Dostal Úvod, XHTML + CSS Ing. Brada,

Více

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ M. Sysel, I. Pomykacz Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky Nad Stráněmi 4511, 760 05 Zlín, Česká republika

Více

1 Administrace systému 3. 1.3 Moduly... 3 1.4 Skupiny atributů... 4 1.5 Atributy... 4 1.6 Hodnoty atributů... 4

1 Administrace systému 3. 1.3 Moduly... 3 1.4 Skupiny atributů... 4 1.5 Atributy... 4 1.6 Hodnoty atributů... 4 CRM SYSTÉM KORMORÁN PŘÍRUČKA ADMINISTRÁTORA Obsah 1 Administrace systému 3 1.1 Uživatelské účty.................................. 3 1.2 Přístupová práva................................. 3 1.3 Moduly.......................................

Více

Protokol TELNET. Schéma funkčních modulů komunikace protokolem TELNET. Telnet klient. login shell. Telnet server TCP/IP.

Protokol TELNET. Schéma funkčních modulů komunikace protokolem TELNET. Telnet klient. login shell. Telnet server TCP/IP. Protokol TELNET Schéma funkčních modulů komunikace protokolem TELNET Telnet klient Telnet server login shell terminal driver Jádro TCP/IP TCP/IP Jádro Pseudo terminal driver Uživatel u terminálu TCP spojení

Více